From 7fa4e17f2c620cd0639e81dea970c86a104b161c Mon Sep 17 00:00:00 2001 From: Vanshdeep Singh Date: Tue, 4 Sep 2018 12:06:48 +0200 Subject: [PATCH] Problem: No test for '_input_valid' memoization Solution: Add necessary test --- .../upsert_validator/validator_election.py | 6 ----- tests/common/test_memoize.py | 26 +++++++++++++++++++ 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/bigchaindb/upsert_validator/validator_election.py b/bigchaindb/upsert_validator/validator_election.py index d7f4b3d2..83a9ff14 100644 --- a/bigchaindb/upsert_validator/validator_election.py +++ b/bigchaindb/upsert_validator/validator_election.py @@ -30,12 +30,6 @@ class ValidatorElection(Transaction): CREATE = VALIDATOR_ELECTION ALLOWED_OPERATIONS = (VALIDATOR_ELECTION,) - # def __init__(self, operation, asset, inputs, outputs, - # metadata=None, version=None, hash_id=None, tx_): - # # operation `CREATE` is being passed as argument as `VALIDATOR_ELECTION` is an extension - # # of `CREATE` and any validation on `CREATE` in the parent class should apply to it - # super().__init__(operation, asset, inputs, outputs, metadata, version, hash_id) - @classmethod def get_validators(cls, bigchain, height=None): """Return a dictionary of validators with key as `public_key` and diff --git a/tests/common/test_memoize.py b/tests/common/test_memoize.py index 91f0d052..478833a6 100644 --- a/tests/common/test_memoize.py +++ b/tests/common/test_memoize.py @@ -65,3 +65,29 @@ def test_memoize_from_dict(b): assert from_dict.cache_info().hits == 2 assert from_dict.cache_info().misses == 1 + + +def test_memoize_input_valid(b): + alice = generate_key_pair() + asset = { + 'data': {'id': 'test_id'}, + } + + assert Transaction._input_valid.cache_info().hits == 0 + assert Transaction._input_valid.cache_info().misses == 0 + + tx = Transaction.create([alice.public_key], + [([alice.public_key], 1)], + asset=asset,)\ + .sign([alice.private_key]) + + tx.inputs_valid() + + assert Transaction._input_valid.cache_info().hits == 0 + assert Transaction._input_valid.cache_info().misses == 1 + + tx.inputs_valid() + tx.inputs_valid() + + assert Transaction._input_valid.cache_info().hits == 2 + assert Transaction._input_valid.cache_info().misses == 1