Implement strict get match

This commit is contained in:
lash 2022-03-11 19:43:00 +00:00
parent c4caab6a3a
commit 3880249683
Signed by: lash
GPG Key ID: 21D2E7BB88C2A746
2 changed files with 6 additions and 3 deletions

View File

@ -36,12 +36,13 @@ class Store:
return self.index_store.get(k)
def list(self, state=0, limit=4096, state_exact=False):
def list(self, state=0, limit=4096, strict=False):
hashes = []
i = 0
for k in self.state_store.list(state):
if state_exact:
if self.state_store.state(k) & state == state:
item_state = self.state_store.state(k)
if strict:
if item_state & state != item_state:
continue
hashes.append(k)
return hashes

View File

@ -59,6 +59,8 @@ class TestShep(TestShepBase):
txs = self.store.list(state=self.store.IN_NETWORK)
self.assertEqual(len(txs), 2)
txs = self.store.list(state=self.store.IN_NETWORK, strict=True)
self.assertEqual(len(txs), 1)
if __name__ == '__main__':