Beispiel #1
0
 def __init__(self):
     clear_injectables(RealCar)
     mocked_car = Mock(wraps=RealCar)
     mocked_car.print = Mock(
         side_effect=lambda: print("driving but not for real"))
     mocked_injectable = Injectable(lambda: mocked_car)
     register_injectables({mocked_injectable}, RealCar)
 def __init__(self):
     pass
     clear_injectables(Car)
     mocked_car = Mock(wraps=Car)
     mocked_car.forward = Mock(side_effect=lambda: print("driving but not for real"))
     mocked_injectable = Injectable(lambda: mocked_car)
     register_injectables({mocked_injectable}, Car)
Beispiel #3
0
def mock_car():
    clear_injectables("car")
    mocked_car = Mock(wraps=Car)
    mocked_car.forward = Mock(
        side_effect=lambda: print("driving but not for real"))
    mocked_car_injectable = Injectable(lambda: mocked_car)
    register_injectables({mocked_car_injectable}, qualifier="car")
Beispiel #4
0
    def test__register_injectables__with_class_and_default_values(self):
        # given
        default_namespace_key = DEFAULT_NAMESPACE
        namespace = MagicMock(spec=Namespace)()
        InjectionContainer.NAMESPACES[default_namespace_key] = namespace
        injectables = [MagicMock(spec=Injectable)(), MagicMock(spec=Injectable)()]
        klass = MagicMock

        # when
        register_injectables(injectables, klass)

        # then
        assert all(
            call.register_injectable(inj, klass, None, False) in namespace.mock_calls
            for inj in injectables
        )
Beispiel #5
0
def mock_configurator():
    clear_injectables(Configurator)
    mocked_configuration = Mock(wraps=Configurator)
    configuration = {
        'bicycle': {
            'speed_limit': '1000',
        },
        'car': {
            'speed_limit': '900'
        }
    }

    mocked_configuration.get_speed_limit = Mock(
        side_effect=lambda type: configuration.get(type, {}).get(
            'speed_limit', ''))
    mocked_configuration_injectable = Injectable(lambda: mocked_configuration)
    register_injectables({mocked_configuration_injectable}, Configurator)
    def test__register_injectables__with_empty_injection_container(self):
        # given
        InjectionContainer.NAMESPACES = {}
        namespace = MagicMock(spec=Namespace)()
        InjectionContainer._get_namespace_entry = MagicMock(
            return_value=namespace)
        injectables = [
            MagicMock(spec=Injectable)(),
            MagicMock(spec=Injectable)()
        ]
        klass = MagicMock
        qualifier = "TEST"

        # when
        register_injectables(injectables, klass, qualifier)

        # then
        assert all(
            call.register_injectable(inj, klass, qualifier, False) in
            namespace.mock_calls for inj in injectables)
Beispiel #7
0
    def test__register_injectables__with_explicit_values(self):
        # given
        namespace_key = "TEST_NAMESPACE"
        namespace = MagicMock(spec=Namespace)()
        InjectionContainer.NAMESPACES[namespace_key] = namespace
        injectables = [MagicMock(spec=Injectable)(), MagicMock(spec=Injectable)()]
        klass = MagicMock
        qualifier = "TEST"

        # when
        register_injectables(
            injectables, klass, qualifier, namespace_key, propagate=True
        )

        # then
        assert all(
            call.register_injectable(inj, klass, qualifier, True)
            in namespace.mock_calls
            for inj in injectables
        )
 def __init__(self):
     clear_injectables(RealDep)
     mocked_dep = Mock(wraps=RealDep)
     mocked_dep.print = Mock(side_effect=lambda: print("MockedDep"))
     mocked_injectable = Injectable(lambda: mocked_dep)
     register_injectables({mocked_injectable}, RealDep)
 def test__register_injectables__with_no_class_and_propagate(self):
     with pytest.raises(ValueError):
         register_injectables([MagicMock(spec=Injectable)()],
                              qualifier="TEST",
                              propagate=True)
 def test__register_injectables__with_no_class_or_qualifier(self):
     with pytest.raises(ValueError):
         register_injectables([MagicMock(spec=Injectable)()])
Beispiel #11
0
def foo():
    mocked_injectable = Injectable(lambda: object())
    register_injectables({mocked_injectable}, object)
    assert inject(object)