OLD | NEW |
1 # Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 # Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
2 # for details. All rights reserved. Use of this source code is governed by a | 2 # for details. All rights reserved. Use of this source code is governed by a |
3 # BSD-style license that can be found in the LICENSE file. | 3 # BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 import re | 5 import re |
6 import json | 6 import json |
7 | 7 |
8 import handlers | 8 import handlers |
9 from models.package import Package | 9 from models.package import Package |
10 from models.package_version import PackageVersion | 10 from models.package_version import PackageVersion |
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
246 self.assertEqual(content['fields']['acl'], 'public-read') | 246 self.assertEqual(content['fields']['acl'], 'public-read') |
247 | 247 |
248 def test_api_uploader_gets_dartdoc_form_for_nonexistent_package(self): | 248 def test_api_uploader_gets_dartdoc_form_for_nonexistent_package(self): |
249 self.be_normal_oauth_user('other-uploader') | 249 self.be_normal_oauth_user('other-uploader') |
250 | 250 |
251 response = self.testapp.get( | 251 response = self.testapp.get( |
252 '/packages/not-package/versions/1.2.3/new_dartdoc.json', | 252 '/packages/not-package/versions/1.2.3/new_dartdoc.json', |
253 status=404) | 253 status=404) |
254 self.assert_json_error(response) | 254 self.assert_json_error(response) |
255 | 255 |
| 256 def test_api_malformed_package_version(self): |
| 257 version = self.package_version(self.package, '1.2.3') |
| 258 version.put() |
| 259 |
| 260 response = self.testapp.get( |
| 261 '/api/packages/test-package/versions/banana', status=400) |
| 262 self.assertEqual(response.headers['Content-Type'], 'application/json') |
| 263 self.assertEqual(json.loads(response.body), { |
| 264 'error': {'message': '"banana" is not a valid semantic version.'} |
| 265 }) |
| 266 |
| 267 def test_api_no_such_package_version(self): |
| 268 version = self.package_version(self.package, '1.2.3') |
| 269 version.put() |
| 270 |
| 271 response = self.testapp.get( |
| 272 '/api/packages/test-package/versions/2.0.0', status=404) |
| 273 self.assertEqual(response.headers['Content-Type'], 'application/json') |
| 274 self.assertEqual(json.loads(response.body), { |
| 275 'error': |
| 276 {'message': '"test-package" version 2.0.0 doesn\'t exist.'} |
| 277 }) |
| 278 |
256 def post_package_version(self, version, name='test-package'): | 279 def post_package_version(self, version, name='test-package'): |
257 response = self.create_package(self.upload_archive(name, version)) | 280 response = self.create_package(self.upload_archive(name, version)) |
258 self.assert_json_success(response) | 281 self.assert_json_success(response) |
259 | 282 |
260 def create_package(self, upload, status=None): | 283 def create_package(self, upload, status=None): |
261 get_response = self.testapp.get('/api/packages/versions/new') | 284 get_response = self.testapp.get('/api/packages/versions/new') |
262 self.assertEqual(get_response.status_int, 200) | 285 self.assertEqual(get_response.status_int, 200) |
263 content = json.loads(get_response.body) | 286 content = json.loads(get_response.body) |
264 post_response = self.testapp.post(str(content['url']), | 287 post_response = self.testapp.post(str(content['url']), |
265 content['fields'], | 288 content['fields'], |
(...skipping 10 matching lines...) Expand all Loading... |
276 | 299 |
277 def latest_version(self): | 300 def latest_version(self): |
278 return Package.get_by_key_name('test-package').latest_version.version | 301 return Package.get_by_key_name('test-package').latest_version.version |
279 | 302 |
280 def get_package_version(self, version): | 303 def get_package_version(self, version): |
281 return PackageVersion.get_by_name_and_version('test-package', version) | 304 return PackageVersion.get_by_name_and_version('test-package', version) |
282 | 305 |
283 def assert_package_updated_is_latest_version_created(self): | 306 def assert_package_updated_is_latest_version_created(self): |
284 package = Package.get_by_key_name('test-package') | 307 package = Package.get_by_key_name('test-package') |
285 self.assertEqual(package.updated, package.latest_version.created) | 308 self.assertEqual(package.updated, package.latest_version.created) |
OLD | NEW |