Пример #1
0
def test_retrieve():
    index = Index(bytes)
    index.add(b"23", 1)
    assert index.retrieve(b"23") == {1}
    index.add(b"23", 2)
    assert index.retrieve(b"23") == {1, 2}
    index.add(b"24", 2)
    assert index.retrieve(b"24") == {2}
    index.add(None, 3)
    assert index.retrieve(None) == {3}
    assert index.retrieve(b"26") == set()
Пример #2
0
class IndexRetrieveTest(unittest.TestCase):
    def setUp(self) -> None:
        self.index = Index(str)

    @given(value=text(), index=integers())
    @settings(max_examples=100)
    def test_retrieve(self, value, index):
        original_value = self.index.retrieve(value)
        if isinstance(original_value, set):
            original_value = original_value.copy()
            assume(index not in original_value)
        assert isinstance(original_value, set) or original_value is None
        self.index.add(value, index)
        new_value = self.index.retrieve(value)
        if original_value is None:
            assert isinstance(new_value, set)
            assert new_value == {index}
        else:
            assert len(new_value) - len(original_value) == 1
            assert index in new_value
Пример #3
0
def test_destroy():
    index = Index(bytes)
    index.add(None, 0)
    index.add(b"23", 1)
    index.add(b"23", 2)
    index.add(b"23", 3)
    index.destroy(None, 0)
    assert len(index) == 1
    index.destroy(b"23", 1)
    assert len(index) == 1
    assert index.retrieve(b"23") == {2, 3}
    index.destroy(b"23", 2)
    assert len(index) == 1
    assert index.retrieve(b"23") == {3}
    index.destroy(b"23", 3)
    assert len(index) == 0
    assert index.retrieve(b"23") == set()
    with pytest.raises(KeyError):
        index.destroy(None, 0)
    with pytest.raises(KeyError):
        index.destroy(b"23", 1)
Пример #4
0
class IndexDestroyTest(unittest.TestCase):
    def setUp(self) -> None:
        self.index = Index(str)

    @given(value=text(), index=integers())
    @settings(max_examples=100)
    def test_destroy(self, value, index):
        self.index.add(value, index)
        self.index.destroy(value, index)
        new_entry = self.index.retrieve(value)
        assert new_entry == set()
        with pytest.raises(KeyError):
            self.index.destroy(value, index)