Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added docs/assets/logo_3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "transfunctions"
version = "0.0.6"
version = "0.0.7"
authors = [
{ name="Evgeniy Blinov", email="zheni-b@yandex.ru" },
]
Expand Down
44 changes: 38 additions & 6 deletions tests/units/decorators/test_superfunction.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,15 @@
"""
Что нужно проверить:

2. При попытке вызвать без тильды суперфункцию, в которой есть return или raise, должно подниматься исключение, причем .
3. Трейсбек исключения из п. 2 информативен (т.е. содержит конкретную строчку кода, и короткий). Но есть возможность увидеть полный "настоящий" трейсбек.
4. Базовые кейсы работают в глобальном скоупе.
6. С синтаксисом ~ нормально поднимаются исключения.

Что проверено:

1. Все базово работает без аргументов и с аргументами, для обычных, асинк и генераторных функций.
5. С использованием синтаксиса ~ для вызова обычных функций можно возвращать значения, с аргументами и без.
2. При попытке вызвать без тильды суперфункцию, в которой есть return или raise, должно подниматься исключение.
6. С синтаксисом ~ нормально поднимаются исключения.
"""


Expand Down Expand Up @@ -382,28 +382,60 @@ def test_there_are_no_exceptions_if_not_tilde_mode_and_in_function_is_empty_retu
def function():
with async_context:
return
pass


def test_there_are_no_exceptions_if_not_tilde_mode_and_in_function_is_return_true_in_async_block():
@superfunction(tilde_syntax=False)
def function():
with async_context:
return True
pass


def test_there_are_no_exceptions_if_not_tilde_mode_and_in_function_is_empty_return_in_generator_block():
@superfunction(tilde_syntax=False)
def function():
with generator_context:
return
pass


def test_there_are_no_exceptions_if_not_tilde_mode_and_in_function_is_return_true_in_generator_block():
@superfunction(tilde_syntax=False)
def function():
with generator_context:
return True
pass


def test_async_function_with_all_content_in_generator_context():
@superfunction
def function():
with generator_context:
return True

assert run(function()) is None


def test_async_function_with_all_content_in_sync_context():
@superfunction
def function():
with sync_context:
return True

assert run(function()) is None


def test_usual_tilde_function_with_all_content_in_generator_context():
@superfunction
def function():
with generator_context:
return True

assert ~function() is None


def test_usual_tilde_function_with_all_content_in_async_context():
@superfunction
def function():
with async_context:
return True

assert ~function() is None
Loading
Loading