#157 #165
| @@ -10,20 +10,23 @@ class ServiceCount: | |||||||
|  |  | ||||||
|  |  | ||||||
| class TestService: | class TestService: | ||||||
|     def __init__(self, count: ServiceCount): |     def __init__(self, sp: ServiceProviderABC, count: ServiceCount): | ||||||
|         count.count += 1 |         count.count += 1 | ||||||
|  |         self.sp = sp | ||||||
|         self.id = count.count |         self.id = count.count | ||||||
|  |  | ||||||
|  |  | ||||||
| class DifferentService: | class DifferentService: | ||||||
|     def __init__(self, count: ServiceCount): |     def __init__(self, sp: ServiceProviderABC, count: ServiceCount): | ||||||
|         count.count += 1 |         count.count += 1 | ||||||
|  |         self.sp = sp | ||||||
|         self.id = count.count |         self.id = count.count | ||||||
|  |  | ||||||
|  |  | ||||||
| class MoreDifferentService: | class MoreDifferentService: | ||||||
|     def __init__(self, count: ServiceCount): |     def __init__(self, sp: ServiceProviderABC, count: ServiceCount): | ||||||
|         count.count += 1 |         count.count += 1 | ||||||
|  |         self.sp = sp | ||||||
|         self.id = count.count |         self.id = count.count | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -67,15 +70,25 @@ class ServiceProviderTestCase(unittest.TestCase): | |||||||
|     def test_scoped(self): |     def test_scoped(self): | ||||||
|         scoped_id = 0 |         scoped_id = 0 | ||||||
|         singleton = self._services.get_service(TestService) |         singleton = self._services.get_service(TestService) | ||||||
|  |         transient = self._services.get_service(DifferentService) | ||||||
|         with self._services.create_scope() as scope: |         with self._services.create_scope() as scope: | ||||||
|             sp: ServiceProviderABC = scope.service_provider |             sp: ServiceProviderABC = scope.service_provider | ||||||
|  |             self.assertNotEqual(sp, self._services) | ||||||
|             y = sp.get_service(DifferentService) |             y = sp.get_service(DifferentService) | ||||||
|             self.assertIsNotNone(y) |             self.assertIsNotNone(y) | ||||||
|             self.assertEqual(2, y.id) |             self.assertEqual(3, y.id) | ||||||
|             x = sp.get_service(MoreDifferentService) |             x = sp.get_service(MoreDifferentService) | ||||||
|             self.assertIsNotNone(x) |             self.assertIsNotNone(x) | ||||||
|             self.assertEqual(3, x.id) |             self.assertEqual(4, x.id) | ||||||
|             scoped_id = 3 |             scoped_id = 4 | ||||||
|  |             self.assertEqual(singleton.sp, self._services) | ||||||
|  |             self.assertEqual(transient.sp, self._services) | ||||||
|  |             self.assertEqual(x.sp, sp) | ||||||
|  |             self.assertNotEqual(x.sp, singleton.sp) | ||||||
|  |             transient_in_scope = sp.get_service(DifferentService) | ||||||
|  |             self.assertEqual(transient_in_scope.sp, sp) | ||||||
|  |             self.assertNotEqual(transient.sp, transient_in_scope.sp) | ||||||
|  |  | ||||||
|             self.assertEqual(x.id, sp.get_service(MoreDifferentService).id) |             self.assertEqual(x.id, sp.get_service(MoreDifferentService).id) | ||||||
|             self.assertEqual(x.id, sp.get_service(MoreDifferentService).id) |             self.assertEqual(x.id, sp.get_service(MoreDifferentService).id) | ||||||
|             self.assertNotEqual(x, self._services.get_service(MoreDifferentService)) |             self.assertNotEqual(x, self._services.get_service(MoreDifferentService)) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user