Ejemplo n.º 1
0
    def test_pop_index_error_when_no_default_provided(self, dict_type):
        proxy = Cut(dict_type({"a": [[1]]}))
        with pytest.raises(IndexError) as error:
            proxy.pop("a[0][1]")

        expected_error = IndexError(
            f"Cannot access index '1' in path 'a[0][1]', "
            f"because of error: {repr(IndexError('pop index out of range'))}.")
        assert str(error.value) == str(expected_error)
Ejemplo n.º 2
0
    def test_attribute_error(self, dict_type):
        proxy = Cut(dict_type({"a": 42}))
        with pytest.raises(AttributeError) as error:
            proxy.pop("a.b")

        expected_error = AttributeError(
            "Unable to pop item 'b' in key 'a.b': "
            "the element must be a dictionary or a list but is of type '<class 'int'>'."
        )
        assert str(error.value) == str(expected_error)
Ejemplo n.º 3
0
    def test_key_error_when_no_default_provided(self, dict_type, data, path,
                                                failing_key):
        proxy = Cut(dict_type(deepcopy(data)))
        with pytest.raises(KeyError) as error:
            proxy.pop(path)

        expected_error = KeyError(
            f"Cannot access key '{failing_key}' in path '{path}', "
            f"because of error: {repr(KeyError(failing_key))}.")
        assert str(error.value) == str(expected_error)
Ejemplo n.º 4
0
    def test_list_index_error_when_no_default_provided(self, dict_type, data,
                                                       path, failing_index):
        proxy = Cut(dict_type(deepcopy(data)))
        with pytest.raises(IndexError) as error:
            proxy.pop(path)

        expected_error = IndexError(
            f"Cannot access index '{failing_index}' in path '{path}', "
            f"because of error: {repr(IndexError('list index out of range'))}."
        )
        assert str(error.value) == str(expected_error)
Ejemplo n.º 5
0
 def test_with_default(self, dict_type, data, key, default):
     proxy = Cut(dict_type(deepcopy(data)))
     assert proxy.pop(key, default) == default
Ejemplo n.º 6
0
 def test_pop(self, dict_type, data, key, result):
     proxy = Cut(dict_type(deepcopy(data)))
     assert proxy.pop(key) == result
     assert key not in proxy