def test_repr(self):
        provider = providers.AbstractCoroutine(_example)

        self.assertEqual(
            repr(provider), '<dependency_injector.providers.'
            'AbstractCoroutine({0}) at {1}>'.format(repr(_example),
                                                    hex(id(provider))))
    def test_call_overridden_by_delegated_coroutine(self):
        @asyncio.coroutine
        def _abstract_example():
            raise RuntimeError('Should not be raised')

        provider = providers.AbstractCoroutine(_abstract_example)
        provider.override(providers.DelegatedCoroutine(_example))

        self.assertTrue(self._run(provider(1, 2, 3, 4)), (1, 2, 3, 4))
async def test_call_overridden_by_delegated_coroutine():
    @asyncio.coroutine
    def abstract_example():
        raise RuntimeError("Should not be raised")

    provider = providers.AbstractCoroutine(abstract_example)
    provider.override(providers.DelegatedCoroutine(example))

    result = await provider(1, 2, 3, 4)
    assert result == (1, 2, 3, 4)
    def test_call_overridden_by_coroutine(self):
        with warnings.catch_warnings():
            warnings.simplefilter('ignore')

            @asyncio.coroutine
            def _abstract_example():
                raise RuntimeError('Should not be raised')

        provider = providers.AbstractCoroutine(_abstract_example)
        provider.override(providers.Coroutine(_example))

        self.assertTrue(self._run(provider(1, 2, 3, 4)), (1, 2, 3, 4))
def test_repr():
    provider = providers.AbstractCoroutine(example)
    assert repr(provider) == ("<dependency_injector.providers."
                              "AbstractCoroutine({0}) at {1}>".format(
                                  repr(example), hex(id(provider))))
def test_provide_not_implemented():
    provider = providers.AbstractCoroutine(example)
    with raises(NotImplementedError):
        provider._provide((1, 2, 3, 4), dict())
def test_override_by_not_coroutine():
    provider = providers.AbstractCoroutine(example)
    with raises(errors.Error):
        provider.override(providers.Factory(object))
def test_call_not_overridden():
    provider = providers.AbstractCoroutine(example)
    with raises(errors.Error):
        provider(1, 2, 3, 4)
def test_inheritance():
    assert isinstance(providers.AbstractCoroutine(example),
                      providers.Coroutine)
    def test_provide_not_implemented(self):
        provider = providers.AbstractCoroutine(_example)

        with self.assertRaises(NotImplementedError):
            provider._provide((1, 2, 3, 4), dict())
    def test_override_by_not_coroutine(self):
        provider = providers.AbstractCoroutine(_example)

        with self.assertRaises(errors.Error):
            provider.override(providers.Factory(object))
    def test_call_not_overridden(self):
        provider = providers.AbstractCoroutine(_example)

        with self.assertRaises(errors.Error):
            provider(1, 2, 3, 4)
 def test_inheritance(self):
     self.assertIsInstance(providers.AbstractCoroutine(_example),
                           providers.Coroutine)