account: Use Timestamps better in test_backend unit tests

Change-Id: I0b0fadce9e1231a45b10177d7d3e2c6bcde06a3d
Signed-off-by: Matthew Oliver <matt@oliver.net.au>
This commit is contained in:
Matthew Oliver
2025-11-27 14:54:15 +11:00
committed by Alistair Coles
parent 48937cd183
commit 760829a75a

View File

@@ -420,17 +420,18 @@ class TestAccountBroker(test_db.TestDbBase):
def test_get_info(self):
# Test AccountBroker.get_info
broker = AccountBroker(self.get_db_path(), account='test1')
broker.initialize(Timestamp('1').internal)
put_ts = next(self.ts)
broker.initialize(put_ts.internal)
info = broker.get_info()
self.assertEqual(info['account'], 'test1')
self.assertEqual(info['hash'], '00000000000000000000000000000000')
self.assertEqual(info['put_timestamp'], Timestamp(1).internal)
self.assertEqual(info['put_timestamp'], put_ts.internal)
self.assertEqual(info['delete_timestamp'], '0')
if self.__class__ == TestAccountBrokerBeforeMetadata:
self.assertEqual(info['status_changed_at'], '0')
else:
self.assertEqual(info['status_changed_at'], Timestamp(1).internal)
self.assertEqual(info['status_changed_at'], put_ts.internal)
info = broker.get_info()
self.assertEqual(info['container_count'], 0)
@@ -597,20 +598,21 @@ class TestAccountBroker(test_db.TestDbBase):
def test_list_objects_iter_order_and_reverse(self):
# Test ContainerBroker.list_objects_iter
broker = AccountBroker(self.get_db_path(), account='a')
broker.initialize(Timestamp('1').internal, 0)
put_ts = next(self.ts)
broker.initialize(put_ts.internal, 0)
broker.put_container(
'c1', Timestamp(0).internal, 0, 0, 0, POLICIES.default.idx)
'c1', next(self.ts).internal, 0, 0, 0, POLICIES.default.idx)
broker.put_container(
'c10', Timestamp(0).internal, 0, 0, 0, POLICIES.default.idx)
'c10', next(self.ts).internal, 0, 0, 0, POLICIES.default.idx)
broker.put_container(
'C1', Timestamp(0).internal, 0, 0, 0, POLICIES.default.idx)
'C1', next(self.ts).internal, 0, 0, 0, POLICIES.default.idx)
broker.put_container(
'c2', Timestamp(0).internal, 0, 0, 0, POLICIES.default.idx)
'c2', next(self.ts).internal, 0, 0, 0, POLICIES.default.idx)
broker.put_container(
'c3', Timestamp(0).internal, 0, 0, 0, POLICIES.default.idx)
'c3', next(self.ts).internal, 0, 0, 0, POLICIES.default.idx)
broker.put_container(
'C4', Timestamp(0).internal, 0, 0, 0, POLICIES.default.idx)
'C4', next(self.ts).internal, 0, 0, 0, POLICIES.default.idx)
listing = broker.list_containers_iter(100, None, None, '', '',
reverse=False)
@@ -831,27 +833,30 @@ class TestAccountBroker(test_db.TestDbBase):
def test_chexor(self):
broker = AccountBroker(self.get_db_path(), account='a')
broker.initialize(Timestamp('1').internal)
broker.put_container('a', Timestamp(1).internal,
Timestamp(0).internal, 0, 0,
put_ts = next(self.ts)
delete_ts = Timestamp(0)
timestamps = [next(self.ts) for _ in range(3)]
broker.initialize(put_ts.internal)
broker.put_container('a', timestamps[0].internal,
delete_ts.internal, 0, 0,
POLICIES.default.idx)
broker.put_container('b', Timestamp(2).internal,
Timestamp(0).internal, 0, 0,
broker.put_container('b', timestamps[1].internal,
delete_ts.internal, 0, 0,
POLICIES.default.idx)
text = '%s-%s' % ('a', "%s-%s-%s-%s" % (
Timestamp(1).internal, Timestamp(0).internal, 0, 0))
timestamps[0].internal, delete_ts.internal, 0, 0))
hasha = md5(text.encode('ascii'), usedforsecurity=False).digest()
text = '%s-%s' % ('b', "%s-%s-%s-%s" % (
Timestamp(2).internal, Timestamp(0).internal, 0, 0))
timestamps[1].internal, delete_ts.internal, 0, 0))
hashb = md5(text.encode('ascii'), usedforsecurity=False).digest()
hashc = ''.join(('%02x' % (a ^ b)
for a, b in zip(hasha, hashb)))
self.assertEqual(broker.get_info()['hash'], hashc)
broker.put_container('b', Timestamp(3).internal,
Timestamp(0).internal, 0, 0,
broker.put_container('b', timestamps[2].internal,
delete_ts.internal, 0, 0,
POLICIES.default.idx)
text = '%s-%s' % ('b', "%s-%s-%s-%s" % (
Timestamp(3).internal, Timestamp(0).internal, 0, 0))
timestamps[2].internal, delete_ts.internal, 0, 0))
hashb = md5(text.encode('ascii'), usedforsecurity=False).digest()
hashc = ''.join(('%02x' % (a ^ b)
for a, b in zip(hasha, hashb)))
@@ -1889,11 +1894,13 @@ class TestAccountBrokerBeforePerPolicyContainerTrack(
def test_policy_table_cont_count_update_get_stats(self):
# add a few container entries
ts_zero = Timestamp(0)
for policy in POLICIES:
for i in range(0, policy.idx + 1):
container_name = 'c%s_0' % policy.idx
self.broker.put_container('c%s_%s' % (policy.idx, i),
0, 0, 0, 0, policy.idx)
ts_zero.internal, ts_zero.internal,
0, 0, policy.idx)
# _commit_puts_stale_ok() called by get_policy_stats()
# calling get_policy_stats() with do_migrations will alter the table
@@ -1928,7 +1935,9 @@ class TestAccountBrokerBeforePerPolicyContainerTrack(
# now put them back and make sure things are still cool
for policy in POLICIES:
container_name = 'c%s_0' % policy.idx
self.broker.put_container(container_name, 0, 0, 0, 0, policy.idx)
self.broker.put_container(
container_name, ts_zero.internal, ts_zero.internal, 0, 0,
policy.idx)
# _commit_puts_stale_ok() called by get_policy_stats()
# confirm stats reporting back correctly