diff --git a/tests/unit/providers/test_traversal_py3.py b/tests/unit/providers/test_traversal_py3.py index c7ff7a8b..e249b759 100644 --- a/tests/unit/providers/test_traversal_py3.py +++ b/tests/unit/providers/test_traversal_py3.py @@ -513,3 +513,61 @@ class BaseSingletonTests(unittest.TestCase): self.assertIn(provider1, all_providers) self.assertIn(provider2, all_providers) self.assertIn(provider3, all_providers) + + +class ListTests(unittest.TestCase): + + def test_traverse_args(self): + provider1 = providers.Object('bar') + provider2 = providers.Object('baz') + provider = providers.List('foo', provider1, provider2) + + all_providers = list(provider.traverse()) + + self.assertEqual(len(all_providers), 2) + self.assertIn(provider1, all_providers) + self.assertIn(provider2, all_providers) + + def test_traverse_overridden(self): + provider1 = providers.Object('bar') + provider2 = providers.Object('baz') + provider3 = providers.List(provider1, provider2) + + provider = providers.List('foo') + provider.override(provider3) + + all_providers = list(provider.traverse()) + + self.assertEqual(len(all_providers), 3) + self.assertIn(provider1, all_providers) + self.assertIn(provider2, all_providers) + self.assertIn(provider3, all_providers) + + +class DictTests(unittest.TestCase): + + def test_traverse_kwargs(self): + provider1 = providers.Object('bar') + provider2 = providers.Object('baz') + provider = providers.Dict(foo='foo', bar=provider1, baz=provider2) + + all_providers = list(provider.traverse()) + + self.assertEqual(len(all_providers), 2) + self.assertIn(provider1, all_providers) + self.assertIn(provider2, all_providers) + + def test_traverse_overridden(self): + provider1 = providers.Object('bar') + provider2 = providers.Object('baz') + provider3 = providers.Dict(bar=provider1, baz=provider2) + + provider = providers.Dict(foo='foo') + provider.override(provider3) + + all_providers = list(provider.traverse()) + + self.assertEqual(len(all_providers), 3) + self.assertIn(provider1, all_providers) + self.assertIn(provider2, all_providers) + self.assertIn(provider3, all_providers)