Example #1
0
def test_add_singleton(dependency, value):
    """add_singleton() should add SingletonResolver to current container"""
    with use_container() as container:
        add_singleton(dependency, value)

        resolver = container.get_resolver(dependency)
        assert isinstance(resolver, SingletonResolver)
        assert resolver.resolve(container) == value
Example #2
0
    def test_uses_passed_value_by_name(dep, name, parameter):
        """should use passed value instead of inject it for custom names"""
        @inject(**{name: dep})
        def get_implementation(**kwargs):
            return kwargs[name]

        add_singleton(dep, object())

        assert get_implementation(**{name: parameter}) == parameter
Example #3
0
    def test_uses_passed_value(dep, key, parameter):
        """should use passed value instead of inject it"""
        @inject(dep)
        def get_implementation(**kwargs):
            return kwargs[key]

        add_singleton(dep, object())

        assert get_implementation(**{key: parameter}) == parameter
Example #4
0
    def test_inject_dependency_with_name(dep, name):
        """should inject dependencies as optional parameters with custom name"""
        @inject(**{name: dep})
        def get_implementation(**kwargs):
            return kwargs[name]

        value = object()
        add_singleton(dep, value)

        assert get_implementation() == value
Example #5
0
    def test_inject_dependency(dep, key):
        """should inject dependencies as optional parameters"""
        @inject(dep)
        def get_implementation(**kwargs):
            return kwargs[key]

        value = object()
        add_singleton(dep, value)

        assert get_implementation() == value
Example #6
0
def test_dependency(default):
    """should resolve function or use decorated in case not registered"""
    implementation = Mock()
    default_implementation = Mock()

    @dependency
    def func():
        default_implementation()

    if not default:
        add_singleton(func, implementation)

    func()

    assert default_implementation.called == default
    assert implementation.called == (not default)