Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 import hashlib | 6 import hashlib |
| 7 import StringIO | 7 import StringIO |
| 8 import unittest | 8 import unittest |
| 9 import zipfile | 9 import zipfile |
| 10 | 10 |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 64 | 64 |
| 65 class TestRepoService(testing.AppengineTestCase): | 65 class TestRepoService(testing.AppengineTestCase): |
| 66 maxDiff = None | 66 maxDiff = None |
| 67 | 67 |
| 68 def setUp(self): | 68 def setUp(self): |
| 69 super(TestRepoService, self).setUp() | 69 super(TestRepoService, self).setUp() |
| 70 self.mocked_cas_service = MockedCASService() | 70 self.mocked_cas_service = MockedCASService() |
| 71 self.mock(impl.cas, 'get_cas_service', lambda: self.mocked_cas_service) | 71 self.mock(impl.cas, 'get_cas_service', lambda: self.mocked_cas_service) |
| 72 self.service = impl.get_repo_service() | 72 self.service = impl.get_repo_service() |
| 73 | 73 |
| 74 def test_list_packages_no_path(self): | |
| 75 self.assertIsNone(self.service.get_package('a/b')) | |
| 76 self.assertIsNone(self.service.get_package('y/z')) | |
| 77 self.service.register_package( | |
| 78 package_name='y/z', | |
| 79 caller=auth.Identity.from_bytes('user:abc@example.com'), | |
| 80 now=datetime.datetime(2014, 1, 1, 0, 0)) | |
| 81 self.service.register_package( | |
| 82 package_name='a/b', | |
| 83 caller=auth.Identity.from_bytes('user:abc@example.com'), | |
| 84 now=datetime.datetime(2014, 1, 1, 0, 0)) | |
| 85 self.assertEqual(([], ['a', 'y']), | |
| 86 self.service.list_packages('', False)) | |
| 87 self.assertEqual((['a/b', 'y/z'], ['a', 'y']), | |
| 88 self.service.list_packages('', True)) | |
| 89 | |
| 90 def test_list_packages_with_path(self): | |
| 91 self.assertIsNone(self.service.get_package('a/b')) | |
| 92 self.assertIsNone(self.service.get_package('y/x')) | |
| 93 self.assertIsNone(self.service.get_package('y/z/z')) | |
| 94 self.service.register_package( | |
| 95 package_name='y/x', | |
| 96 caller=auth.Identity.from_bytes('user:abc@example.com'), | |
| 97 now=datetime.datetime(2014, 1, 1, 0, 0)) | |
| 98 self.service.register_package( | |
| 99 package_name='y/z/z', | |
| 100 caller=auth.Identity.from_bytes('user:abc@example.com'), | |
| 101 now=datetime.datetime(2014, 1, 1, 0, 0)) | |
| 102 self.service.register_package( | |
| 103 package_name='a/b', | |
| 104 caller=auth.Identity.from_bytes('user:abc@example.com'), | |
| 105 now=datetime.datetime(2014, 1, 1, 0, 0)) | |
| 106 self.assertEqual((['y/x'], ['y/z']), self.service.list_packages('y', False)) | |
| 107 self.assertEqual((['y/z/z'], []), | |
| 108 self.service.list_packages('y/z/z', False)) | |
| 109 self.assertEqual((['y/x'], ['y/z']), | |
| 110 self.service.list_packages('y/', False)) | |
| 111 self.assertEqual((['y/x', 'y/z/z'], ['y/z']), | |
| 112 self.service.list_packages('y', True)) | |
| 113 | |
| 114 def test_list_packages_ignore_substrings(self): | |
| 115 self.assertIsNone(self.service.get_package('good/path')) | |
| 116 self.service.register_package( | |
| 117 package_name='good/path', | |
| 118 caller=auth.Identity.from_bytes('user:abc@example.com'), | |
| 119 now=datetime.datetime(2014, 1, 1, 0, 0)) | |
| 120 self.assertEqual((['good/path'], []), | |
| 121 self.service.list_packages('good', False)) | |
| 122 self.assertEqual((['good/path'], []), | |
| 123 self.service.list_packages('good/', False)) | |
| 124 self.assertEqual(([], []), | |
| 125 self.service.list_packages('goo', False)) | |
| 126 | |
| 127 def test_list_packages_where_a_package_is_also_a_directory(self): | |
| 128 self.assertIsNone(self.service.get_package('good')) | |
| 129 self.assertIsNone(self.service.get_package('good/path')) | |
| 130 self.service.register_package( | |
| 131 package_name='good', | |
| 132 caller=auth.Identity.from_bytes('user:abc@example.com'), | |
| 133 now=datetime.datetime(2014, 1, 1, 0, 0)) | |
| 134 self.service.register_package( | |
| 135 package_name='good/path', | |
| 136 caller=auth.Identity.from_bytes('user:abc@example.com'), | |
| 137 now=datetime.datetime(2014, 1, 1, 0, 0)) | |
| 138 self.assertEqual((['good'], ['good']), | |
| 139 self.service.list_packages('', False)) | |
| 140 self.assertEqual((['good', 'good/path'], ['good']), | |
| 141 self.service.list_packages('', True)) | |
| 142 # Don't be too smart about this case since we'll eventually remove | |
| 143 # support for being both a package and directory. | |
|
Vadim Sh.
2015/06/23 00:08:35
If we do it, we have to do it correctly: package r
estaab
2015/06/23 02:26:13
It should be ok. I changed the comment.
| |
| 144 self.assertEqual((['good', 'good/path'], []), | |
| 145 self.service.list_packages('good/', False)) | |
| 146 | |
| 147 def test_list_packages_with_an_empty_directory(self): | |
| 148 self.assertIsNone(self.service.get_package('good/sub/path')) | |
| 149 self.service.register_package( | |
| 150 package_name='good/sub/path', | |
| 151 caller=auth.Identity.from_bytes('user:abc@example.com'), | |
| 152 now=datetime.datetime(2014, 1, 1, 0, 0)) | |
| 153 self.assertEqual(([], ['good/sub']), | |
| 154 self.service.list_packages('good', False)) | |
| 155 self.assertEqual((['good/sub/path'], ['good/sub']), | |
| 156 self.service.list_packages('good', True)) | |
| 157 self.assertEqual((['good/sub/path'], ['good', 'good/sub']), | |
| 158 self.service.list_packages('', True)) | |
| 159 | |
| 74 def test_register_package_new(self): | 160 def test_register_package_new(self): |
| 75 self.assertIsNone(self.service.get_package('a/b')) | 161 self.assertIsNone(self.service.get_package('a/b')) |
| 76 inst, registered = self.service.register_package( | 162 inst, registered = self.service.register_package( |
| 77 package_name='a/b', | 163 package_name='a/b', |
| 78 caller=auth.Identity.from_bytes('user:abc@example.com'), | 164 caller=auth.Identity.from_bytes('user:abc@example.com'), |
| 79 now=datetime.datetime(2014, 1, 1, 0, 0)) | 165 now=datetime.datetime(2014, 1, 1, 0, 0)) |
| 80 self.assertTrue(registered) | 166 self.assertTrue(registered) |
| 81 self.assertEqual('a/b', inst.package_name) | 167 self.assertEqual('a/b', inst.package_name) |
| 82 self.assertEqual({ | 168 self.assertEqual({ |
| 83 'registered_by': auth.Identity(kind='user', name='abc@example.com'), | 169 'registered_by': auth.Identity(kind='user', name='abc@example.com'), |
| (...skipping 435 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 519 return True | 605 return True |
| 520 | 606 |
| 521 def run(self, instance, data): | 607 def run(self, instance, data): |
| 522 if self.error: | 608 if self.error: |
| 523 raise processing.ProcessingError(self.error) | 609 raise processing.ProcessingError(self.error) |
| 524 return { | 610 return { |
| 525 'instance_id': instance.instance_id, | 611 'instance_id': instance.instance_id, |
| 526 'package_name': instance.package_name, | 612 'package_name': instance.package_name, |
| 527 'processor_name': self.name, | 613 'processor_name': self.name, |
| 528 } | 614 } |
| OLD | NEW |