Ejemplo n.º 1
0
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())
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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,))
Ejemplo n.º 4
0
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
Ejemplo n.º 5
0
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
Ejemplo n.º 6
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