def test_program_config_local_config_raise(pack1_config0, merge, raise_on_error): pack1 = __import__("pack1") reload(pack1) program_config = ProgramConfig() program_config.parse(pack1) assert pack1.get_beta() == 5 assert pack1.mod0.get_opt1() == 10 program_config.configure(pack1_config0) assert pack1.get_beta() == 100 assert pack1.mod0.get_opt1() == 666 pack1_config1 = pack1_config0.copy() pack1_config1['pack1']['mod0']['opt0'] = 123 if raise_on_error: with pytest.raises(InvalidTypeError) as exc_info: with program_config.local_config(pack1_config1, merge=merge, raise_on_error=raise_on_error) as (local_config, validation_result): pass else: with program_config.local_config(pack1_config1, merge=merge, raise_on_error=raise_on_error) as (local_config, validation_result): assert isinstance(local_config, Config) assert isinstance(validation_result, Validation) assert validation_result assert 'pack1' in validation_result assert 'mod0' in validation_result['pack1'] assert 'opt0' in validation_result['pack1']['mod0'] assert pack1.get_beta() == 100 assert pack1.mod0.get_opt1() == 666
def test_program_config_local_config(pack1_config0, merge): pack1 = __import__("pack1") reload(pack1) program_config = ProgramConfig() program_config.parse(pack1) assert pack1.get_beta() == 5 assert pack1.mod0.get_opt0() == "abracadabra" assert pack1.mod0.get_opt1() == 10 assert pack1.mod1.get_opt0() == 3.5 program_config.configure(pack1_config0) pack1_config1 = pack1_config0.copy() assert pack1.get_beta() == 100 assert pack1.mod0.get_opt0() == "xyz" assert pack1.mod0.get_opt1() == 666 assert pack1.mod1.get_opt0() == 6.66 # [pack1] # alpha = False # beta = 100 # [mod0] # opt0 = "xyz" # opt1 = 666 # [mod1] # opt0 = 6.66 pack1_config1 = Config.from_string("""\ [pack1] [mod0] opt0 = "1xyz" opt1 = 1666 [mod1] opt0 = 16.66 """, fmt="zirkon") with program_config.local_config(pack1_config1, merge=merge) as (local_config, validation_result): assert isinstance(local_config, Config) assert isinstance(validation_result, Validation) assert not validation_result print("=== local_config:") local_config.dump() if merge: beta_value = 100 else: beta_value = 5 assert pack1.get_beta() == beta_value assert pack1.mod0.get_opt0() == "1xyz" assert pack1.mod0.get_opt1() == 1666 assert pack1.mod1.get_opt0() == 16.66 assert pack1.get_beta() == 100 assert pack1.mod0.get_opt0() == "xyz" assert pack1.mod0.get_opt1() == 666 assert pack1.mod1.get_opt0() == 6.66
def test_program_config_local_config_None(pack1_config0, merge): pack1 = __import__("pack1") reload(pack1) program_config = ProgramConfig() program_config.parse(pack1) assert pack1.get_beta() == 5 assert pack1.mod0.get_opt1() == 10 program_config.configure(pack1_config0) assert pack1.get_beta() == 100 assert pack1.mod0.get_opt1() == 666 with program_config.local_config(None, merge=merge) as (local_config, validation_result): if merge: assert pack1.get_beta() == 100 assert pack1.mod0.get_opt1() == 666 else: assert pack1.get_beta() == 5 assert pack1.mod0.get_opt1() == 10 assert pack1.get_beta() == 100 assert pack1.mod0.get_opt1() == 666