Merge lp:~ricardokirkner/ols-store-tests/cpi-tests-new-style-errors into lp:~ubuntuone-pqm-team/ols-store-tests/store-acceptance-tests

Proposed by Ricardo Kirkner
Status: Merged
Merged at revision: 30
Proposed branch: lp:~ricardokirkner/ols-store-tests/cpi-tests-new-style-errors
Merge into: lp:~ubuntuone-pqm-team/ols-store-tests/store-acceptance-tests
Prerequisite: lp:~ricardokirkner/ols-store-tests/include-store-revnos
Diff against target: 99 lines (+33/-12)
3 files modified
tests/api/cpi/helpers.py (+20/-7)
tests/api/cpi/test_metadata.py (+6/-2)
tests/api/cpi/test_snaps.py (+7/-3)
To merge this branch: bzr merge lp:~ricardokirkner/ols-store-tests/cpi-tests-new-style-errors
Reviewer Review Type Date Requested Status
Ubuntu One PQM Team Pending
Review via email: mp+305742@code.launchpad.net

Commit message

fixed cpi tests after service started returning new-style error responses

To post a comment you must log in.
32. By Ricardo Kirkner

support both old and new-style error responses

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'tests/api/cpi/helpers.py'
--- tests/api/cpi/helpers.py 2016-07-07 19:12:03 +0000
+++ tests/api/cpi/helpers.py 2016-09-14 20:05:56 +0000
@@ -69,25 +69,38 @@
69 self.assertEqual(response.headers['Content-Type'],69 self.assertEqual(response.headers['Content-Type'],
70 content_type)70 content_type)
7171
72 def assert_not_found(self, response, message=None):72 def assert_not_found(self, response, message=None, new_style_error=False):
73 self.assertEqual(response.status_code, 404)73 self.assertEqual(response.status_code, 404)
74 self.assertEqual(response.headers['Content-Type'],74 self.assertEqual(response.headers['Content-Type'],
75 'application/hal+json')75 'application/hal+json')
76 self.assertEqual(response.json(), {76 expected = {
77 'result': 'error',77 'result': 'error',
78 'errors': [message or 'Not found'],78 'errors': [message or 'Not found'],
79 })79 }
80 if new_style_error:
81 expected['error_list'] = [
82 {'code': 'resource-not-found', 'message': message},
83 ]
84 self.assertEqual(response.json(), expected)
8085
81 def assert_bad_request(self, response, message):86 def assert_bad_request(self, response, message, code='',
87 new_style_error=False):
82 self.assertEqual(response.status_code, 400)88 self.assertEqual(response.status_code, 400)
83 self.assertEqual(response.headers['Content-Type'],89 self.assertEqual(response.headers['Content-Type'],
84 'application/hal+json')90 'application/hal+json')
85 self.assertEqual(response.json(), {91 expected = {
86 'result': 'error',92 'result': 'error',
87 'errors': [message],93 'errors': [message],
88 })94 }
95 if new_style_error:
96 expected['error_list'] = [
97 {'code': code, 'message': message},
98 ]
99
100 self.assertEqual(response.json(), expected)
89101
90 def assert_unauthorized(self, response):102 def assert_unauthorized(self, response):
91 self.assertEqual(response.status_code, 401)103 self.assertEqual(response.status_code, 401)
92 self.assertEqual(response.headers['Content-Type'], 'text/plain')104 self.assertEqual(response.headers['Content-Type'],
105 'application/hal+json')
93 self.assertIn('WWW-Authenticate', response.headers)106 self.assertIn('WWW-Authenticate', response.headers)
94107
=== modified file 'tests/api/cpi/test_metadata.py'
--- tests/api/cpi/test_metadata.py 2016-07-07 19:49:49 +0000
+++ tests/api/cpi/test_metadata.py 2016-09-14 20:05:56 +0000
@@ -154,12 +154,16 @@
154 response = self.get_metadata()154 response = self.get_metadata()
155 self.assert_bad_request(155 self.assert_bad_request(
156 response,156 response,
157 message='Packages must be specified in parameter "snaps".')157 code='missing-field',
158 message='Packages must be specified in parameter "snaps".',
159 new_style_error=True)
158160
159 def test_get_metadata_missing_snap_id(self):161 def test_get_metadata_missing_snap_id(self):
160 response = self.get_metadata(snaps=[{}])162 response = self.get_metadata(snaps=[{}])
161 self.assert_bad_request(163 self.assert_bad_request(
162 response, message='Missing snap_id for snap.')164 response, code='missing-field',
165 message='Missing snap_id for snap.',
166 new_style_error=True)
163167
164 def test_get_metadata_filter_fields(self):168 def test_get_metadata_filter_fields(self):
165 fields = ['channel', 'revision', 'snap_id']169 fields = ['channel', 'revision', 'snap_id']
166170
=== modified file 'tests/api/cpi/test_snaps.py'
--- tests/api/cpi/test_snaps.py 2016-07-07 19:49:49 +0000
+++ tests/api/cpi/test_snaps.py 2016-09-14 20:05:56 +0000
@@ -101,15 +101,19 @@
101 def test_get_snap_detail_without_series(self):101 def test_get_snap_detail_without_series(self):
102 response = get_snap_detail(SNAP_PACKAGE_NAME, series=None)102 response = get_snap_detail(SNAP_PACKAGE_NAME, series=None)
103 self.assert_bad_request(103 self.assert_bad_request(
104 response, message='X-Ubuntu-Series header is required.')104 response, code='missing-header',
105 message='X-Ubuntu-Series header is required.',
106 new_style_error=True)
105107
106 def test_get_snap_detail_unauthorized(self):108 def test_get_snap_detail_unauthorized(self):
107 response = get_snap_detail(PRIVATE_SNAP_PACKAGE_NAME, auth=False)109 response = get_snap_detail(PRIVATE_SNAP_PACKAGE_NAME, auth=False)
108 self.assert_not_found(response, message='No such package')110 self.assert_not_found(response, message='No such package',
111 new_style_error=True)
109112
110 def test_get_snap_detail_not_found(self):113 def test_get_snap_detail_not_found(self):
111 response = get_snap_detail('missing')114 response = get_snap_detail('missing')
112 self.assert_not_found(response, message='No such package')115 self.assert_not_found(response, message='No such package',
116 new_style_error=True)
113117
114118
115class SnapMetadataTestCase(MetadataTestCase):119class SnapMetadataTestCase(MetadataTestCase):

Subscribers

People subscribed via source and target branches

to all changes: