Example #1
0
    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 = "т"
Example #2
0
 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"]})