mirror of
https://github.com/bigchaindb/bigchaindb.git
synced 2024-10-13 13:34:05 +00:00
make all tests pass after vote schema introduction
This commit is contained in:
parent
ef5f3ddd28
commit
44a43dcf94
@ -108,7 +108,7 @@ class TestBigchainApi(object):
|
|||||||
block2 = b.create_block([transfer_tx])
|
block2 = b.create_block([transfer_tx])
|
||||||
b.write_block(block2, durability='hard')
|
b.write_block(block2, durability='hard')
|
||||||
|
|
||||||
monkeypatch.setattr('time.time', lambda: 3)
|
monkeypatch.setattr('time.time', lambda: 3333333333)
|
||||||
transfer_tx2 = Transaction.transfer(tx.to_inputs(), [([b.me], 1)],
|
transfer_tx2 = Transaction.transfer(tx.to_inputs(), [([b.me], 1)],
|
||||||
tx.asset)
|
tx.asset)
|
||||||
transfer_tx2 = transfer_tx2.sign([b.me_private])
|
transfer_tx2 = transfer_tx2.sign([b.me_private])
|
||||||
@ -137,7 +137,7 @@ class TestBigchainApi(object):
|
|||||||
block1 = b.create_block([tx])
|
block1 = b.create_block([tx])
|
||||||
b.write_block(block1, durability='hard')
|
b.write_block(block1, durability='hard')
|
||||||
|
|
||||||
monkeypatch.setattr('time.time', lambda: 2)
|
monkeypatch.setattr('time.time', lambda: 2222222222)
|
||||||
block2 = b.create_block([tx])
|
block2 = b.create_block([tx])
|
||||||
b.write_block(block2, durability='hard')
|
b.write_block(block2, durability='hard')
|
||||||
|
|
||||||
@ -161,7 +161,7 @@ class TestBigchainApi(object):
|
|||||||
block1 = b.create_block([tx1])
|
block1 = b.create_block([tx1])
|
||||||
b.write_block(block1, durability='hard')
|
b.write_block(block1, durability='hard')
|
||||||
|
|
||||||
monkeypatch.setattr('time.time', lambda: 2)
|
monkeypatch.setattr('time.time', lambda: 2222222222)
|
||||||
tx2 = Transaction.create([b.me], [([b.me], 1)])
|
tx2 = Transaction.create([b.me], [([b.me], 1)])
|
||||||
tx2 = tx2.sign([b.me_private])
|
tx2 = tx2.sign([b.me_private])
|
||||||
block2 = b.create_block([tx2])
|
block2 = b.create_block([tx2])
|
||||||
|
@ -28,8 +28,10 @@ def test_check_for_quorum_invalid(b, user_pk):
|
|||||||
b.write_block(test_block)
|
b.write_block(test_block)
|
||||||
|
|
||||||
# split_vote (invalid)
|
# split_vote (invalid)
|
||||||
votes = [member.vote(test_block.id, 'abc', True) for member in test_federation[:2]] + \
|
votes = [member.vote(test_block.id, 'a' * 64, True)
|
||||||
[member.vote(test_block.id, 'abc', False) for member in test_federation[2:]]
|
for member in test_federation[:2]] + \
|
||||||
|
[member.vote(test_block.id, 'b' * 64, False)
|
||||||
|
for member in test_federation[2:]]
|
||||||
|
|
||||||
# cast votes
|
# cast votes
|
||||||
for vote in votes:
|
for vote in votes:
|
||||||
@ -49,8 +51,10 @@ def test_check_for_quorum_invalid_prev_node(b, user_pk):
|
|||||||
|
|
||||||
# simulate a federation with four voters
|
# simulate a federation with four voters
|
||||||
key_pairs = [crypto.generate_key_pair() for _ in range(4)]
|
key_pairs = [crypto.generate_key_pair() for _ in range(4)]
|
||||||
test_federation = [Bigchain(public_key=key_pair[1], private_key=key_pair[0])
|
test_federation = [
|
||||||
for key_pair in key_pairs]
|
Bigchain(public_key=key_pair[1], private_key=key_pair[0])
|
||||||
|
for key_pair in key_pairs
|
||||||
|
]
|
||||||
|
|
||||||
# add voters to block and write
|
# add voters to block and write
|
||||||
test_block.voters = [key_pair[1] for key_pair in key_pairs]
|
test_block.voters = [key_pair[1] for key_pair in key_pairs]
|
||||||
@ -58,8 +62,10 @@ def test_check_for_quorum_invalid_prev_node(b, user_pk):
|
|||||||
b.write_block(test_block)
|
b.write_block(test_block)
|
||||||
|
|
||||||
# split vote over prev node
|
# split vote over prev node
|
||||||
votes = [member.vote(test_block.id, 'abc', True) for member in test_federation[:2]] + \
|
votes = [member.vote(test_block.id, 'a' * 64, True)
|
||||||
[member.vote(test_block.id, 'def', True) for member in test_federation[2:]]
|
for member in test_federation[:2]] + \
|
||||||
|
[member.vote(test_block.id, 'b' * 64, True)
|
||||||
|
for member in test_federation[2:]]
|
||||||
|
|
||||||
# cast votes
|
# cast votes
|
||||||
for vote in votes:
|
for vote in votes:
|
||||||
@ -80,8 +86,10 @@ def test_check_for_quorum_valid(b, user_pk):
|
|||||||
|
|
||||||
# simulate a federation with four voters
|
# simulate a federation with four voters
|
||||||
key_pairs = [crypto.generate_key_pair() for _ in range(4)]
|
key_pairs = [crypto.generate_key_pair() for _ in range(4)]
|
||||||
test_federation = [Bigchain(public_key=key_pair[1], private_key=key_pair[0])
|
test_federation = [
|
||||||
for key_pair in key_pairs]
|
Bigchain(public_key=key_pair[1], private_key=key_pair[0])
|
||||||
|
for key_pair in key_pairs
|
||||||
|
]
|
||||||
|
|
||||||
# add voters to block and write
|
# add voters to block and write
|
||||||
test_block.voters = [key_pair[1] for key_pair in key_pairs]
|
test_block.voters = [key_pair[1] for key_pair in key_pairs]
|
||||||
@ -89,7 +97,7 @@ def test_check_for_quorum_valid(b, user_pk):
|
|||||||
b.write_block(test_block)
|
b.write_block(test_block)
|
||||||
|
|
||||||
# votes for block one
|
# votes for block one
|
||||||
votes = [member.vote(test_block.id, 'abc', True)
|
votes = [member.vote(test_block.id, 'a' * 64, True)
|
||||||
for member in test_federation]
|
for member in test_federation]
|
||||||
# cast votes
|
# cast votes
|
||||||
for vote in votes:
|
for vote in votes:
|
||||||
@ -158,8 +166,8 @@ def test_full_pipeline(b, user_pk):
|
|||||||
pipeline.start()
|
pipeline.start()
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
# vote one block valid, one invalid
|
# vote one block valid, one invalid
|
||||||
vote_valid = b.vote(valid_block.id, 'abc', True)
|
vote_valid = b.vote(valid_block.id, 'b' * 64, True)
|
||||||
vote_invalid = b.vote(invalid_block.id, 'abc', False)
|
vote_invalid = b.vote(invalid_block.id, 'c' * 64, False)
|
||||||
|
|
||||||
b.write_vote(vote_valid)
|
b.write_vote(vote_valid)
|
||||||
b.write_vote(vote_invalid)
|
b.write_vote(vote_invalid)
|
||||||
|
@ -160,7 +160,7 @@ def test_valid_block_voting_sequential(b, monkeypatch):
|
|||||||
from bigchaindb.common import crypto, util
|
from bigchaindb.common import crypto, util
|
||||||
from bigchaindb.pipelines import vote
|
from bigchaindb.pipelines import vote
|
||||||
|
|
||||||
monkeypatch.setattr('time.time', lambda: 1)
|
monkeypatch.setattr('time.time', lambda: 1111111111)
|
||||||
genesis = b.create_genesis_block()
|
genesis = b.create_genesis_block()
|
||||||
vote_obj = vote.Vote()
|
vote_obj = vote.Vote()
|
||||||
block = dummy_block(b)
|
block = dummy_block(b)
|
||||||
@ -176,7 +176,7 @@ def test_valid_block_voting_sequential(b, monkeypatch):
|
|||||||
'previous_block': genesis.id,
|
'previous_block': genesis.id,
|
||||||
'is_block_valid': True,
|
'is_block_valid': True,
|
||||||
'invalid_reason': None,
|
'invalid_reason': None,
|
||||||
'timestamp': '1'}
|
'timestamp': '1111111111'}
|
||||||
|
|
||||||
serialized_vote = util.serialize(vote_doc['vote']).encode()
|
serialized_vote = util.serialize(vote_doc['vote']).encode()
|
||||||
assert vote_doc['node_pubkey'] == b.me
|
assert vote_doc['node_pubkey'] == b.me
|
||||||
@ -191,7 +191,7 @@ def test_valid_block_voting_multiprocessing(b, monkeypatch):
|
|||||||
inpipe = Pipe()
|
inpipe = Pipe()
|
||||||
outpipe = Pipe()
|
outpipe = Pipe()
|
||||||
|
|
||||||
monkeypatch.setattr('time.time', lambda: 1)
|
monkeypatch.setattr('time.time', lambda: 1111111111)
|
||||||
genesis = b.create_genesis_block()
|
genesis = b.create_genesis_block()
|
||||||
vote_pipeline = vote.create_pipeline()
|
vote_pipeline = vote.create_pipeline()
|
||||||
vote_pipeline.setup(indata=inpipe, outdata=outpipe)
|
vote_pipeline.setup(indata=inpipe, outdata=outpipe)
|
||||||
@ -210,7 +210,7 @@ def test_valid_block_voting_multiprocessing(b, monkeypatch):
|
|||||||
'previous_block': genesis.id,
|
'previous_block': genesis.id,
|
||||||
'is_block_valid': True,
|
'is_block_valid': True,
|
||||||
'invalid_reason': None,
|
'invalid_reason': None,
|
||||||
'timestamp': '1'}
|
'timestamp': '1111111111'}
|
||||||
|
|
||||||
serialized_vote = util.serialize(vote_doc['vote']).encode()
|
serialized_vote = util.serialize(vote_doc['vote']).encode()
|
||||||
assert vote_doc['node_pubkey'] == b.me
|
assert vote_doc['node_pubkey'] == b.me
|
||||||
@ -230,7 +230,7 @@ def test_valid_block_voting_with_create_transaction(b, monkeypatch):
|
|||||||
tx = Transaction.create([b.me], [([test_user_pub], 1)])
|
tx = Transaction.create([b.me], [([test_user_pub], 1)])
|
||||||
tx = tx.sign([b.me_private])
|
tx = tx.sign([b.me_private])
|
||||||
|
|
||||||
monkeypatch.setattr('time.time', lambda: 1)
|
monkeypatch.setattr('time.time', lambda: 1111111111)
|
||||||
block = b.create_block([tx])
|
block = b.create_block([tx])
|
||||||
|
|
||||||
inpipe = Pipe()
|
inpipe = Pipe()
|
||||||
@ -251,7 +251,7 @@ def test_valid_block_voting_with_create_transaction(b, monkeypatch):
|
|||||||
'previous_block': genesis.id,
|
'previous_block': genesis.id,
|
||||||
'is_block_valid': True,
|
'is_block_valid': True,
|
||||||
'invalid_reason': None,
|
'invalid_reason': None,
|
||||||
'timestamp': '1'}
|
'timestamp': '1111111111'}
|
||||||
|
|
||||||
serialized_vote = util.serialize(vote_doc['vote']).encode()
|
serialized_vote = util.serialize(vote_doc['vote']).encode()
|
||||||
assert vote_doc['node_pubkey'] == b.me
|
assert vote_doc['node_pubkey'] == b.me
|
||||||
@ -271,7 +271,7 @@ def test_valid_block_voting_with_transfer_transactions(monkeypatch, b):
|
|||||||
tx = Transaction.create([b.me], [([test_user_pub], 1)])
|
tx = Transaction.create([b.me], [([test_user_pub], 1)])
|
||||||
tx = tx.sign([b.me_private])
|
tx = tx.sign([b.me_private])
|
||||||
|
|
||||||
monkeypatch.setattr('time.time', lambda: 1)
|
monkeypatch.setattr('time.time', lambda: 1111111111)
|
||||||
block = b.create_block([tx])
|
block = b.create_block([tx])
|
||||||
b.write_block(block, durability='hard')
|
b.write_block(block, durability='hard')
|
||||||
|
|
||||||
@ -281,7 +281,7 @@ def test_valid_block_voting_with_transfer_transactions(monkeypatch, b):
|
|||||||
tx.asset)
|
tx.asset)
|
||||||
tx2 = tx2.sign([test_user_priv])
|
tx2 = tx2.sign([test_user_priv])
|
||||||
|
|
||||||
monkeypatch.setattr('time.time', lambda: 2)
|
monkeypatch.setattr('time.time', lambda: 2222222222)
|
||||||
block2 = b.create_block([tx2])
|
block2 = b.create_block([tx2])
|
||||||
b.write_block(block2, durability='hard')
|
b.write_block(block2, durability='hard')
|
||||||
|
|
||||||
@ -306,7 +306,7 @@ def test_valid_block_voting_with_transfer_transactions(monkeypatch, b):
|
|||||||
'previous_block': genesis.id,
|
'previous_block': genesis.id,
|
||||||
'is_block_valid': True,
|
'is_block_valid': True,
|
||||||
'invalid_reason': None,
|
'invalid_reason': None,
|
||||||
'timestamp': '2'}
|
'timestamp': '2222222222'}
|
||||||
|
|
||||||
serialized_vote = util.serialize(vote_doc['vote']).encode()
|
serialized_vote = util.serialize(vote_doc['vote']).encode()
|
||||||
assert vote_doc['node_pubkey'] == b.me
|
assert vote_doc['node_pubkey'] == b.me
|
||||||
@ -320,7 +320,7 @@ def test_valid_block_voting_with_transfer_transactions(monkeypatch, b):
|
|||||||
'previous_block': block.id,
|
'previous_block': block.id,
|
||||||
'is_block_valid': True,
|
'is_block_valid': True,
|
||||||
'invalid_reason': None,
|
'invalid_reason': None,
|
||||||
'timestamp': '2'}
|
'timestamp': '2222222222'}
|
||||||
|
|
||||||
serialized_vote2 = util.serialize(vote2_doc['vote']).encode()
|
serialized_vote2 = util.serialize(vote2_doc['vote']).encode()
|
||||||
assert vote2_doc['node_pubkey'] == b.me
|
assert vote2_doc['node_pubkey'] == b.me
|
||||||
@ -336,7 +336,7 @@ def test_unsigned_tx_in_block_voting(monkeypatch, b, user_pk):
|
|||||||
inpipe = Pipe()
|
inpipe = Pipe()
|
||||||
outpipe = Pipe()
|
outpipe = Pipe()
|
||||||
|
|
||||||
monkeypatch.setattr('time.time', lambda: 1)
|
monkeypatch.setattr('time.time', lambda: 1111111111)
|
||||||
genesis = b.create_genesis_block()
|
genesis = b.create_genesis_block()
|
||||||
vote_pipeline = vote.create_pipeline()
|
vote_pipeline = vote.create_pipeline()
|
||||||
vote_pipeline.setup(indata=inpipe, outdata=outpipe)
|
vote_pipeline.setup(indata=inpipe, outdata=outpipe)
|
||||||
@ -357,7 +357,7 @@ def test_unsigned_tx_in_block_voting(monkeypatch, b, user_pk):
|
|||||||
'previous_block': genesis.id,
|
'previous_block': genesis.id,
|
||||||
'is_block_valid': False,
|
'is_block_valid': False,
|
||||||
'invalid_reason': None,
|
'invalid_reason': None,
|
||||||
'timestamp': '1'}
|
'timestamp': '1111111111'}
|
||||||
|
|
||||||
serialized_vote = util.serialize(vote_doc['vote']).encode()
|
serialized_vote = util.serialize(vote_doc['vote']).encode()
|
||||||
assert vote_doc['node_pubkey'] == b.me
|
assert vote_doc['node_pubkey'] == b.me
|
||||||
@ -373,7 +373,7 @@ def test_invalid_id_tx_in_block_voting(monkeypatch, b, user_pk):
|
|||||||
inpipe = Pipe()
|
inpipe = Pipe()
|
||||||
outpipe = Pipe()
|
outpipe = Pipe()
|
||||||
|
|
||||||
monkeypatch.setattr('time.time', lambda: 1)
|
monkeypatch.setattr('time.time', lambda: 1111111111)
|
||||||
genesis = b.create_genesis_block()
|
genesis = b.create_genesis_block()
|
||||||
vote_pipeline = vote.create_pipeline()
|
vote_pipeline = vote.create_pipeline()
|
||||||
vote_pipeline.setup(indata=inpipe, outdata=outpipe)
|
vote_pipeline.setup(indata=inpipe, outdata=outpipe)
|
||||||
@ -396,7 +396,7 @@ def test_invalid_id_tx_in_block_voting(monkeypatch, b, user_pk):
|
|||||||
'previous_block': genesis.id,
|
'previous_block': genesis.id,
|
||||||
'is_block_valid': False,
|
'is_block_valid': False,
|
||||||
'invalid_reason': None,
|
'invalid_reason': None,
|
||||||
'timestamp': '1'}
|
'timestamp': '1111111111'}
|
||||||
|
|
||||||
serialized_vote = util.serialize(vote_doc['vote']).encode()
|
serialized_vote = util.serialize(vote_doc['vote']).encode()
|
||||||
assert vote_doc['node_pubkey'] == b.me
|
assert vote_doc['node_pubkey'] == b.me
|
||||||
@ -412,7 +412,7 @@ def test_invalid_content_in_tx_in_block_voting(monkeypatch, b, user_pk):
|
|||||||
inpipe = Pipe()
|
inpipe = Pipe()
|
||||||
outpipe = Pipe()
|
outpipe = Pipe()
|
||||||
|
|
||||||
monkeypatch.setattr('time.time', lambda: 1)
|
monkeypatch.setattr('time.time', lambda: 1111111111)
|
||||||
genesis = b.create_genesis_block()
|
genesis = b.create_genesis_block()
|
||||||
vote_pipeline = vote.create_pipeline()
|
vote_pipeline = vote.create_pipeline()
|
||||||
vote_pipeline.setup(indata=inpipe, outdata=outpipe)
|
vote_pipeline.setup(indata=inpipe, outdata=outpipe)
|
||||||
@ -435,7 +435,7 @@ def test_invalid_content_in_tx_in_block_voting(monkeypatch, b, user_pk):
|
|||||||
'previous_block': genesis.id,
|
'previous_block': genesis.id,
|
||||||
'is_block_valid': False,
|
'is_block_valid': False,
|
||||||
'invalid_reason': None,
|
'invalid_reason': None,
|
||||||
'timestamp': '1'}
|
'timestamp': '1111111111'}
|
||||||
|
|
||||||
serialized_vote = util.serialize(vote_doc['vote']).encode()
|
serialized_vote = util.serialize(vote_doc['vote']).encode()
|
||||||
assert vote_doc['node_pubkey'] == b.me
|
assert vote_doc['node_pubkey'] == b.me
|
||||||
@ -450,7 +450,7 @@ def test_invalid_block_voting(monkeypatch, b, user_pk):
|
|||||||
inpipe = Pipe()
|
inpipe = Pipe()
|
||||||
outpipe = Pipe()
|
outpipe = Pipe()
|
||||||
|
|
||||||
monkeypatch.setattr('time.time', lambda: 1)
|
monkeypatch.setattr('time.time', lambda: 1111111111)
|
||||||
genesis = b.create_genesis_block()
|
genesis = b.create_genesis_block()
|
||||||
vote_pipeline = vote.create_pipeline()
|
vote_pipeline = vote.create_pipeline()
|
||||||
vote_pipeline.setup(indata=inpipe, outdata=outpipe)
|
vote_pipeline.setup(indata=inpipe, outdata=outpipe)
|
||||||
@ -470,7 +470,7 @@ def test_invalid_block_voting(monkeypatch, b, user_pk):
|
|||||||
'previous_block': genesis.id,
|
'previous_block': genesis.id,
|
||||||
'is_block_valid': False,
|
'is_block_valid': False,
|
||||||
'invalid_reason': None,
|
'invalid_reason': None,
|
||||||
'timestamp': '1'}
|
'timestamp': '1111111111'}
|
||||||
|
|
||||||
serialized_vote = util.serialize(vote_doc['vote']).encode()
|
serialized_vote = util.serialize(vote_doc['vote']).encode()
|
||||||
assert vote_doc['node_pubkey'] == b.me
|
assert vote_doc['node_pubkey'] == b.me
|
||||||
@ -483,17 +483,17 @@ def test_voter_considers_unvoted_blocks_when_single_node(monkeypatch, b):
|
|||||||
|
|
||||||
outpipe = Pipe()
|
outpipe = Pipe()
|
||||||
|
|
||||||
monkeypatch.setattr('time.time', lambda: 1)
|
monkeypatch.setattr('time.time', lambda: 1111111111)
|
||||||
b.create_genesis_block()
|
b.create_genesis_block()
|
||||||
|
|
||||||
block_ids = []
|
block_ids = []
|
||||||
# insert blocks in the database while the voter process is not listening
|
# insert blocks in the database while the voter process is not listening
|
||||||
# (these blocks won't appear in the changefeed)
|
# (these blocks won't appear in the changefeed)
|
||||||
monkeypatch.setattr('time.time', lambda: 2)
|
monkeypatch.setattr('time.time', lambda: 2222222222)
|
||||||
block_1 = dummy_block(b)
|
block_1 = dummy_block(b)
|
||||||
block_ids.append(block_1.id)
|
block_ids.append(block_1.id)
|
||||||
b.write_block(block_1, durability='hard')
|
b.write_block(block_1, durability='hard')
|
||||||
monkeypatch.setattr('time.time', lambda: 3)
|
monkeypatch.setattr('time.time', lambda: 3333333333)
|
||||||
block_2 = dummy_block(b)
|
block_2 = dummy_block(b)
|
||||||
block_ids.append(block_2.id)
|
block_ids.append(block_2.id)
|
||||||
b.write_block(block_2, durability='hard')
|
b.write_block(block_2, durability='hard')
|
||||||
@ -508,7 +508,7 @@ def test_voter_considers_unvoted_blocks_when_single_node(monkeypatch, b):
|
|||||||
outpipe.get()
|
outpipe.get()
|
||||||
|
|
||||||
# create a new block that will appear in the changefeed
|
# create a new block that will appear in the changefeed
|
||||||
monkeypatch.setattr('time.time', lambda: 4)
|
monkeypatch.setattr('time.time', lambda: 4444444444)
|
||||||
block_3 = dummy_block(b)
|
block_3 = dummy_block(b)
|
||||||
block_ids.append(block_3.id)
|
block_ids.append(block_3.id)
|
||||||
b.write_block(block_3, durability='hard')
|
b.write_block(block_3, durability='hard')
|
||||||
@ -530,16 +530,16 @@ def test_voter_chains_blocks_with_the_previous_ones(monkeypatch, b):
|
|||||||
|
|
||||||
outpipe = Pipe()
|
outpipe = Pipe()
|
||||||
|
|
||||||
monkeypatch.setattr('time.time', lambda: 1)
|
monkeypatch.setattr('time.time', lambda: 1111111111)
|
||||||
b.create_genesis_block()
|
b.create_genesis_block()
|
||||||
|
|
||||||
block_ids = []
|
block_ids = []
|
||||||
monkeypatch.setattr('time.time', lambda: 2)
|
monkeypatch.setattr('time.time', lambda: 2222222222)
|
||||||
block_1 = dummy_block(b)
|
block_1 = dummy_block(b)
|
||||||
block_ids.append(block_1.id)
|
block_ids.append(block_1.id)
|
||||||
b.write_block(block_1, durability='hard')
|
b.write_block(block_1, durability='hard')
|
||||||
|
|
||||||
monkeypatch.setattr('time.time', lambda: 3)
|
monkeypatch.setattr('time.time', lambda: 3333333333)
|
||||||
block_2 = dummy_block(b)
|
block_2 = dummy_block(b)
|
||||||
block_ids.append(block_2.id)
|
block_ids.append(block_2.id)
|
||||||
b.write_block(block_2, durability='hard')
|
b.write_block(block_2, durability='hard')
|
||||||
@ -556,12 +556,13 @@ def test_voter_chains_blocks_with_the_previous_ones(monkeypatch, b):
|
|||||||
|
|
||||||
# retrive blocks from bigchain
|
# retrive blocks from bigchain
|
||||||
blocks = [b.get_block(_id) for _id in block_ids]
|
blocks = [b.get_block(_id) for _id in block_ids]
|
||||||
|
|
||||||
# retrieve votes
|
# retrieve votes
|
||||||
votes = [list(b.backend.get_votes_by_block_id(_id))[0]
|
votes = [list(b.backend.get_votes_by_block_id(_id))[0]
|
||||||
for _id in block_ids]
|
for _id in block_ids]
|
||||||
|
|
||||||
assert votes[0]['vote']['voting_for_block'] in (blocks[0]['id'], blocks[1]['id'])
|
assert ({v['vote']['voting_for_block'] for v in votes} ==
|
||||||
assert votes[1]['vote']['voting_for_block'] in (blocks[0]['id'], blocks[1]['id'])
|
{block['id'] for block in blocks})
|
||||||
|
|
||||||
|
|
||||||
def test_voter_checks_for_previous_vote(monkeypatch, b):
|
def test_voter_checks_for_previous_vote(monkeypatch, b):
|
||||||
@ -570,10 +571,10 @@ def test_voter_checks_for_previous_vote(monkeypatch, b):
|
|||||||
inpipe = Pipe()
|
inpipe = Pipe()
|
||||||
outpipe = Pipe()
|
outpipe = Pipe()
|
||||||
|
|
||||||
monkeypatch.setattr('time.time', lambda: 1)
|
monkeypatch.setattr('time.time', lambda: 1111111111)
|
||||||
b.create_genesis_block()
|
b.create_genesis_block()
|
||||||
|
|
||||||
monkeypatch.setattr('time.time', lambda: 2)
|
monkeypatch.setattr('time.time', lambda: 2222222222)
|
||||||
block_1 = dummy_block(b)
|
block_1 = dummy_block(b)
|
||||||
inpipe.put(block_1.to_dict())
|
inpipe.put(block_1.to_dict())
|
||||||
assert len(list(b.backend.get_votes_by_block_id(block_1.id))) == 0
|
assert len(list(b.backend.get_votes_by_block_id(block_1.id))) == 0
|
||||||
@ -586,11 +587,11 @@ def test_voter_checks_for_previous_vote(monkeypatch, b):
|
|||||||
outpipe.get()
|
outpipe.get()
|
||||||
|
|
||||||
# queue block for voting AGAIN
|
# queue block for voting AGAIN
|
||||||
monkeypatch.setattr('time.time', lambda: 3)
|
monkeypatch.setattr('time.time', lambda: 3333333333)
|
||||||
inpipe.put(block_1.to_dict())
|
inpipe.put(block_1.to_dict())
|
||||||
|
|
||||||
# queue another block
|
# queue another block
|
||||||
monkeypatch.setattr('time.time', lambda: 4)
|
monkeypatch.setattr('time.time', lambda: 4444444444)
|
||||||
block_2 = dummy_block(b)
|
block_2 = dummy_block(b)
|
||||||
inpipe.put(block_2.to_dict())
|
inpipe.put(block_2.to_dict())
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user