def test_init_not_existing_archive(self): """Test if an exception is raised when the given archive does not exist""" archive_path = os.path.join(self.test_path, 'myarchive') with self.assertRaisesRegex(ArchiveError, "archive %s does not exist" % archive_path): _ = Archive(archive_path)
def test_items_storing_archive(self): """Test whether items are stored in an archive""" manager = ArchiveManager(self.test_path) args = { 'origin': 'http://example.com/', 'category': 'mock_item', 'tag': 'test', 'subtype': 'mocksubtype', 'from-date': str_to_datetime('2015-01-01') } items = fetch(CommandBackend, args, manager=manager) items = [item for item in items] self.assertEqual(len(items), 5) for x in range(5): item = items[x] expected_uuid = uuid('http://example.com/', str(x)) self.assertEqual(item['data']['item'], x) self.assertEqual(item['origin'], 'http://example.com/') self.assertEqual(item['uuid'], expected_uuid) self.assertEqual(item['tag'], 'test') filepaths = manager.search('http://example.com/', 'CommandBackend', 'mock_item', str_to_datetime('1970-01-01')) self.assertEqual(len(filepaths), 1) archive = Archive(filepaths[0]) self.assertEqual(archive._count_table_rows('archive'), 5)
def test_init_not_valid_archive(self): """Test if an exception is raised when the file is an invalid archive""" archive_path = os.path.join(self.test_path, 'invalid_archive') with open(archive_path, 'w') as fd: fd.write("Invalid archive file") with self.assertRaisesRegex(ArchiveError, "invalid archive file"): _ = Archive(archive_path)
def test_init(self): """Test whether an archive is propertly initialized""" archive_path = os.path.join(self.test_path, 'myarchive') _ = Archive.create(archive_path) archive = Archive(archive_path) self.assertEqual(archive.archive_path, archive_path) self.assertEqual(archive.created_on, None) self.assertEqual(archive.origin, None) self.assertEqual(archive.backend_name, None) self.assertEqual(archive.backend_version, None) self.assertEqual(archive.category, None) self.assertEqual(archive.backend_params, None)
def test_init_metadata(self): """Test whether metadata information is properly initialized""" archive_path = os.path.join(self.test_path, 'myarchive') archive = Archive.create(archive_path) before_dt = datetime_to_utc(datetime_utcnow()) archive.init_metadata('marvel.com', 'marvel-comics-backend', '0.1.0', 'issue', {'from_date': before_dt}) after_dt = datetime_to_utc(datetime_utcnow()) archive_copy = Archive(archive_path) # Both copies should have the same parameters for arch in [archive, archive_copy]: self.assertEqual(arch.origin, 'marvel.com') self.assertEqual(arch.backend_name, 'marvel-comics-backend') self.assertEqual(arch.backend_version, '0.1.0') self.assertEqual(arch.category, 'issue') self.assertGreaterEqual(arch.created_on, before_dt) self.assertLessEqual(arch.created_on, after_dt) self.assertDictEqual(arch.backend_params, {'from_date': before_dt})