예제 #1
0
def test_delete_not_existing_todo(repository: Repository) -> None:
    id_, text = _insert_todo(repository, "This is a Todo!")

    result = repository.delete(_random_id())
    assert not result

    todo = repository.get(id_)
    assert todo == Todo(id=id_, text=text, active=True)
예제 #2
0
def test_stats(repository: Repository) -> None:
    _insert_todo(repository, "This is a Todo!")
    _insert_todo(repository, "This is a ANOTHER Todo!")
    id_3, _ = _insert_todo(repository, "This is a yet ANOTHER Todo!")
    repository.deactivate(id_3)

    stats = repository.stats()
    assert stats == Stats(active=2, inactive=1)
예제 #3
0
def test_edit_text_not_existing_todo(repository: Repository) -> None:
    id_, text = _insert_todo(repository, "This is a Todo!")

    result = repository.edit_text(_random_id(), "Hello World")
    assert not result

    todo = repository.get(id_)
    assert todo == Todo(id=id_, text=text, active=True)
예제 #4
0
def test_delete_existing_todo(repository: Repository) -> None:
    id_1, _ = _insert_todo(repository, "This is a Todo!")
    id_2, text_2 = _insert_todo(repository, "This is a ANOTHER Todo!")

    result = repository.delete(id_1)
    assert result

    todos = repository.list()
    assert todos == (Todo(id=id_2, text=text_2, active=True), )
예제 #5
0
def test_mark_complete_existing_todo(repository: Repository) -> None:
    id_1, text_1 = _insert_todo(repository, "This is a Todo!")
    id_2, text_2 = _insert_todo(repository, "This is a ANOTHER Todo!")

    result = repository.deactivate(id_2)
    assert result

    todos = repository.list()
    assert todos == tuple(
        sorted((Todo(id=id_1, text=text_1,
                     active=True), Todo(id=id_2, text=text_2, active=False))))
예제 #6
0
def test_edit_text_existing_todo(repository: Repository) -> None:
    id_1, text_1 = _insert_todo(repository, "This is a Todo!")
    id_2, text_2 = _insert_todo(repository, "This is a ANOTHER Todo!")

    result = repository.edit_text(id_2, "Hello")
    assert result

    todos = repository.list()
    assert todos == tuple(
        sorted((Todo(id=id_1, text=text_1,
                     active=True), Todo(id=id_2, text="Hello", active=True))))
예제 #7
0
def test_get_list_with_multiple_todos(repository: Repository) -> None:
    id_1, text_1 = _insert_todo(repository, "This is a Todo!")
    id_2, text_2 = _insert_todo(repository, "This is a ANOTHER Todo!")

    todos = repository.list()
    assert todos == tuple(
        sorted((Todo(id=id_1, text=text_1,
                     active=True), Todo(id=id_2, text=text_2, active=True))))
예제 #8
0
def test_get_list_with_single_todo(repository: Repository) -> None:
    id_, text = _insert_todo(repository, "This is a Todo!")

    todos = repository.list()
    assert todos == (Todo(id=id_, text=text, active=True), )
예제 #9
0
def test_get_empty_list(repository: Repository) -> None:
    todos = repository.list()
    assert todos == ()
예제 #10
0
def test_get_existing_todo(repository: Repository) -> None:
    id_1, text_1 = _insert_todo(repository, "This is a Todo!")
    _insert_todo(repository, "This is a ANOTHER Todo!")

    todo = repository.get(id_1)
    assert todo == Todo(id=id_1, text=text_1, active=True)
예제 #11
0
def test_get_not_existing_todo(repository: Repository) -> None:
    todo = repository.get(_random_id())
    assert todo is None
예제 #12
0
def test_stats_empty(repository: Repository) -> None:
    stats = repository.stats()
    assert stats == Stats(active=0, inactive=0)
예제 #13
0
def _insert_todo(repository: Repository, text: str) -> Tuple[UUID, str]:
    id_ = repository.insert(text)
    return id_, text