From e8decb9cb7c4f82b8749225b19f7e7fd7e1ea879 Mon Sep 17 00:00:00 2001 From: lash Date: Wed, 30 Mar 2022 05:25:26 +0000 Subject: [PATCH] Add filter counts in session tests, finish sync interrupt test --- chainsyncer/unittest/base.py | 3 ++- tests/test_session.py | 24 +++++++++++++++++++----- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/chainsyncer/unittest/base.py b/chainsyncer/unittest/base.py index 5c22f46..33c9a5c 100644 --- a/chainsyncer/unittest/base.py +++ b/chainsyncer/unittest/base.py @@ -67,6 +67,7 @@ class MockBlockGenerator: driver.add_block(block) + class MockConn: """Noop connection mocker. @@ -157,7 +158,6 @@ class MockFilter: def filter(self, conn, block, tx): r = False - self.contents.append((block.number, tx.index, tx.hash,)) if self.brk_hard != None: r = True if self.brk_hard > 0: @@ -169,6 +169,7 @@ class MockFilter: if self.brk > 0: r = True self.brk -= 1 + self.contents.append((block.number, tx.index, tx.hash,)) logg.debug('filter {} result {} block {}'.format(self.common_name(), r, block.number)) return r diff --git a/tests/test_session.py b/tests/test_session.py index 0e4b04e..3ceeed9 100644 --- a/tests/test_session.py +++ b/tests/test_session.py @@ -80,14 +80,17 @@ class TestFilter(unittest.TestCase): generator = MockBlockGenerator() generator.generate([1], driver=drv) - fltr_one = MockFilter('foo', brk_hard=1) + fltr_one = MockFilter('foo') self.store.register(fltr_one) - fltr_two = MockFilter('bar') + fltr_two = MockFilter('bar', brk_hard=1) self.store.register(fltr_two) with self.assertRaises(MockFilterError): drv.run(self.conn) + self.assertEqual(len(fltr_one.contents), 1) + self.assertEqual(len(fltr_two.contents), 0) + store = SyncFsStore(self.path, state_event_callback=state_event_handler, filter_state_event_callback=filter_state_event_handler) fltr_one = MockFilter('foo') #, brk_hard=1) @@ -98,16 +101,21 @@ class TestFilter(unittest.TestCase): with self.assertRaises(LockError): drv = MockDriver(store, target=1) + self.assertEqual(len(fltr_one.contents), 0) + self.assertEqual(len(fltr_two.contents), 0) + def test_driver_interrupt_filter(self): drv = MockDriver(self.store, target=1) generator = MockBlockGenerator() generator.generate([1, 1], driver=drv) - fltr_one = MockFilter('foo', brk=1) + fltr_one = MockFilter('foo') self.store.register(fltr_one) - fltr_two = MockFilter('bar') + fltr_two = MockFilter('bar', brk=1) self.store.register(fltr_two) + fltr_three = MockFilter('baz') + self.store.register(fltr_three) store = SyncFsStore(self.path, state_event_callback=state_event_handler, filter_state_event_callback=filter_state_event_handler) @@ -115,6 +123,10 @@ class TestFilter(unittest.TestCase): with self.assertRaises(SyncDone): drv.run(self.conn) + self.assertEqual(len(fltr_one.contents), 2) + self.assertEqual(len(fltr_two.contents), 2) + self.assertEqual(len(fltr_three.contents), 1) + def test_driver_interrupt_sync(self): drv = MockDriver(self.store, interrupt_block=1, target=2) @@ -126,9 +138,9 @@ class TestFilter(unittest.TestCase): drv.run(self.conn, interval=0.1) + self.assertEqual(len(fltr_one.contents), 3) store = SyncFsStore(self.path, state_event_callback=state_event_handler, filter_state_event_callback=filter_state_event_handler) - fltr_one = MockFilter('foo') store.register(fltr_one) drv = MockDriver(store) generator.apply(drv, offset=1) @@ -137,6 +149,8 @@ class TestFilter(unittest.TestCase): drv.run(self.conn, interval=0.1) self.assertEqual(e, 2) + self.assertEqual(len(fltr_one.contents), 6) + if __name__ == '__main__': unittest.main()