def test_filter_files_for_digest_mismatch_1(self): test_file_3_path = write_something_to_a_blank_file(dir_path=self.tmp_dir_1) checksum_file_3_path = create_checksum_file(test_file_3_path) test_file_4_path = write_something_to_a_blank_file(dir_path=self.tmp_dir_1) checksum_file_4_path = create_checksum_file(test_file_4_path) self.test_sync.find_all_files() self.assertEqual(self._without_timestamps(self.test_sync.get_file_stats()), {self.test_file_1.name: 0, self.test_file_2.name: 0, test_file_3_path: 5, checksum_file_3_path: 37, test_file_4_path: 5, checksum_file_4_path: 37}) self.test_sync.filter_files_for_digest_mismatch() self.assertEqual(self._without_timestamps(self.test_sync.get_file_stats()), {test_file_3_path: 5, checksum_file_3_path: 37, test_file_4_path: 5, checksum_file_4_path: 37}) test_file_5_path = write_something_to_a_blank_file(dir_path=self.tmp_dir_1) checksum_file_5_path = create_checksum_file(test_file_5_path, valid_check_sum=False) self.test_sync.find_all_files() self.assertEqual(self._without_timestamps(self.test_sync.get_file_stats()), { self.test_file_1.name: 0, self.test_file_2.name: 0, test_file_3_path: 5, checksum_file_3_path: 37, test_file_4_path: 5, checksum_file_4_path: 37, test_file_5_path: 5, checksum_file_5_path: 26}) self.test_sync.filter_files_for_digest_mismatch() self.assertEqual(self._without_timestamps(self.test_sync.get_file_stats()), { test_file_3_path: 5, checksum_file_3_path: 37, test_file_4_path: 5, checksum_file_4_path: 37})
def test_get_file_hash(self): test_md5_hasher_hex = MD5Hasher(block_size=64, hex_digest=True) test_md5_hasher_binary = MD5Hasher(hex_digest=False) test_file_path = write_something_to_a_blank_file(dir_path=self.tmp_dir_1) hex_digest, digest = get_file_hash(test_file_path) self.assertEqual(test_md5_hasher_hex.get_file_hash(test_file_path), hex_digest) self.assertEqual(test_md5_hasher_binary.get_file_hash(test_file_path), digest)
def test_get_file_hash(self): test_md5_hasher_hex = MD5Hasher(block_size=64, hex_digest=True) test_md5_hasher_binary = MD5Hasher(hex_digest=False) test_file_path = write_something_to_a_blank_file( dir_path=self.tmp_dir_1) hex_digest, digest = get_file_hash(test_file_path) self.assertEqual(test_md5_hasher_hex.get_file_hash(test_file_path), hex_digest) self.assertEqual(test_md5_hasher_binary.get_file_hash(test_file_path), digest)
def test_handle_missing_checksum_files_with_both_missing_and_avail(self): test_file_3_path = write_something_to_a_blank_file(dir_path=self.tmp_dir_1) checksum_file_3_path = create_checksum_file(test_file_3_path) self.test_sync.find_all_files() self.assertEqual(self._without_timestamps(self.test_sync.get_file_stats()), {self.test_file_1.name: 0, self.test_file_2.name: 0, test_file_3_path: 5, checksum_file_3_path: 37}) self.test_sync.handle_missing_checksum_files() self.assertEqual(len(self._without_timestamps(self.test_sync.get_file_stats()).keys()), 6) self.assertEqual(set(self._without_timestamps(self.test_sync.get_file_stats()).keys()), {self.test_file_1.name, self.test_file_2.name, test_file_3_path, self.test_file_1.name + '.done', self.test_file_2.name + '.done', test_file_3_path + '.done'})
def test_handle_missing_checksum_files_when_user_drops_checksum_file_during_a_watch_period(self): test_file_3_path = write_something_to_a_blank_file(dir_path=self.tmp_dir_1) self.test_sync.find_all_files() self.assertEqual(self._without_timestamps(self.test_sync.get_file_stats()), {self.test_file_1.name: 0, self.test_file_2.name: 0, test_file_3_path: 5}) # user drops the checksum file after a snapshot is taken checksum_file_3_path = create_checksum_file(test_file_3_path) self.test_sync.watch_files() self.test_sync.handle_missing_checksum_files() self.assertEqual(len(self._without_timestamps(self.test_sync.get_file_stats()).keys()), 4) self.assertEqual(set(self._without_timestamps(self.test_sync.get_file_stats()).keys()), {self.test_file_1.name, self.test_file_2.name, self.test_file_1.name + '.done', self.test_file_2.name + '.done'})
def test_remove_files_from_dict(self): test_file_path = write_something_to_a_blank_file(dir_path=self.tmp_dir_1) checksum_file_path = create_checksum_file(test_file_path) self.test_sync.find_all_files() self.assertEqual(self._without_timestamps(self.test_sync.get_file_stats()), { self.test_file_1.name: 0, self.test_file_2.name: 0, test_file_path: 5, checksum_file_path: 37}) self.test_sync.remove_file_from_dict(self.test_file_1.name) self.assertEqual(self._without_timestamps(self.test_sync.get_file_stats()), { self.test_file_2.name: 0, test_file_path: 5, checksum_file_path: 37}) self.test_sync.remove_file_pair_from_dict(test_file_path) self.assertEqual(self._without_timestamps(self.test_sync.get_file_stats()), {self.test_file_2.name: 0}) self.test_sync.remove_file_pair_from_dict(self.test_file_2.name) self.assertEqual(self._without_timestamps(self.test_sync.get_file_stats()), {})
def setUp(self): self.pattern = "['*.gpg', '*.gpg.done']" self.base_dir = tempfile.mkdtemp(prefix='base') self.source_dir = tempfile.mkdtemp(prefix='arrivals', dir=self.base_dir) self.source_path = os.path.join(self.base_dir, self.source_dir) conf = { 'base_dir': self.base_dir, 'source_dir': self.source_dir, 'landing_zone_host_name': 'localhost', 'arrivals_path': 'arrivals', 'private_key_file': '~/.ssh/id_rsa', 'sftp_user': '******' } self.file_mover = FileMover(config=conf) self.tmp_dir_1 = tempfile.mkdtemp(prefix='tmp_1') self.test_file_1 = write_something_to_a_blank_file( dir_path=self.tmp_dir_1) self.checksum_file_1 = create_checksum_file(self.test_file_1)
def setUp(self): self.tmp_dir_1 = tempfile.mkdtemp(prefix='tmp_1') self.test_file_1 = write_something_to_a_blank_file(dir_path=self.tmp_dir_1)
def setUp(self): self.tmp_dir_1 = tempfile.mkdtemp(prefix='tmp_1') self.test_file_1 = write_something_to_a_blank_file( dir_path=self.tmp_dir_1)
def test_valid_check_sum_with_invalid_checksum_file(self): test_file_path = write_something_to_a_blank_file(dir_path=self.tmp_dir_1) _ = create_checksum_file(test_file_path, valid_check_sum=False) self.assertFalse(self.test_sync.valid_check_sum(test_file_path))
def test_valid_check_sum_with_no_checksum_file_for_longer_time(self): test_file_path = write_something_to_a_blank_file(dir_path=self.tmp_dir_1) time.sleep(5) self.assertFalse(self.test_sync.valid_check_sum(test_file_path))