def test__parent_lookup(self): """ Passes if ... """ container = DIContainer({ 'one': { 'type': 'mock.Mock', 'properties': { 'from': 'parent' } } }) context_settings = { 'two': { 'type': 'mock.Mock', 'properties': { 'from': 'child' } } } with container.context(context_settings): self.assertIsNotNone(container.resolve("one")) self.assertIsNotNone(container.resolve_type("one")) self.assertRaises(MissingConfigurationError, lambda: container.resolve("three")) self.assertRaises(MissingConfigurationError, lambda: container.resolve_type("three"))
def test__child_context(self): """ Passes if ... """ container = DIContainer({ 'one': { 'type': 'mock.Mock', 'properties': { 'source': 'outer_context', 'injected': 'rel:two' } }, 'two': { 'type': 'mock.Mock', 'properties': { 'source': 'outer_context' } } }) context_settings = { 'one': { 'type': 'mock.Mock', 'properties': { 'source': 'inner_context', 'injected': 'rel:three' } }, 'three': { 'type': 'mock.Mock', 'properties': { 'source': 'prelaced_context' } } } def inner_func(): return container.resolve("one") tbc = inner_func() self.assertEqual(tbc.source, 'outer_context') self.assertEqual(tbc.injected.source, 'outer_context') with container.context(context_settings): context_tbc = inner_func() self.assertEqual(context_tbc.source, 'inner_context') self.assertEqual(context_tbc.injected.source, 'prelaced_context') tbc = inner_func() self.assertEqual(tbc.source, 'outer_context') self.assertEqual(tbc.injected.source, 'outer_context')