def test_basic_statements(self): config = Config() print(config) config.host, config.port = "example.com", 9000 config.nested_config = {} config.nested_config.foo = True config.nested_config.bar = 9000 print(config) if "token" not in config: config["token"] = "т" import argparse parser = argparse.ArgumentParser(description=__doc__) for arg in "verbose quiet failfast catch buffer".split(): parser.add_argument("-" + arg[0], "--" + arg, nargs="?") parser.add_argument("--foo") parser.add_argument("--bar") args = parser.parse_args() config.update(vars(args)) print(config) config = Config(save_on_exit=True, autosave=False, use_yaml=True) config.foo = "bar" config.nested_config = {} config.nested_config.foo = True config.nested_config.bar = 9001 config.nested_config.baz = "т"
def test_merge(self): config = Config() config.update({}) config.update({"m": {"i": 1}}) self.assertEqual(config["m"], {"i": 1}) config.update({"m": {"j": 2}}) self.assertEqual(config["m"], {"i": 1, "j": 2}) config.update({"m": {"j": [7, 8]}}) self.assertEqual(config["m"], {"i": 1, "j": [7, 8]}) config.update({"m": {"k": []}}) self.assertEqual(config["m"], {"i": 1, "j": [7, 8], "k": []}) config.update({"m": {"k": {"$append": "v"}}}) self.assertEqual(config["m"], {"i": 1, "j": [7, 8], "k": ["v"]}) config.update({"m": {"k": {"$append": "v"}}}) self.assertEqual(config["m"], {"i": 1, "j": [7, 8], "k": ["v", "v"]}) config.update({"m": {"k": {"$extend": ["z", "z"]}}}) self.assertEqual(config["m"], {"i": 1, "j": [7, 8], "k": ["v", "v", "z", "z"]}) config.update({"m": {"k": {"$extendleft": ["z", "z"]}}}) self.assertEqual(config["m"], {"i": 1, "j": [7, 8], "k": ["z", "z", "v", "v", "z", "z"]}) config.update({"m": {"k": {"$insert": {0: 5}}}}) self.assertEqual(config["m"], {"i": 1, "j": [7, 8], "k": [5, "z", "z", "v", "v", "z", "z"]}) config.update({"m": {"k": {"$remove": "z"}}}) self.assertEqual(config["m"], {"i": 1, "j": [7, 8], "k": [5, "z", "v", "v", "z", "z"]})