def init_conf(args): """ Generic configuration of CLI, from config file and cli arguments """ config = Configuration() if args.get('config'): config.load_json(args.get('config'), 'sender') config.mix(dict(args)) if "address" not in args.keys() and "url" in args.keys(): config.set('address', args['url']) if "address" not in args.keys(): address = os.environ.get('DEVO_SENDER_ADDRESS', None) if not address: address = os.environ.get('DEVO_SENDER_URL', None) config.set("address", address) config.set("port", os.environ.get('DEVO_SENDER_PORT', None)) if config.get()['cert_reqs']: if "config" not in args.keys() and "key" not in args.keys() \ and "cert" not in args.keys() and "chain" not in args.keys(): config.set("key", os.environ.get('DEVO_SENDER_KEY', None)) config.set("cert", os.environ.get('DEVO_SENDER_CERT', None)) config.set("chain", os.environ.get('DEVO_SENDER_CHAIN', None)) if not config.keys("key") and not config.keys("cert") and not \ config.keys("chain") and os.path.exists("~/.devo.json"): config.load_default_json('api') config.keys('from') config.keys('to') return config
def configure(args): """ Load CLI configuration :param args: args from files, launch vars, etc :return: Client API Object and Config values in array """ config = Configuration() if args.get('config') != "~/.devo.json": config.load_json(args.get('config'), 'api') config.mix(dict(args)) if "key" not in args.keys() and "api" not in args.keys() \ and "token" not in args.keys(): config.set("key", os.environ.get('DEVO_API_KEY', None)) config.set("secret", os.environ.get('DEVO_API_SECRET', None)) if "url" not in args.keys(): config.set("url", os.environ.get('DEVO_API_URL', None)) if not config.keys("key") and not config.keys("api") \ and not config.keys("token") \ and os.path.exists("~/.devo.json"): config.load_default_json('api') config.keys('from') config.keys('to') # Try to compose the api api = None try: api = Client.from_config(config.get()) except DevoClientException as error: print_error(str(error), show_help=True) return api, config.get()
def test_load_json(self): config = Configuration() config.load_json(self.config_path + ".json") self.assertDictEqual(config.cfg, { "devo": { "die": "hard" }, "api": { "velazquez": "Then I am beautiful?" } })
def test_mix(self): config = Configuration() config.load_json(self.config_path) config.mix({"test": "ok"}) self.assertDictEqual( config.cfg, { "devo": { "die": "hard" }, "api": { "velazquez": "Then I am beautiful?" }, "test": "ok" })
def test_key_exist(self): config = Configuration() config.load_json(self.config_path) self.assertFalse(config.key_exist("noexiste")) self.assertTrue(config.key_exist("api"))