def test_recursive_expansion(self): envvar1 = "a" + uuid.uuid4().hex envvalue1 = "a" + uuid.uuid4().hex envvar2 = "b" + uuid.uuid4().hex envvalue2 = "b" + uuid.uuid4().hex os.environ[envvar1] = envvalue1 os.environ[envvar2] = envvalue2 config = Configuration("pyfarm.core") config.update( foo="foo", bar="bar", foobar="$foo/$bar", home="~/foo", path="$foobar/$%s" % envvar1, envvar2_expand="$%s" % envvar2, ) config.update({envvar2: "envvar2"}) self.assertEqual(config["foobar"], "foo/bar") self.assertEqual(config["path"], "foo/bar/%s" % envvalue1) self.assertEqual(config["home"], expanduser("~/foo")) self.assertEqual(config["envvar2_expand"], "envvar2")