def test_managing_edit_variable(): """Test adding/removing edit variables. """ s = Solver() v1 = Variable('foo') v2 = Variable('bar') with pytest.raises(TypeError): s.hasEditVariable(object()) with pytest.raises(TypeError): s.addEditVariable(object(), 'weak') with pytest.raises(TypeError): s.removeEditVariable(object()) with pytest.raises(TypeError): s.suggestValue(object(), 10) assert not s.hasEditVariable(v1) s.addEditVariable(v1, 'weak') assert s.hasEditVariable(v1) with pytest.raises(DuplicateEditVariable): s.addEditVariable(v1, 'medium') with pytest.raises(UnknownEditVariable): s.removeEditVariable(v2) s.removeEditVariable(v1) assert not s.hasEditVariable(v1) with pytest.raises(BadRequiredStrength): s.addEditVariable(v1, 'required') s.addEditVariable(v2, 'strong') assert s.hasEditVariable(v2) with pytest.raises(UnknownEditVariable): s.suggestValue(v1, 10) s.reset() assert not s.hasEditVariable(v2)