Skip to content

Commit 7a02aec

Browse files
committed
Test unsatisfied requirement message formatting
1 parent 45eafee commit 7a02aec

1 file changed

Lines changed: 26 additions & 0 deletions

File tree

injector_test.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1675,6 +1675,32 @@ def __new__(cls, required_argument):
16751675
Injector().create_object(ClassWhoseNewRequiresAnArgument)
16761676

16771677

1678+
def test_unsatisfied_requirement_message_names_owning_module_for_a_function():
1679+
class Unbound:
1680+
pass
1681+
1682+
@inject
1683+
def function(dependency: Unbound) -> None:
1684+
pass
1685+
1686+
injector = Injector(auto_bind=False)
1687+
with pytest.raises(UnsatisfiedRequirement) as exc_info:
1688+
injector.call_with_injection(function)
1689+
1690+
assert str(exc_info.value) == '%s has an unsatisfied requirement on Unbound' % __name__
1691+
1692+
1693+
def test_unsatisfied_requirement_message_describes_a_tuple_interface():
1694+
class A:
1695+
pass
1696+
1697+
injector = Injector(auto_bind=False)
1698+
with pytest.raises(UnsatisfiedRequirement) as exc_info:
1699+
injector.get((A,))
1700+
1701+
assert str(exc_info.value) == 'unsatisfied requirement on [A]'
1702+
1703+
16781704
def test_optionals_are_ignored_for_now():
16791705
@inject
16801706
def fun(s: str = None):

0 commit comments

Comments
 (0)