Fix 500 exception when sending a non-string release name to appr

Fixes https://jira.coreos.com/browse/QS-120
This commit is contained in:
Joseph Schorr 2018-01-12 17:14:05 -05:00
parent 18f1ccf80b
commit a32edb646d
2 changed files with 32 additions and 1 deletions

View file

@ -1,3 +1,4 @@
import base64
import json
from flask import url_for
@ -37,3 +38,27 @@ def test_login(login_data, expected_code, app, client):
rv = client.open(url, method='POST', data=json.dumps(data), headers=headers)
assert rv.status_code == expected_code
@pytest.mark.parametrize('release_name', [
'1.0',
'1',
1,
])
def test_invalid_release_name(release_name, app, client):
params = {
'namespace': 'devtable',
'package_name': 'someapprepo',
}
url = url_for('appr.push', **params)
auth = base64.b64encode('devtable:password')
headers = {'Content-Type': 'application/json', 'Authorization': 'Basic ' + auth}
data = {
'release': release_name,
'media_type': 'application/vnd.cnr.manifest.v1+json',
'blob': 'H4sIAFQwWVoAA+3PMQrCQBAF0Bxlb+Bk143nETGIIEoSC29vMMFOu3TvNb/5DH/Ot8f02jWbiohDremT3ZKR90uuUlty7nKJNmqKtkQuTarbzlo8x+k4zFOu4+lyH4afvbnW93/urH98EwAAAAAAAAAAADb0BsdwExIAKAAA',
}
rv = client.open(url, method='POST', data=json.dumps(data), headers=headers)
assert rv.status_code == 422