From 3880249683efe79837833ee547ebbfbf4f898a41 Mon Sep 17 00:00:00 2001 From: lash Date: Fri, 11 Mar 2022 19:43:00 +0000 Subject: [PATCH] Implement strict get match --- chainqueue/store.py | 7 ++++--- tests/test_entry.py | 2 ++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/chainqueue/store.py b/chainqueue/store.py index 5d87e70..de22fa1 100644 --- a/chainqueue/store.py +++ b/chainqueue/store.py @@ -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 diff --git a/tests/test_entry.py b/tests/test_entry.py index 2c16ca5..0287f70 100644 --- a/tests/test_entry.py +++ b/tests/test_entry.py @@ -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__':