def test_search_paths_noenv(tmpdir): cdirs = ['config_a', 'config_b'] sdirs = ['config_b', 'schema_c'] vc = os.environ.pop('ZIRKON_CONFIG_PATH', None) vs = os.environ.pop('ZIRKON_SCHEMA_PATH', None) try: lst = tuple(search_paths()) finally: if vc: os.environ['ZIRKON_CONFIG_PATH'] = vc if vs: os.environ['ZIRKON_SCHEMA_PATH'] = vs assert len(lst) == 1 assert lst[0] == (os.getcwd(), get_config_classes())
def test_guess_mult(): filepath = "/a/b{protocol}/{config_class}/xx.{protocol}-{config_class}" filetypes = list(guess(filepath)) filetypes_d = {filetype.filepath: filetype for filetype in filetypes} protocols = get_protocols() config_classes = get_config_classes() assert len(filetypes) == len(protocols) * len(config_classes) for config_class in config_classes: for protocol in protocols: fp = filepath.format(protocol=protocol, config_class=config_class.__name__.lower()) assert fp in filetypes_d #assert config_class == filetypes_d[fp].config_class #assert protocol == filetypes_d[fp].protocol #assert FileType(filepath=fp, protocol=protocol, config_class=config_class) == filetypes_d[fp] assert FileType(filepath=fp, protocol=protocol, config_class=config_class) in filetypes
def test_search_paths(tmpdir): cdirs = ['config_a', 'config_b'] sdirs = ['config_b', 'schema_c'] os.environ['ZIRKON_CONFIG_PATH'] = ':'.join(cdirs) os.environ['ZIRKON_SCHEMA_PATH'] = ':'.join(sdirs) try: lst = tuple(search_paths()) finally: del os.environ['ZIRKON_CONFIG_PATH'] del os.environ['ZIRKON_SCHEMA_PATH'] assert lst[0] == (os.getcwd(), get_config_classes()) assert lst[1] == ('config_a', (Config,)) assert lst[2] == ('config_b', (Config,)) assert lst[3] == ('config_b', (Schema,)) assert lst[4] == ('schema_c', (Schema,))
def test_guess_mult(): filepath = "/a/b{fmt}/{config_class}/xx.{fmt}-{config_class}" filetypes = list(guess(filepath)) filetypes_d = {filetype.filepath: filetype for filetype in filetypes} fmts = get_fmts() config_classes = get_config_classes() assert len(filetypes) == len(fmts) * len(config_classes) for config_class in config_classes: for fmt in fmts: fp = filepath.format(fmt=fmt, config_class=config_class.__name__.lower()) assert fp in filetypes_d #assert config_class == filetypes_d[fp].config_class #assert fmt == filetypes_d[fp].fmt #assert FileType(filepath=fp, fmt=fmt, config_class=config_class) == filetypes_d[fp] assert FileType(filepath=fp, fmt=fmt, config_class=config_class) in filetypes
def test_classify(tmpdir): config_classes = get_config_classes() protocols = get_protocols() ref_filetypes = {} for rootname in 'x', 'xy': for config_class in config_classes: for protocol in protocols: filename = standard_filepath(rootname=rootname, config=config_class, protocol=protocol) filepath = os.path.join(tmpdir.strpath, filename) with open(filepath, "w") as f_out: pass ref_filetype = FileType(filepath=filepath, config_class=config_class, protocol=protocol) ref_filetypes[filepath] = ref_filetype for filetype in classify(tmpdir.strpath): assert filetype.filepath in ref_filetypes ref_filetype = ref_filetypes.pop(filetype.filepath) assert filetype == ref_filetype os.remove(filetype.filepath) assert len(ref_filetypes) == 0
def test_classify(tmpdir): config_classes = get_config_classes() fmts = get_fmts() ref_filetypes = {} rootnames = ('x', 'xy') for rootname in rootnames: for config_class in config_classes: config_class_name = get_config_class_name(config_class) for fmt in fmts: filename = standard_filepath(rootname=rootname, config=config_class_name, fmt=fmt) filepath = os.path.join(tmpdir.strpath, filename) with open(filepath, "w") as f_out: pass ref_filetype = FileType(filepath=filepath, config_class=config_class, fmt=fmt) ref_filetypes[filepath] = ref_filetype assert len(ref_filetypes) == len(rootnames) * len(config_classes) * len(fmts) for filetype in classify(tmpdir.strpath): assert filetype.filepath in ref_filetypes ref_filetype = ref_filetypes.pop(filetype.filepath) assert filetype == ref_filetype os.remove(filetype.filepath) assert len(ref_filetypes) == 0