コード例 #1
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
コード例 #2
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
コード例 #3
0
def test_setup_fmts_None():
    assert setup_fmts(None) == get_fmts()
コード例 #4
0
    try:
        set_default_fmt(fmt)
        lst = list(guess(filename))
        assert len(lst) == 1
        assert lst[0] == FileType(filepath=filename, fmt=fmt, config_class=config_class)
    finally:
        set_default_fmt(orig_fmt)

def test_get_default_fmt():
    assert get_default_fmt() == "zirkon"

_tdata1 = [
    ("/a/b.config", Config, "zirkon"),
]

for _fmt in get_fmts():
    _tdata1.append(("/a/b.{}".format(_fmt), Config, _fmt))
    _tdata1.append(("/a/b.c-{}".format(_fmt), Config, _fmt))
    _tdata1.append(("/a/b.{}-config".format(_fmt), Config, _fmt))
    _tdata1.append(("/a/b.s-{}".format(_fmt), Schema, _fmt))
    _tdata1.append(("/a/b.{}-schema".format(_fmt), Schema, _fmt))
    _tdata1.append(("/a/b.v-{}".format(_fmt), Validation, _fmt))
    _tdata1.append(("/a/b.{}-validation".format(_fmt), Validation, _fmt))

@pytest.fixture(params=_tdata1)
def tdata1(request):
    return request.param

def test_get_filetype(tdata1):
    filename, config_class, fmt = tdata1
    assert get_filetype(filename) == FileType(filepath=filename, config_class=config_class, fmt=fmt)
コード例 #5
0
    filetype, obj = filetype_obj
    tmpfile = tmpdir.join("read", filetype.filepath).strpath
    filetype = filetype._replace(filepath=tmpfile)
    obj.to_file(filetype.filepath)
    obj2 = filetype.config_class()
    io_manager.read_obj(obj2, filetype)
    # print("obj:")
    # obj.dump()
    # print("obj2:")
    # obj2.dump()
    dct = dictutils.transform(obj, dict_class=dict, value_transform=str)
    dct2 = dictutils.transform(obj2, dict_class=dict, value_transform=str)
    assert dct == dct2


@pytest.fixture(params=[fmt for fmt in get_fmts() if fmt != "pickle"])
def fmt(request):
    return request.param
    
@pytest.fixture(params=[True, False])
def yes_no(request):
    return request.param

def test_IoManager_dump(io_manager, filetype_obj, tmpdir, fmt, yes_no):
    filetype, obj = filetype_obj
    if yes_no:
        print_function = io_manager.printer
    else:
        print_function = lambda *args, **kwargs: io_manager.printer(*args, **kwargs)
    io_manager.printer.stream.truncate(0)
    io_manager.dump_obj(obj, fmt=fmt, print_function=print_function)