def test_name_scope_duplicate_name(self): with module.name_scope("foo"): mod1 = module.Module(name="bar") with module.name_scope("foo"): mod2 = module.Module(name="bar") self.assertEqual(mod1.module_name, "foo/bar") self.assertEqual(mod2.module_name, "foo_1/bar")
def __call__(self): self.foo() self.call_module = module.Module(name="child")
def foo(self): self.foo_module = module.Module(name="child")
def __init__(self, name=None): super().__init__(name=name) self.init_module = module.Module(name="child")
def baz(self): self.baz_module = module.Module(name="child")
def bar(self): self.bar_module = module.Module(name="child")
def test_instance_checks(self): self.assertIsInstance(ConcreteProtocolModule(), module.Module) self.assertIsInstance(ConcreteProtocolModule(), SupportsFoo) self.assertIsInstance(ConcreteProtocolModule(), ProtocolModule) self.assertNotIsInstance(module.Module(), SupportsFoo) self.assertNotIsInstance(module.Module(), ProtocolModule)
def test_name_scope_nesting(self): with module.name_scope("foo"): with module.name_scope("bar"): mod = module.Module(name="baz") self.assertEqual(mod.module_name, "foo/bar/baz")
def test_name_scope_slash_delimited(self): with module.name_scope("foo/bar"): mod = module.Module(name="baz") self.assertEqual(mod.module_name, "foo/bar/baz")
def test_name_scope_trivial(self): with module.name_scope("foo"): mod1 = module.Module(name="bar") mod2 = module.Module(name="bar") self.assertEqual(mod1.module_name, "foo/bar") self.assertEqual(mod2.module_name, "foo/bar_1")
def test_supports_call(self): self.assertIsInstance(CallableModule(), typing.SupportsCall) self.assertNotIsInstance(module.Module(), typing.SupportsCall)
def test_module_protocol(self): self.assertNotIsInstance(object(), typing.ModuleProtocol) self.assertIsInstance(module.Module(), typing.ModuleProtocol) self.assertIsInstance(CallableModule(), typing.ModuleProtocol)
def test_temporary_state_resets_names(self): with stateful.temporary_internal_state(stateful.internal_state()): mod1 = module.Module(name="foo") mod2 = module.Module(name="foo") self.assertEqual(mod1.module_name, "foo") self.assertEqual(mod2.module_name, "foo")