| 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 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 76 | 76 |
| 77 class TestRepoService(testing.AppengineTestCase): | 77 class TestRepoService(testing.AppengineTestCase): |
| 78 maxDiff = None | 78 maxDiff = None |
| 79 | 79 |
| 80 def setUp(self): | 80 def setUp(self): |
| 81 super(TestRepoService, self).setUp() | 81 super(TestRepoService, self).setUp() |
| 82 self.mocked_cas_service = MockedCASService() | 82 self.mocked_cas_service = MockedCASService() |
| 83 self.mock(impl.cas, 'get_cas_service', lambda: self.mocked_cas_service) | 83 self.mock(impl.cas, 'get_cas_service', lambda: self.mocked_cas_service) |
| 84 self.service = impl.get_repo_service() | 84 self.service = impl.get_repo_service() |
| 85 | 85 |
| 86 def test_list_packages_no_path(self): |
| 87 self.assertIsNone(self.service.get_package('a/b')) |
| 88 self.assertIsNone(self.service.get_package('y/z')) |
| 89 self.service.register_package( |
| 90 package_name='y/z', |
| 91 caller=auth.Identity.from_bytes('user:abc@example.com'), |
| 92 now=datetime.datetime(2014, 1, 1, 0, 0)) |
| 93 self.service.register_package( |
| 94 package_name='a/b', |
| 95 caller=auth.Identity.from_bytes('user:abc@example.com'), |
| 96 now=datetime.datetime(2014, 1, 1, 0, 0)) |
| 97 self.assertEqual(([], ['a', 'y']), |
| 98 self.service.list_packages('', False)) |
| 99 self.assertEqual((['a/b', 'y/z'], ['a', 'y']), |
| 100 self.service.list_packages('', True)) |
| 101 |
| 102 def test_list_packages_with_path(self): |
| 103 self.assertIsNone(self.service.get_package('a/b')) |
| 104 self.assertIsNone(self.service.get_package('y/x')) |
| 105 self.assertIsNone(self.service.get_package('y/z/z')) |
| 106 self.service.register_package( |
| 107 package_name='y/x', |
| 108 caller=auth.Identity.from_bytes('user:abc@example.com'), |
| 109 now=datetime.datetime(2014, 1, 1, 0, 0)) |
| 110 self.service.register_package( |
| 111 package_name='y/z/z', |
| 112 caller=auth.Identity.from_bytes('user:abc@example.com'), |
| 113 now=datetime.datetime(2014, 1, 1, 0, 0)) |
| 114 self.service.register_package( |
| 115 package_name='a/b', |
| 116 caller=auth.Identity.from_bytes('user:abc@example.com'), |
| 117 now=datetime.datetime(2014, 1, 1, 0, 0)) |
| 118 self.assertEqual((['y/x'], ['y/z']), self.service.list_packages('y', False)) |
| 119 self.assertEqual((['y/z/z'], []), |
| 120 self.service.list_packages('y/z/z', False)) |
| 121 self.assertEqual((['y/x'], ['y/z']), |
| 122 self.service.list_packages('y/', False)) |
| 123 self.assertEqual((['y/x', 'y/z/z'], ['y/z']), |
| 124 self.service.list_packages('y', True)) |
| 125 |
| 126 def test_list_packages_ignore_substrings(self): |
| 127 self.assertIsNone(self.service.get_package('good/path')) |
| 128 self.service.register_package( |
| 129 package_name='good/path', |
| 130 caller=auth.Identity.from_bytes('user:abc@example.com'), |
| 131 now=datetime.datetime(2014, 1, 1, 0, 0)) |
| 132 self.assertEqual((['good/path'], []), |
| 133 self.service.list_packages('good', False)) |
| 134 self.assertEqual((['good/path'], []), |
| 135 self.service.list_packages('good/', False)) |
| 136 self.assertEqual(([], []), |
| 137 self.service.list_packages('goo', False)) |
| 138 |
| 139 def test_list_packages_where_a_package_is_also_a_directory(self): |
| 140 self.assertIsNone(self.service.get_package('good')) |
| 141 self.assertIsNone(self.service.get_package('good/path')) |
| 142 self.service.register_package( |
| 143 package_name='good', |
| 144 caller=auth.Identity.from_bytes('user:abc@example.com'), |
| 145 now=datetime.datetime(2014, 1, 1, 0, 0)) |
| 146 self.service.register_package( |
| 147 package_name='good/path', |
| 148 caller=auth.Identity.from_bytes('user:abc@example.com'), |
| 149 now=datetime.datetime(2014, 1, 1, 0, 0)) |
| 150 self.assertEqual((['good'], ['good']), |
| 151 self.service.list_packages('', False)) |
| 152 self.assertEqual((['good', 'good/path'], ['good']), |
| 153 self.service.list_packages('', True)) |
| 154 # To keep things simple we match packages with names matching the search |
| 155 # with the trailing slash stripped. |
| 156 self.assertEqual((['good', 'good/path'], []), |
| 157 self.service.list_packages('good/', False)) |
| 158 |
| 159 def test_list_packages_with_an_empty_directory(self): |
| 160 self.assertIsNone(self.service.get_package('good/sub/path')) |
| 161 self.service.register_package( |
| 162 package_name='good/sub/path', |
| 163 caller=auth.Identity.from_bytes('user:abc@example.com'), |
| 164 now=datetime.datetime(2014, 1, 1, 0, 0)) |
| 165 self.assertEqual(([], ['good/sub']), |
| 166 self.service.list_packages('good', False)) |
| 167 self.assertEqual((['good/sub/path'], ['good/sub']), |
| 168 self.service.list_packages('good', True)) |
| 169 self.assertEqual((['good/sub/path'], ['good', 'good/sub']), |
| 170 self.service.list_packages('', True)) |
| 171 |
| 86 def test_register_package_new(self): | 172 def test_register_package_new(self): |
| 87 self.assertIsNone(self.service.get_package('a/b')) | 173 self.assertIsNone(self.service.get_package('a/b')) |
| 88 inst, registered = self.service.register_package( | 174 inst, registered = self.service.register_package( |
| 89 package_name='a/b', | 175 package_name='a/b', |
| 90 caller=auth.Identity.from_bytes('user:abc@example.com'), | 176 caller=auth.Identity.from_bytes('user:abc@example.com'), |
| 91 now=datetime.datetime(2014, 1, 1, 0, 0)) | 177 now=datetime.datetime(2014, 1, 1, 0, 0)) |
| 92 self.assertTrue(registered) | 178 self.assertTrue(registered) |
| 93 self.assertEqual('a/b', inst.package_name) | 179 self.assertEqual('a/b', inst.package_name) |
| 94 self.assertEqual({ | 180 self.assertEqual({ |
| 95 'registered_by': auth.Identity(kind='user', name='abc@example.com'), | 181 'registered_by': auth.Identity(kind='user', name='abc@example.com'), |
| (...skipping 483 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 579 return True | 665 return True |
| 580 | 666 |
| 581 def run(self, instance, data): | 667 def run(self, instance, data): |
| 582 if self.error: | 668 if self.error: |
| 583 raise processing.ProcessingError(self.error) | 669 raise processing.ProcessingError(self.error) |
| 584 return { | 670 return { |
| 585 'instance_id': instance.instance_id, | 671 'instance_id': instance.instance_id, |
| 586 'package_name': instance.package_name, | 672 'package_name': instance.package_name, |
| 587 'processor_name': self.name, | 673 'processor_name': self.name, |
| 588 } | 674 } |
| OLD | NEW |