def test_get_config_announces(): for good_config in (MESOS_CONFIG_WITH_ANNOUNCE_1, MESOS_CONFIG_WITH_ANNOUNCE_2, MESOS_CONFIG_WITHOUT_ANNOUNCE): with temporary_file() as fp: fp.write(good_config) fp.flush() config.get_config('hello_world', fp.name) fp.seek(0) config.get_config('hello_world', fp)
def get_job_config(job_spec, config_file, options): try: job_key = AuroraJobKey.from_path(job_spec) select_cluster = job_key.cluster select_env = job_key.env select_role = job_key.role jobname = job_key.name except AuroraJobKey.Error: deprecation_warning('Please refer to your job in CLUSTER/ROLE/ENV/NAME format.') select_cluster = options.cluster if options.cluster else None select_env = options.env select_role = None jobname = job_spec try: json_option = options.json except AttributeError: json_option = False try: bindings = options.bindings except AttributeError: bindings = () return get_config( jobname, config_file, json_option, bindings, select_cluster=select_cluster, select_role=select_role, select_env=select_env)
def test_get_config_select(): with temporary_file() as fp: fp.write(MESOS_CONFIG_BASE % '') fp.flush() fp.seek(0) config.get_config( 'hello_world', fp, select_env='test', select_role='john_doe', select_cluster='smf1-test') fp.seek(0) with pytest.raises(ValueError) as cm: config.get_config( 'hello_world', fp, select_env='staging42', select_role='moua', select_cluster='smf1-test') assert 'smf1-test/john_doe/test/hello_world' in str(cm.value.message)
def test_include(): with temporary_dir() as dir: hello_mesos_fname = "hello_world.mesos" hello_mesos_path = os.path.join(dir, hello_mesos_fname) with open(os.path.join(dir, hello_mesos_path), "wb") as hello_world_mesos: hello_world_mesos.write(MESOS_CONFIG_WITHOUT_ANNOUNCE) hello_world_mesos.flush() hello_include_fname_path = os.path.join(dir, "hello_include_fname.mesos") with open(hello_include_fname_path, "wb+") as hello_include_fname_fp: hello_include_fname_fp.write(MESOS_CONFIG_WITH_INCLUDE % ("", """'%s'""" % hello_mesos_fname)) hello_include_fname_fp.flush() config.get_config('hello_world', hello_include_fname_path) hello_include_fname_fp.seek(0) with pytest.raises(AuroraConfigLoader.InvalidConfigError): config.get_config('hello_world', hello_include_fname_fp)
def get_job_config(self, job_key, config_file): """Loads a job configuration from a config file""" jobname = job_key.name return get_config( jobname, config_file, self.options.json, self.options.bindings, select_cluster=job_key.cluster, select_role=job_key.role, select_env=job_key.env)