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

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 7264568614f7311edbf1877ca10f81bcaa52a24e..040e2236c42e07d5e3de0dbd551d900d3b5566c8 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))

Powered by Google App Engine
This is Rietveld 408576698