Fix unit tests to properly marked deleted files
The unit tests were playing fast and loose with the tombstone marker, where the test framework was setting up a DiskFile object which had its data written to the .ts file, not the .data file. This behavior did not reflect how the interfaces to DiskFile were supposed to work. Change-Id: Idd6e8882e062ba2e13489f14189223ab4158677c Signed-off-by: Peter Portante <peter.portante@redhat.com>
This commit is contained in:
committed by
Gerrit Code Review
parent
18a0813d9b
commit
bc99f58c76
@@ -208,7 +208,7 @@ class TestDiskFile(unittest.TestCase):
|
||||
self.assert_('-' in os.path.basename(double_uuid_path))
|
||||
|
||||
def _get_disk_file(self, invalid_type=None, obj_name='o',
|
||||
fsize=1024, csize=8, extension='.data', ts=None,
|
||||
fsize=1024, csize=8, mark_deleted=False, ts=None,
|
||||
iter_hook=None):
|
||||
'''returns a DiskFile'''
|
||||
df = object_server.DiskFile(self.testdir, 'sda1', '0', 'a', 'c',
|
||||
@@ -228,7 +228,7 @@ class TestDiskFile(unittest.TestCase):
|
||||
'X-Timestamp': timestamp,
|
||||
'Content-Length': str(os.fstat(writer.fd).st_size),
|
||||
}
|
||||
writer.put(metadata, extension=extension)
|
||||
writer.put(metadata)
|
||||
if invalid_type == 'ETag':
|
||||
etag = md5()
|
||||
etag.update('1' + '0' * (fsize - 1))
|
||||
@@ -239,6 +239,13 @@ class TestDiskFile(unittest.TestCase):
|
||||
metadata['Content-Length'] = fsize - 1
|
||||
object_server.write_metadata(writer.fd, metadata)
|
||||
|
||||
if mark_deleted:
|
||||
metadata = {
|
||||
'X-Timestamp': timestamp,
|
||||
'deleted': True
|
||||
}
|
||||
df.put_metadata(metadata, tombstone=True)
|
||||
|
||||
df = object_server.DiskFile(self.testdir, 'sda1', '0', 'a', 'c',
|
||||
obj_name, FakeLogger(),
|
||||
keep_data_fp=True, disk_chunk_size=csize,
|
||||
@@ -315,16 +322,15 @@ class TestDiskFile(unittest.TestCase):
|
||||
self.run_quarantine_invalids('Zero-Byte')
|
||||
|
||||
def test_quarantine_deleted_files(self):
|
||||
df = self._get_disk_file(invalid_type='Content-Length',
|
||||
extension='.data')
|
||||
df = self._get_disk_file(invalid_type='Content-Length')
|
||||
df.close()
|
||||
self.assertTrue(df.quarantined_dir)
|
||||
df = self._get_disk_file(invalid_type='Content-Length',
|
||||
extension='.ts')
|
||||
mark_deleted=True)
|
||||
df.close()
|
||||
self.assertFalse(df.quarantined_dir)
|
||||
df = self._get_disk_file(invalid_type='Content-Length',
|
||||
extension='.ts')
|
||||
mark_deleted=True)
|
||||
self.assertRaises(DiskFileNotExist, df.get_data_file_size)
|
||||
|
||||
def test_put_metadata(self):
|
||||
@@ -370,8 +376,7 @@ class TestDiskFile(unittest.TestCase):
|
||||
self.assertEquals(len(df.logger.log_dict['error']), 1)
|
||||
|
||||
def test_quarantine_twice(self):
|
||||
df = self._get_disk_file(invalid_type='Content-Length',
|
||||
extension='.data')
|
||||
df = self._get_disk_file(invalid_type='Content-Length')
|
||||
self.assert_(os.path.isfile(df.data_file))
|
||||
quar_dir = df.quarantine()
|
||||
self.assertFalse(os.path.isfile(df.data_file))
|
||||
|
||||
Reference in New Issue
Block a user