def test_server_status_is_always_enum(): """Assignments with strings is forbidden""" server = Server({}) assert isinstance(server.status, Status) assert server.status != Status.stopped server.status = Status.stopped assert server.status == Status.stopped with pytest.raises(TypeError): server.status = "running"
def test_server_status_is_always_enum(): """ Assignments with strings get converted to corresponding Enum variant """ server = Server({}) assert isinstance(server.status, Status) with warnings.catch_warnings(record=True) as w: warnings.simplefilter("ignore") assert server.status != Status.stopped server.status = "stopped" assert isinstance(server.status, Status) assert server.status == Status.stopped
def test_server_status_assign_non_variant_raises(): server = Server({}) with warnings.catch_warnings(record=True) as w: warnings.simplefilter("ignore") with pytest.raises(AssertionError): server.status = "I do not exists"
def test_server_assign_assign_enum_is_quiet(): """That would be the default in user code""" server = Server({}) server.status = Status.running
def test_server_status_assign_with_variant_raises_in_tests(): """That would be the default in user code""" server = Server({}) with pytest.raises(PendingDeprecationWarning): server.status = "running"
def test_server_status_assign_with_variant_warns(): server = Server({}) with warnings.catch_warnings(record=True) as w: warnings.simplefilter("default") with pytest.warns(PendingDeprecationWarning): server.status = "running"