def test_dynamic_scope(self): env = Environment() local_env1 = env.create_local_environment() local_env1.define("var_1", 123) local_env2 = env.create_local_environment(local_env1) self.assertIsNone(local_env2.look_up("var_1")) self.assertEqual(local_env2.dynamic_look_up("var_1"), 123)
def test_dynamic_scope(self): env = Environment() local_env1 = env.create_local_environment() local_env1.define("var_1", 123) local_env2 = env.create_local_environment(local_env1) self.assertIsNone(local_env2.look_up("var_1")) self.assertEqual(local_env2.dynamic_look_up("var_1"), 123) # Test creating an environment that is not a child of another environment
def test_look_up_bindings_in_parent(self): env1 = Environment() env1.define("my_var", 4) env2 = env1.create_local_environment() env3 = env2.create_local_environment() self.assertEqual(env3.look_up("my_var"), 4)
def test_look_up_masked_bindings(self): env1 = Environment() env1.define("my_var", 8) env2 = env1.create_local_environment() env2.define("my_var", 7) env3 = env2.create_local_environment() env3.define("my_var", 6) self.assertEqual(env1.look_up("my_var"), 8) self.assertEqual(env2.look_up("my_var"), 7) self.assertEqual(env3.look_up("my_var"), 6)