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

Unified 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 side-by-side diff with in-line comments
Download patch
Index: appengine/chrome_infra_packages/cipd/test/api_test.py
diff --git a/appengine/chrome_infra_packages/cipd/test/api_test.py b/appengine/chrome_infra_packages/cipd/test/api_test.py
index 571ad7c9b22238cf17f991bc2e7a320d90e751b5..066d9eac226f08b133455361d614d515052b0e66 100644
--- a/appengine/chrome_infra_packages/cipd/test/api_test.py
+++ b/appengine/chrome_infra_packages/cipd/test/api_test.py
@@ -67,6 +67,77 @@ class PackageRepositoryApiTest(testing.EndpointsTestCase):
'error_message': 'Invalid package name',
}, resp.json_body)
+ def test_list_packages_no_results(self):
+ resp = self.call_api('list_packages', {})
+ self.assertEqual({
+ 'status': 'SUCCESS',
+ }, resp.json_body)
+
+ def test_list_packages_all_packages(self):
+ resp = self.call_api('register_package', {'package_name': 'good/name'})
+ self.assertEqual('REGISTERED', resp.json_body['status'])
+
+ resp = self.call_api('list_packages', {'recursive': True})
+ self.assertEqual({
+ 'status': 'SUCCESS',
+ 'packages': ['good/name'],
+ 'directories': ['good'],
+ }, resp.json_body)
+
+ def test_list_packages_filter_no_access(self):
+ resp = self.call_api('register_package', {'package_name': 'good/name'})
+ self.assertEqual('REGISTERED', resp.json_body['status'])
+
+ self.mock(api.acl, 'can_fetch_package', lambda *_: False)
+
+ resp = self.call_api('list_packages', {})
+ self.assertEqual({
+ 'status': 'SUCCESS',
+ }, resp.json_body)
+
+ def test_list_packages_in_path(self):
+ resp = self.call_api('register_package', {'package_name': 'p/a'})
+ self.assertEqual('REGISTERED', resp.json_body['status'])
+ resp = self.call_api('register_package', {'package_name': 'p/y'})
+ self.assertEqual('REGISTERED', resp.json_body['status'])
+ resp = self.call_api('register_package', {'package_name': 'p/z/z'})
+ self.assertEqual('REGISTERED', resp.json_body['status'])
+ resp = self.call_api('register_package', {'package_name': 'pp'})
+ self.assertEqual('REGISTERED', resp.json_body['status'])
+ resp = self.call_api('register_package', {'package_name': 'q'})
+ self.assertEqual('REGISTERED', resp.json_body['status'])
+
+ resp = self.call_api('list_packages', {
+ 'path': 'p',
+ 'recursive': False,
+ })
+ self.assertEqual({
+ 'status': 'SUCCESS',
+ 'packages': [
+ 'p/a',
+ 'p/y',
+ ],
+ 'directories': [
+ 'p/z',
+ ],
+ }, resp.json_body)
+
+ resp = self.call_api('list_packages', {
+ 'path': 'p',
+ 'recursive': True,
+ })
+ self.assertEqual({
+ 'status': 'SUCCESS',
+ 'packages': [
+ 'p/a',
+ 'p/y',
+ 'p/z/z',
+ ],
+ 'directories': [
+ 'p/z',
+ ],
+ }, resp.json_body)
+
def test_register_package(self):
self.mock(utils, 'utcnow', lambda: datetime.datetime(2014, 1, 1))
« no previous file with comments | « appengine/chrome_infra_packages/cipd/impl.py ('k') | appengine/chrome_infra_packages/cipd/test/impl_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698