def test_postgresql_config(env_name): env = Environment( DefaultPaths(env_name, environments_dir=TEST_ENVIRONMENTS_DIR)) if not os.path.exists(env.paths.generated_yml): raise SkipTest with open(env.paths.generated_yml, encoding='utf-8') as f: generated = yaml.safe_load(f) assert list(generated.keys()) == ['postgresql_dbs'] expected_json = generated['postgresql_dbs'] actual_json = env.postgresql_config.to_generated_variables( env)['postgresql_dbs'] assert_equal( actual_json, expected_json, msg=('\n\n' + '\n'.join( difflib.unified_diff( list( yaml.dump(actual_json, Dumper=PreserveUnsafeDumper).splitlines()), list( yaml.dump(expected_json, Dumper=PreserveUnsafeDumper).splitlines()), 'Actual', 'Expected', lineterm=''))))
def test_csv_inventory(env_name): env = Environment( DefaultPaths(env_name, environments_dir=TEST_ENVIRONMENTS_DIR)) for group, hosts in env.sshable_hostnames_by_group.items(): assert set(hosts) == set(HOSTS_BY_GROUP[group]), "{}: {}".format( group, hosts) inventory = env.inventory_manager for name, group in inventory.groups.items(): expected = EXPECTED_OUTPUT[name] assert group.vars == expected.get('vars', {}), "{}: {}".format( name, group.vars) hosts = {host.name for host in group.hosts} assert hosts == set(expected.get('hosts', [])), "{}: {}".format( name, group.hosts) children = {child.name for child in group.child_groups} assert children == set(expected.get('children', [])), "{}: {}".format( name, group.child_groups) for name, host in inventory.hosts.items(): expected_vars = EXPECTED_OUTPUT["hostvars"][name] host_vars = { var: val for var, val in host.vars.items() if var not in INTERNAL_HOST_VARS } assert host_vars == expected_vars, "{}: {}".format(name, host_vars)
def test_postgresql_config(env_name): env = Environment( DefaultPaths(env_name, environments_dir=TEST_ENVIRONMENTS_DIR)) with open(env.paths.generated_yml) as f: generated = yaml.safe_load(f) assert generated.keys() == ['postgresql_dbs'] expected_json = generated['postgresql_dbs'] actual_json = env.postgresql_config.to_generated_variables( env)['postgresql_dbs'] assert_equal(actual_json, expected_json)
def get_environment(env_name): return Environment(DefaultPaths(env_name))
def test_python_version(): env = Environment(DefaultPaths('travis', environments_dir=ENVS_DIR)) assert 'python_version' not in env.public_vars, env.public_vars[ 'python_version'] assert env.python_version == env.group_vars["python_version"], \ (env.python_version, env.group_vars["python_version"])
def update_configs(): for env_name in TEST_ENVIRONMENTS: env = Environment(DefaultPaths(env_name, environments_dir=TEST_ENVIRONMENTS_DIR)) if os.path.exists(env.paths.generated_yml): print("updating config:", env_name) update_config(env)