class SaveTests(unittest.TestCase): def setUp(self): self.connector = MockConnector(urlparse.urlparse('/baseurl/repo/')) self.connector.connect() self.pi = index.PictureIndex() self.pi.add(MockPicture.create_many(10)) self.conf = repo.new_repo_config() self.conf['index.file'] = 'mock-index-path' def tearDown(self): self.connector.disconnect() def test_save_config_to_disk(self): r = Repo(self.pi, self.conf, self.connector) r.save_config_to_disk() self.assertTrue(self.connector.opened(repo.CONFIG_FILE)) config_on_disk = config.Config() config_on_disk.read(self.connector.get_file(repo.CONFIG_FILE)) self.assertEqual(config_on_disk, self.conf) self.assertIsNot(config_on_disk, self.conf) def test_save_index_to_disk(self): r = Repo(self.pi, self.conf, self.connector) r.save_index_to_disk() self.assertTrue(self.connector.opened('mock-index-path')) index_on_disk = index.PictureIndex() index_on_disk.read(self.connector.get_file('mock-index-path')) self.assertEqual(index_on_disk, self.pi) self.assertIsNot(index_on_disk, self.pi)
class LoadTests(unittest.TestCase): def setUp(self): self.connector = MockConnector(urlparse.urlparse('/baseurl/repo/')) self.connector.connect() self.pi = index.PictureIndex() self.pi.add(MockPicture.create_many(10)) self.conf = repo.new_repo_config() self.conf['index.file'] = 'mock-index-path' Repo.create_on_disk(self.connector, self.conf, self.pi) def tearDown(self): self.connector.disconnect() def test_load_config_from_disk(self): r = Repo(index={}, config={}, connector=self.connector) r.load_config_from_disk() self.assertEqual(r.config, self.conf) self.assertIsNot(r.config, self.conf) self.assertEqual(r.index, {}) def test_load_index_from_disk(self): r = Repo(index={}, config=self.conf, connector=self.connector) r.load_index_from_disk() self.assertEqual(r.index, self.pi) self.assertIsNot(r.index, self.pi) def test_load_index_version_current(self): r = Repo(index={}, config=self.conf, connector=self.connector) r.load_index_from_disk(repo.INDEX_FORMAT_VERSION) self.assertEqual(r.index, self.pi) self.assertIsNot(r.index, self.pi) def test_load_index_version_1(self): r = Repo(index={}, config=self.conf, connector=self.connector) r.load_index_from_disk(1) self.assertEqual(r.index, self.pi) self.assertIsNot(r.index, self.pi) def test_load_index_version_too_low(self): r = Repo(index={}, config=self.conf, connector=self.connector) self.assertRaises(KeyError, r.load_index_from_disk, 0) def test_load_version_mismatch_error(self): r = Repo(index={}, config=self.conf, connector=self.connector) with self.assertRaises(VersionMismatchError) as cm: r.load_index_from_disk(99) self.assertEqual(cm.exception.actual, 99) self.assertEqual(cm.exception.expected, repo.INDEX_FORMAT_VERSION)