Fix handling of tokens in the new context block of the JWT

This commit is contained in:
Joseph Schorr 2015-12-15 16:52:22 -05:00
parent 4a84388f15
commit 4e942203cb
2 changed files with 34 additions and 2 deletions

View file

@ -12,6 +12,7 @@ from flask.ext.testing import LiveServerTestCase
from app import app
from data.database import close_db_filter, configure
from data import model
from endpoints.v1 import v1_bp
from endpoints.v2 import v2_bp
from endpoints.verbs import verbs
@ -66,6 +67,14 @@ def set_feature(feature_name):
features._FEATURES[feature_name].value = request.get_json()['value']
return jsonify({'old_value': old_value})
@testbp.route('/addtoken', methods=['POST'])
def addtoken():
another_token = model.token.create_delegate_token('devtable', 'newrepo', 'my-new-token', 'write')
another_token.code = 'somecooltokencode'
another_token.save()
return 'OK'
@testbp.route('/reloadapp', methods=['POST'])
def reload_app():
# Close any existing connection.
@ -597,6 +606,25 @@ class RegistryTestsMixin(object):
self.assertEquals('buynlarge+ownerbot', logs[0]['performer']['name'])
def test_push_pull_logging_bytoken(self):
# Push the repository.
self.do_push('devtable', 'newrepo', 'devtable', 'password')
# Add a token.
self.conduct('POST', '/__test/addtoken')
# Pull the repository.
self.do_pull('devtable', 'newrepo', '$token', 'somecooltokencode')
# Retrieve the logs and ensure the pull was added.
self.conduct_api_login('devtable', 'password')
result = self.conduct('GET', '/api/v1/repository/devtable/newrepo/logs')
logs = result.json()['logs']
self.assertEquals('pull_repo', logs[0]['kind'])
self.assertEquals('my-new-token', logs[0]['metadata']['token'])
def test_push_pull_logging_byoauth(self):
# Push the repository.
self.do_push('devtable', 'newrepo', 'devtable', 'password')