def test_hash_suffix_multi_file_two(self): df = DiskFile(self.devices, 'sda', '0', 'a', 'c', 'o', FakeLogger()) mkdirs(df.datadir) for tdiff in [1, 50, 100, 500]: suffs = ['.meta', '.data'] if tdiff > 50: suffs.append('.ts') for suff in suffs: f = open( os.path.join( df.datadir, normalize_timestamp(int(time.time()) - tdiff) + suff), 'wb') f.write('1234567890') f.close() ohash = hash_path('a', 'c', 'o') data_dir = ohash[-3:] whole_path_from = os.path.join(self.objects, '0', data_dir) hsh_path = os.listdir(whole_path_from)[0] whole_hsh_path = os.path.join(whole_path_from, hsh_path) object_base.hash_suffix(whole_path_from, 99) # only the meta and data should be left self.assertEquals(len(os.listdir(whole_hsh_path)), 2)
def test_hash_suffix_one_file(self): df = DiskFile(self.devices, "sda", "0", "a", "c", "o", FakeLogger()) mkdirs(df.datadir) f = open(os.path.join(df.datadir, normalize_timestamp(time.time() - 100) + ".ts"), "wb") f.write("1234567890") f.close() ohash = hash_path("a", "c", "o") data_dir = ohash[-3:] whole_path_from = os.path.join(self.objects, "0", data_dir) object_base.hash_suffix(whole_path_from, 101) self.assertEquals(len(os.listdir(self.parts["0"])), 1) object_base.hash_suffix(whole_path_from, 99) self.assertEquals(len(os.listdir(self.parts["0"])), 0)
def test_hash_suffix_one_file(self): df = DiskFile(self.devices, 'sda', '0', 'a', 'c', 'o', FakeLogger()) mkdirs(df.datadir) f = open( os.path.join(df.datadir, normalize_timestamp(time.time() - 100) + '.ts'), 'wb') f.write('1234567890') f.close() ohash = hash_path('a', 'c', 'o') data_dir = ohash[-3:] whole_path_from = os.path.join(self.objects, '0', data_dir) object_base.hash_suffix(whole_path_from, 101) self.assertEquals(len(os.listdir(self.parts['0'])), 1) object_base.hash_suffix(whole_path_from, 99) self.assertEquals(len(os.listdir(self.parts['0'])), 0)
def test_hash_suffix_multi_file_one(self): df = DiskFile(self.devices, "sda", "0", "a", "c", "o", FakeLogger()) mkdirs(df.datadir) for tdiff in [1, 50, 100, 500]: for suff in [".meta", ".data", ".ts"]: f = open(os.path.join(df.datadir, normalize_timestamp(int(time.time()) - tdiff) + suff), "wb") f.write("1234567890") f.close() ohash = hash_path("a", "c", "o") data_dir = ohash[-3:] whole_path_from = os.path.join(self.objects, "0", data_dir) hsh_path = os.listdir(whole_path_from)[0] whole_hsh_path = os.path.join(whole_path_from, hsh_path) object_base.hash_suffix(whole_path_from, 99) # only the tombstone should be left self.assertEquals(len(os.listdir(whole_hsh_path)), 1)
def test_hash_suffix_hash_dir_is_file_quarantine(self): df = DiskFile(self.devices, 'sda', '0', 'a', 'c', 'o', FakeLogger()) mkdirs(os.path.dirname(df.datadir)) open(df.datadir, 'wb').close() ohash = hash_path('a', 'c', 'o') data_dir = ohash[-3:] whole_path_from = os.path.join(self.objects, '0', data_dir) orig_quarantine_renamer = object_base.quarantine_renamer called = [False] def wrapped(*args, **kwargs): called[0] = True return orig_quarantine_renamer(*args, **kwargs) try: object_base.quarantine_renamer = wrapped object_base.hash_suffix(whole_path_from, 101) finally: object_base.quarantine_renamer = orig_quarantine_renamer self.assertTrue(called[0])
def test_hash_suffix_hash_dir_is_file_quarantine(self): df = DiskFile(self.devices, "sda", "0", "a", "c", "o", FakeLogger()) mkdirs(os.path.dirname(df.datadir)) open(df.datadir, "wb").close() ohash = hash_path("a", "c", "o") data_dir = ohash[-3:] whole_path_from = os.path.join(self.objects, "0", data_dir) orig_quarantine_renamer = object_base.quarantine_renamer called = [False] def wrapped(*args, **kwargs): called[0] = True return orig_quarantine_renamer(*args, **kwargs) try: object_base.quarantine_renamer = wrapped object_base.hash_suffix(whole_path_from, 101) finally: object_base.quarantine_renamer = orig_quarantine_renamer self.assertTrue(called[0])