ivankorobkov / python-inject

Python dependency injection
Apache License 2.0
671 stars 77 forks source link

Improve error message for missing argument (#61) #62

Closed dbalabka closed 4 years ago

dbalabka commented 4 years ago

Example of error message:

Traceback (most recent call last):
  File "/usr/local/Cellar/python/3.7.6_1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 59, in testPartExecutor
    yield
  File "/usr/local/Cellar/python/3.7.6_1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 628, in run
    testMethod()
  File "/Users/torinaki/www/htdocs/python-inject/test/test_functional.py", line 107, in test_error_message
    inject.instance(SomeClass)
  File "/Users/torinaki/www/htdocs/python-inject/inject/__init__.py", line 374, in instance
    return get_injector_or_die().get_instance(cls)
  File "/Users/torinaki/www/htdocs/python-inject/inject/__init__.py", line 216, in get_instance
    return binding()
  File "/Users/torinaki/www/htdocs/python-inject/inject/__init__.py", line 263, in __call__
    self._instance = self._constructor()
  File "/Users/torinaki/www/htdocs/python-inject/inject/__init__.py", line 316, in injection_wrapper
    raise ConstructorTypeError(func, previous_error)
inject.ConstructorTypeError: <class 'test_functional.TestFunctional.test_error_message.<locals>.SomeClass'> raised an error: __init__() missing 1 required positional argument: 'missing_arg'