Changeset View
Changeset View
Standalone View
Standalone View
swh/storage/tests/test_storage.py
Show First 20 Lines • Show All 1,167 Lines • ▼ Show 20 Lines | def test_revision_add(self): | ||||
self.assertEqual(list(self.journal_writer.objects), | self.assertEqual(list(self.journal_writer.objects), | ||||
[('revision', self.revision)]) | [('revision', self.revision)]) | ||||
# already there so nothing added | # already there so nothing added | ||||
actual_result = self.storage.revision_add([self.revision]) | actual_result = self.storage.revision_add([self.revision]) | ||||
self.assertEqual(actual_result, {'revision:add': 0}) | self.assertEqual(actual_result, {'revision:add': 0}) | ||||
def test_revision_add_validation(self): | |||||
rev = copy.deepcopy(self.revision) | |||||
rev['date']['offset'] = 2**16 | |||||
with self.assertRaisesRegex( | |||||
(ValueError, psycopg2.errors.NumericValueOutOfRange), | |||||
'offset'): | |||||
self.storage.revision_add([rev]) | |||||
rev = copy.deepcopy(self.revision) | |||||
rev['committer_date']['offset'] = 2**16 | |||||
with self.assertRaisesRegex( | |||||
(ValueError, psycopg2.errors.NumericValueOutOfRange), | |||||
'offset'): | |||||
self.storage.revision_add([rev]) | |||||
rev = copy.deepcopy(self.revision) | |||||
rev['type'] = 'foobar' | |||||
with self.assertRaisesRegex( | |||||
(ValueError, psycopg2.errors.InvalidTextRepresentation), | |||||
'(?i)type'): | |||||
self.storage.revision_add([rev]) | |||||
def test_revision_add_name_clash(self): | def test_revision_add_name_clash(self): | ||||
revision1 = self.revision.copy() | revision1 = self.revision.copy() | ||||
revision2 = self.revision2.copy() | revision2 = self.revision2.copy() | ||||
revision1['author'] = { | revision1['author'] = { | ||||
'fullname': b'John Doe <john.doe@example.com>', | 'fullname': b'John Doe <john.doe@example.com>', | ||||
'name': b'John Doe', | 'name': b'John Doe', | ||||
'email': b'john.doe@example.com' | 'email': b'john.doe@example.com' | ||||
} | } | ||||
▲ Show 20 Lines • Show All 141 Lines • ▼ Show 20 Lines | def test_release_add_no_author_date(self): | ||||
self.assertEqual(actual_result, {'release:add': 1}) | self.assertEqual(actual_result, {'release:add': 1}) | ||||
end_missing = self.storage.release_missing([self.release['id']]) | end_missing = self.storage.release_missing([self.release['id']]) | ||||
self.assertEqual([], list(end_missing)) | self.assertEqual([], list(end_missing)) | ||||
self.assertEqual(list(self.journal_writer.objects), | self.assertEqual(list(self.journal_writer.objects), | ||||
[('release', release)]) | [('release', release)]) | ||||
def test_release_add_validation(self): | |||||
rel = copy.deepcopy(self.release) | |||||
rel['date']['offset'] = 2**16 | |||||
with self.assertRaisesRegex( | |||||
(ValueError, psycopg2.errors.NumericValueOutOfRange), | |||||
'offset'): | |||||
self.storage.release_add([rel]) | |||||
rel = copy.deepcopy(self.release) | |||||
rel['author'] = None | |||||
with self.assertRaisesRegex( | |||||
(ValueError, psycopg2.errors.CheckViolation), | |||||
'date'): | |||||
self.storage.release_add([rel]) | |||||
def test_release_add_name_clash(self): | def test_release_add_name_clash(self): | ||||
release1 = self.release.copy() | release1 = self.release.copy() | ||||
release2 = self.release2.copy() | release2 = self.release2.copy() | ||||
release1['author'] = { | release1['author'] = { | ||||
'fullname': b'John Doe <john.doe@example.com>', | 'fullname': b'John Doe <john.doe@example.com>', | ||||
'name': b'John Doe', | 'name': b'John Doe', | ||||
'email': b'john.doe@example.com' | 'email': b'john.doe@example.com' | ||||
} | } | ||||
▲ Show 20 Lines • Show All 2,590 Lines • Show Last 20 Lines |