Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(449)

Side by Side Diff: appengine/chrome_infra_packages/cipd/test/api_test.py

Issue 1194803002: Add a package listing API to cipd. (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 # Copyright 2014 The Chromium Authors. All rights reserved. 1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import datetime 5 import datetime
6 6
7 from testing_utils import testing 7 from testing_utils import testing
8 8
9 from components import auth 9 from components import auth
10 from components import auth_testing 10 from components import auth_testing
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 resp = self.call_api('fetch_package', {'package_name': 'good/name'}) 60 resp = self.call_api('fetch_package', {'package_name': 'good/name'})
61 self.assertEqual({'status': 'PACKAGE_NOT_FOUND'}, resp.json_body) 61 self.assertEqual({'status': 'PACKAGE_NOT_FOUND'}, resp.json_body)
62 62
63 def test_fetch_package_bad_name(self): 63 def test_fetch_package_bad_name(self):
64 resp = self.call_api('fetch_package', {'package_name': 'bad name'}) 64 resp = self.call_api('fetch_package', {'package_name': 'bad name'})
65 self.assertEqual({ 65 self.assertEqual({
66 'status': 'ERROR', 66 'status': 'ERROR',
67 'error_message': 'Invalid package name', 67 'error_message': 'Invalid package name',
68 }, resp.json_body) 68 }, resp.json_body)
69 69
70 def test_list_packages_no_results(self):
71 resp = self.call_api('list_packages', {})
72 self.assertEqual({
73 'status': 'SUCCESS',
74 }, resp.json_body)
75
76 def test_list_packages_all_packages(self):
77 resp = self.call_api('register_package', {'package_name': 'good/name'})
78 self.assertEqual('REGISTERED', resp.json_body['status'])
79
80 resp = self.call_api('list_packages', {})
81 self.assertEqual({
82 'status': 'SUCCESS',
83 'packages': ['good/name'],
84 }, resp.json_body)
85
86 def test_list_packages_filter_no_access(self):
87 resp = self.call_api('register_package', {'package_name': 'good/name'})
88 self.assertEqual('REGISTERED', resp.json_body['status'])
89
90 self.mock(api.acl, 'can_fetch_package', lambda *_: False)
91
92 resp = self.call_api('list_packages', {})
93 self.assertEqual({
94 'status': 'SUCCESS',
95 }, resp.json_body)
96
97 def test_list_packages_match_prefix(self):
98 resp = self.call_api('register_package', {'package_name': 'p/a'})
99 self.assertEqual('REGISTERED', resp.json_body['status'])
100 resp = self.call_api('register_package', {'package_name': 'p/z'})
101 self.assertEqual('REGISTERED', resp.json_body['status'])
102 resp = self.call_api('register_package', {'package_name': 'p/z/z'})
103 self.assertEqual('REGISTERED', resp.json_body['status'])
104 resp = self.call_api('register_package', {'package_name': 'pp'})
105 self.assertEqual('REGISTERED', resp.json_body['status'])
106 resp = self.call_api('register_package', {'package_name': 'q'})
107 self.assertEqual('REGISTERED', resp.json_body['status'])
108
109 resp = self.call_api('list_packages', {
110 'prefix': 'p',
111 })
112 self.assertEqual({
113 'status': 'SUCCESS',
114 'packages': [
115 'p/a',
116 'p/z',
117 'p/z/z',
118 'pp',
119 ],
120 }, resp.json_body)
121
70 def test_register_package(self): 122 def test_register_package(self):
71 self.mock(utils, 'utcnow', lambda: datetime.datetime(2014, 1, 1)) 123 self.mock(utils, 'utcnow', lambda: datetime.datetime(2014, 1, 1))
72 124
73 # Not yet registered. 125 # Not yet registered.
74 resp = self.call_api('register_package', {'package_name': 'good/name'}) 126 resp = self.call_api('register_package', {'package_name': 'good/name'})
75 self.assertEqual(200, resp.status_code) 127 self.assertEqual(200, resp.status_code)
76 self.assertEqual({ 128 self.assertEqual({
77 'status': 'REGISTERED', 129 'status': 'REGISTERED',
78 'package': { 130 'package': {
79 'package_name': 'good/name', 131 'package_name': 'good/name',
(...skipping 920 matching lines...) Expand 10 before | Expand all | Expand 10 after
1000 return True 1052 return True
1001 1053
1002 def generate_fetch_url(self, instance): 1054 def generate_fetch_url(self, instance):
1003 return 'http://signed-url/%s' % instance.instance_id 1055 return 'http://signed-url/%s' % instance.instance_id
1004 1056
1005 def is_instance_file_uploaded(self, package_name, instance_id): 1057 def is_instance_file_uploaded(self, package_name, instance_id):
1006 return instance_id in self.uploaded 1058 return instance_id in self.uploaded
1007 1059
1008 def create_upload_session(self, package_name, instance_id, caller): 1060 def create_upload_session(self, package_name, instance_id, caller):
1009 return 'http://upload_url', 'upload_session_id' 1061 return 'http://upload_url', 'upload_session_id'
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698