canaille-globuzma/tests/app/commands/test_delete.py
Éloi Rivard 77667c6f52
refactor: all domains used in the unit test suite are now .test
this ensures they will never be valid, and will never generate real
world requests
2024-11-20 23:30:48 +01:00

45 lines
1.3 KiB
Python

from canaille.app import models
from canaille.commands import cli
def test_delete_by_id(testclient, backend):
"""Remove a model identified by its id."""
user = models.User(
formatted_name="Foo bar",
family_name="Bar",
emails=["foobar@example.test"],
user_name="foobar",
)
backend.save(user)
runner = testclient.app.test_cli_runner()
res = runner.invoke(cli, ["delete", "user", user.id])
assert res.exit_code == 0, res.stdout
assert not backend.get(models.User, user_name="foobar")
def test_delete_by_identifier(testclient, backend):
"""Remove a model identified by its identifier."""
user = models.User(
formatted_name="Foo bar",
family_name="Bar",
emails=["foobar@example.test"],
user_name="foobar",
)
backend.save(user)
runner = testclient.app.test_cli_runner()
res = runner.invoke(cli, ["delete", "user", "foobar"])
assert res.exit_code == 0, res.stdout
assert not backend.get(models.User, user_name="foobar")
def test_delete_unknown_id(testclient, backend):
"""Error case for trying to set a value for an invalid object."""
runner = testclient.app.test_cli_runner()
res = runner.invoke(cli, ["delete", "user", "invalid"])
assert res.exit_code == 1, res.stdout
assert res.stdout == "Error: No user with id 'invalid'\n"