def test_remove_callback(): stub = Stub() test = MagicMock() add_callback(stub, 'prop1', test) remove_callback(stub, 'prop1', test) stub.prop1 = 5 assert test.call_count == 0
def test_remove_callback_wrong_function(): stub = Stub() test = MagicMock() test2 = MagicMock() add_callback(stub, 'prop1', test) with pytest.raises(ValueError) as exc: remove_callback(stub, 'prop1', test2) assert exc.value.args[0].startswith('Callback function not found')
def test_remove_callback_attribute_error_on_bad_name(): stub = Stub() with pytest.raises(AttributeError): remove_callback(stub, 'bad_property', None)
def test_remove_callback_not_found(): stub = Stub() with pytest.raises(ValueError) as exc: remove_callback(stub, 'prop1', None) assert exc.value.args[0] == "Callback function not found: None"
def test_remove_non_callback_property(): stub = Stub() with pytest.raises(TypeError) as exc: remove_callback(stub, 'prop3', None) assert exc.value.args[0] == 'prop3 is not a CallbackProperty'