From 8ab1cfdfa1d99f15fd3fcc02b623016a723bea18 Mon Sep 17 00:00:00 2001 From: ryan Date: Thu, 28 Apr 2016 15:35:33 +0200 Subject: [PATCH] add test --- tests/db/test_voter.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/tests/db/test_voter.py b/tests/db/test_voter.py index 28f7fa59..a7448175 100644 --- a/tests/db/test_voter.py +++ b/tests/db/test_voter.py @@ -297,6 +297,37 @@ class TestBigchainVoter(object): pass +class TestBlockElection(object): + + def test_quorum(self, b): + # create a new block + test_block = b.create_block([]) + + # simulate a federation with four voters + test_block['block']['voters'] = ['a', 'b', 'c', 'd'] + + # fake "yes" votes + valid_vote = b.vote(test_block, 'abc', True) + + # fake "no" votes + invalid_vote = b.vote(test_block, 'abc', False) + + # test unanimously valid block + test_block['block']['votes'] = [valid_vote, valid_vote, valid_vote, valid_vote] + assert not b.block_voted_invalid(test_block) + + # test block with minority invalid vote + test_block['block']['votes'] = [invalid_vote, valid_vote, valid_vote, valid_vote] + assert not b.block_voted_invalid(test_block) + + # test split vote -- block_voted_invalid should return True + test_block['block']['votes'] = [invalid_vote, invalid_vote, valid_vote, valid_vote] + assert b.block_voted_invalid(test_block) + + def test_tx_rewritten_after_invalid(self, b): + pass + + class TestBlockStream(object): def test_if_federation_size_is_greater_than_one_ignore_past_blocks(self, b):