Ejemplo n.º 1
0
    def test_blocks_by_frontier_diff_no_chain(self, monkeypatch, std_vals):
        monkeypatch.setattr(MockBlockStore, "get_hash_by_dot",
                            lambda _, dot_bytes: self.test_hash)
        monkeypatch.setattr(MockBlockStore, "get_block_by_hash",
                            lambda _, blob_hash: self.block_blob)
        monkeypatch.setattr(MockChain, "get_dots_by_seq_num",
                            lambda _, seq_num: list("dot1"))

        # init chain
        chain_id = self.chain_id
        # self.dbms.chains[chain_id] = MockChain()
        frontier_diff = FrontierDiff(Ranges(((1, 1), )), {})

        set_to_request = set()
        blobs = self.dbms.get_block_blobs_by_frontier_diff(
            chain_id, frontier_diff, set_to_request)
        assert len(set_to_request) == 0
        assert len(list(blobs)) == 0
Ejemplo n.º 2
0
    def test_missing_blocks(self, create_batches, insert_function):
        batches = create_batches(1, 100)
        chain = Chain()

        incons = ((0, 10), (30, 40), (50, 60), (80, 100))
        holes = ranges({i for i in range(100)} - expand_ranges(Ranges(incons)))

        for ran in incons:
            wrap_return(insert_function(chain, batches[0][ran[0]:ran[1]]))
            assert len(chain.consistent_terminal) == 1
            assert chain.consistent_terminal[0][0] == 10

        # Fill up the holes
        for i in range(len(holes)):
            ran = holes[i]
            wrap_return(
                insert_function(chain, batches[0][ran[0] - 1:ran[1] + 1]))
            assert len(chain.consistent_terminal) == 1
            assert chain.consistent_terminal[0][0] == incons[i + 1][1]
Ejemplo n.º 3
0
    def test_blocks_by_frontier_diff(self, monkeypatch, std_vals):
        monkeypatch.setattr(MockBlockStore, "get_hash_by_dot",
                            lambda _, dot_bytes: bytes(dot_bytes))
        monkeypatch.setattr(MockBlockStore, "get_block_by_hash",
                            lambda _, blob_hash: bytes(blob_hash))
        monkeypatch.setattr(MockChain, "get_dots_by_seq_num",
                            lambda _, seq_num: ("dot1", "dot2"))

        # init chain
        chain_id = self.chain_id
        self.dbms.chains[chain_id] = MockChain()
        frontier_diff = FrontierDiff(Ranges(((1, 2), )),
                                     {(1, ShortKey("efef")): {}})
        vals_to_request = set()

        blobs = self.dbms.get_block_blobs_by_frontier_diff(
            chain_id, frontier_diff, vals_to_request)
        assert len(vals_to_request) == 0
        assert len(blobs) == 3