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()
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
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)
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)