Exemplo n.º 1
0
def test_is_valid_block(last_block, block):
    # last_block = Block.genesis()
    # block = Block.mine_block(last_block, 'test-data')
    Block.is_valid_block(last_block, block)
def test_is_valid_block(last_block, block):
    Block.is_valid_block(last_block, block)
def test_is_valid_block_bad_proof_of_work(last_block, block):
    block.hash = 'fff'

    with pytest.raises(Exception,
                       match='proof of work requirement was not met'):
        Block.is_valid_block(last_block, block)
def test_is_valid_block_bad_block_hash(last_block, block):
    block.hash = '00000000000000000acabb'

    with pytest.raises(Exception, match='The block hash must be correct'):
        Block.is_valid_block(last_block, block)
def last_block():
    return Block.genesis()
Exemplo n.º 6
0
def test_slowly_mined_block():
    last_block = Block.mine_block(Block.genesis(), 'foo')
    time.sleep(MINE_RATE / SECONDS)
    mined_block = Block.mine_block(last_block, 'bar')

    assert mined_block.difficulty == last_block.difficulty - 1
Exemplo n.º 7
0
def test_is_valid_block_bad_last_hash(last_block, block):
    block.last_hash = 'evil_last_hash'

    with pytest.raises(Exception, match='last_hash must be correct'):
        Block.is_valid_block(last_block, block)
Exemplo n.º 8
0
def test_quickly_mine_block():
    last_block = Block.mine_block(Block.genesis(), 'foo')
    mined_block = Block.mine_block(last_block, 'z1234')

    assert last_block.difficulty - mined_block.difficulty == -1
Exemplo n.º 9
0
def test_is_valid_block():
    last_block = Block.genesis()
    block = Block.mine_block(last_block, 'foo')
    Block.is_valid_block(last_block, block)
Exemplo n.º 10
0
def block(last_block):
    return Block.mine_block(last_block, 'Test-data')
Exemplo n.º 11
0
def test_slowly_mine_block():
    last_block = Block.mine_block(Block.genesis(), 'foo')
    sleep(MINE_RATE)
    mined_block = Block.mine_block(last_block, 'z1234')

    assert last_block.difficulty - mined_block.difficulty == +1
 def add_block(self, data):
     prev_block = self.chain[-1]
     self.chain.append(Block.mine_block(prev_block, data))
Exemplo n.º 13
0
def block(last_block):
    return Block.mine_block(last_block, "test_data")
Exemplo n.º 14
0
def test_quickly_mined_block():
    last_block = Block.mine_block(Block.genesis(), "foo")
    mined_block = Block.mine_block(last_block, "bar")

    assert mined_block.difficulty == last_block.difficulty + 1
Exemplo n.º 15
0
def test_is_valid_block_bad_block_hash(last_block, block):
    block.hash = '000000000000000bbababababbabbabaab'

    with pytest.raises(Exception, match="block hash must be correct"):
        Block.is_valid_block(last_block, block)
Exemplo n.º 16
0
def test_is_valid_bad_proof_of_work(last_block, block):
    block.hash = 'fff'

    with pytest.raises(Exception, match='The proof of work was not right'):
        Block.is_valid_block(last_block, block)
Exemplo n.º 17
0
def test_genesis():
    genesis = Block.genesis()

    assert isinstance(genesis, Block)
    for key, value in GENESIS_DATA.items():
        getattr(genesis, key) == value
Exemplo n.º 18
0
 def add_block(self, data):
     block = Block.mine_block(self.chain[-1], data)
     self.chain.append(block)
Exemplo n.º 19
0
def test_is_valid_block(last_block, block):
    block = Block.mine_block(last_block, 'test_data')
    Block.is_valid_block(last_block, block)
Exemplo n.º 20
0
 def add_block(self, data):
     last_block = self.chain[-1]
     self.chain.append(Block.mine_block(last_block, data))
Exemplo n.º 21
0
def test_is_valid_block_jumped_difficulty(last_block, block):
    jumped_difficulty = 10
    block.difficulty = jumped_difficulty
    block.hash = f'{"0" * jumped_difficulty}111abc'
    with pytest.raises(Exception, match='difficulty must only adjust by 1'):
        Block.is_valid_block(last_block, block)
Exemplo n.º 22
0
 def add_block(self, data):
     self.chain.append(Block.mine_block(self.chain[-1], data))
def test_quickly_mined_block():
    last_block = Block.mine_block(Block.genesis(), 'foo')
    mined_block = Block.mine_block(last_block, 'bar')

    assert mined_block.difficulty == last_block.difficulty + 1
Exemplo n.º 24
0
def block(last_block):
    return Block.mine_block(last_block, "dummy data")
def block(last_block):
    return Block.mine_block(last_block, 'test_data')
Exemplo n.º 26
0
def test_is_valid_block(last_block, block):
    # block.last_hash = "We're hacking you" # What would be the case if they tried to inject a branch or block. False hashes
    Block.is_valid_block(last_block, block)
def test_is_valid_block_bad_last_hash(last_block, block):
    block.last_hash = 'changing the last_block.hash'

    # assert last_block.hash == block.last_hash
    with pytest.raises(Exception, match='last_hash must be correct'):
        Block.is_valid_block(last_block, block)
Exemplo n.º 28
0
def test_is_valid_block_bad_last_hash(last_block, block):
    block.last_hash = "Evil last hash"

    with pytest.raises(Exception, match="last_hash must be correct"):
        Block.is_valid_block(last_block, block)
Exemplo n.º 29
0
 def __init__(self):
     self.chain = [Block.genesis()]
Exemplo n.º 30
0
 def add_block(self, data):
     # instantiate block at the top of blockchain method
     self.chain.append(Block.mine_block(self.chain[-1], data))