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

Unified Diff: appengine/chrome_infra_packages/cipd/test/impl_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
« no previous file with comments | « appengine/chrome_infra_packages/cipd/test/api_test.py ('k') | go/src/infra/tools/cipd/apps/cipd/main.go » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: appengine/chrome_infra_packages/cipd/test/impl_test.py
diff --git a/appengine/chrome_infra_packages/cipd/test/impl_test.py b/appengine/chrome_infra_packages/cipd/test/impl_test.py
index 2fdd6e01d0126aebfc76d92075ce41a138de5e36..461e650d86d7fa14dab0cb2cfa59af54aac1f6fa 100644
--- a/appengine/chrome_infra_packages/cipd/test/impl_test.py
+++ b/appengine/chrome_infra_packages/cipd/test/impl_test.py
@@ -83,6 +83,92 @@ class TestRepoService(testing.AppengineTestCase):
self.mock(impl.cas, 'get_cas_service', lambda: self.mocked_cas_service)
self.service = impl.get_repo_service()
+ def test_list_packages_no_path(self):
+ self.assertIsNone(self.service.get_package('a/b'))
+ self.assertIsNone(self.service.get_package('y/z'))
+ self.service.register_package(
+ package_name='y/z',
+ caller=auth.Identity.from_bytes('user:abc@example.com'),
+ now=datetime.datetime(2014, 1, 1, 0, 0))
+ self.service.register_package(
+ package_name='a/b',
+ caller=auth.Identity.from_bytes('user:abc@example.com'),
+ now=datetime.datetime(2014, 1, 1, 0, 0))
+ self.assertEqual(([], ['a', 'y']),
+ self.service.list_packages('', False))
+ self.assertEqual((['a/b', 'y/z'], ['a', 'y']),
+ self.service.list_packages('', True))
+
+ def test_list_packages_with_path(self):
+ self.assertIsNone(self.service.get_package('a/b'))
+ self.assertIsNone(self.service.get_package('y/x'))
+ self.assertIsNone(self.service.get_package('y/z/z'))
+ self.service.register_package(
+ package_name='y/x',
+ caller=auth.Identity.from_bytes('user:abc@example.com'),
+ now=datetime.datetime(2014, 1, 1, 0, 0))
+ self.service.register_package(
+ package_name='y/z/z',
+ caller=auth.Identity.from_bytes('user:abc@example.com'),
+ now=datetime.datetime(2014, 1, 1, 0, 0))
+ self.service.register_package(
+ package_name='a/b',
+ caller=auth.Identity.from_bytes('user:abc@example.com'),
+ now=datetime.datetime(2014, 1, 1, 0, 0))
+ self.assertEqual((['y/x'], ['y/z']), self.service.list_packages('y', False))
+ self.assertEqual((['y/z/z'], []),
+ self.service.list_packages('y/z/z', False))
+ self.assertEqual((['y/x'], ['y/z']),
+ self.service.list_packages('y/', False))
+ self.assertEqual((['y/x', 'y/z/z'], ['y/z']),
+ self.service.list_packages('y', True))
+
+ def test_list_packages_ignore_substrings(self):
+ self.assertIsNone(self.service.get_package('good/path'))
+ self.service.register_package(
+ package_name='good/path',
+ caller=auth.Identity.from_bytes('user:abc@example.com'),
+ now=datetime.datetime(2014, 1, 1, 0, 0))
+ self.assertEqual((['good/path'], []),
+ self.service.list_packages('good', False))
+ self.assertEqual((['good/path'], []),
+ self.service.list_packages('good/', False))
+ self.assertEqual(([], []),
+ self.service.list_packages('goo', False))
+
+ def test_list_packages_where_a_package_is_also_a_directory(self):
+ self.assertIsNone(self.service.get_package('good'))
+ self.assertIsNone(self.service.get_package('good/path'))
+ self.service.register_package(
+ package_name='good',
+ caller=auth.Identity.from_bytes('user:abc@example.com'),
+ now=datetime.datetime(2014, 1, 1, 0, 0))
+ self.service.register_package(
+ package_name='good/path',
+ caller=auth.Identity.from_bytes('user:abc@example.com'),
+ now=datetime.datetime(2014, 1, 1, 0, 0))
+ self.assertEqual((['good'], ['good']),
+ self.service.list_packages('', False))
+ self.assertEqual((['good', 'good/path'], ['good']),
+ self.service.list_packages('', True))
+ # To keep things simple we match packages with names matching the search
+ # with the trailing slash stripped.
+ self.assertEqual((['good', 'good/path'], []),
+ self.service.list_packages('good/', False))
+
+ def test_list_packages_with_an_empty_directory(self):
+ self.assertIsNone(self.service.get_package('good/sub/path'))
+ self.service.register_package(
+ package_name='good/sub/path',
+ caller=auth.Identity.from_bytes('user:abc@example.com'),
+ now=datetime.datetime(2014, 1, 1, 0, 0))
+ self.assertEqual(([], ['good/sub']),
+ self.service.list_packages('good', False))
+ self.assertEqual((['good/sub/path'], ['good/sub']),
+ self.service.list_packages('good', True))
+ self.assertEqual((['good/sub/path'], ['good', 'good/sub']),
+ self.service.list_packages('', True))
+
def test_register_package_new(self):
self.assertIsNone(self.service.get_package('a/b'))
inst, registered = self.service.register_package(
« no previous file with comments | « appengine/chrome_infra_packages/cipd/test/api_test.py ('k') | go/src/infra/tools/cipd/apps/cipd/main.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698