def test_flip_backslashes_false_works(monkeypatch): tree = fstree.FsTree(flip_backslashes=False) tree.add_dir('C:\\') assert tree.as_dict() == {'C:\\': {}} tree = fstree.FsTree(flip_backslashes=False) tree.add_file('C:\\f') assert tree.as_dict() == {'C:\\f': None}
def test_flip_backslashes_on_non_windows_defaults_to_false(monkeypatch): monkeypatch.setattr(sys, 'platform', 'linux2') tree = fstree.FsTree() tree.add_dir('C:\\') assert tree.as_dict() == {'C:\\': {}} tree = fstree.FsTree() tree.add_file('C:\\f') assert tree.as_dict() == {'C:\\f': None}
def test_add_expects_yaml_string_if_multi_lines(): tree = fstree.FsTree() tree.add(r''' C:/: file: test ''') assert tree.open('C:/file', 'r').read() == 'test'
def test_add_file_and_add_dir(files, dirs, exp): tree = fstree.FsTree() [tree.add_file(item) for item in files] [tree.add_dir(item) for item in dirs] res = tree.as_dict() assert res == exp
def test_add_raises_if_no_known_type(): tree = fstree.FsTree() tree.add(r''' C:/: file: test ''') assert tree.open('C:/file', 'r').read() == 'test'
def test_open_write_creates_readable_file(): tree = fstree.FsTree() with tree.open('C:/temp/myfile.txt', 'w') as file_: pass with tree.open('C:/temp/myfile.txt', 'r') as file_: data = file_.read() assert '' == data
def test_open_append_written_test_can_be_read(): tree = fstree.FsTree() with tree.open('C:/temp/myfile.txt', 'a') as file_: file_.write('test') with tree.open('C:/temp/myfile.txt', 'r') as file_: data = file_.read() assert 'test' == data
def test_add_yaml_creates_files_with_content(): tree = fstree.FsTree() tree.add_yaml(r''' C:/: file: test ''') assert tree.open('C:/file', 'r').read() == 'test'
def test_get_files_works(paths, exp): tree = fstree.FsTree() for path in paths: tree.add(path) res = fstree.utils.get_files(tree) assert res == exp
def test_walk_finds_roots_dirs_and_files(fsdict, path, exp_roots, exp_dir_lists, exp_file_lists): tree = fstree.FsTree() tree.add_dict(fsdict) gen_walk = tree.walk() for exp_dir_list, exp_file_list in zip(exp_dir_lists, exp_file_lists): (root, dirs, files) = next(gen_walk) # assert root == exp_root assert dirs == exp_dir_list assert files == exp_file_list
def test_add_file_with_content(): tree = fstree.FsTree() path = 'C:/file.txt' text = 'hello world' tree.add_file(path, text) with tree.open(path, 'r') as file_: res = file_.read() assert res == text
def test_open_read_without_file_raises_ioerror(filepath): tree = fstree.FsTree() with pytest.raises(EnvironmentError): tree.open(filepath, 'r')
def test_filepaths_and_dirpaths_works(filepaths, dirpaths, exp_filepaths, exp_dirpaths): tree = fstree.FsTree() [tree.add_file(item) for item in filepaths] [tree.add_dir(item) for item in dirpaths] assert exp_filepaths == tree.get_fs_filepaths() assert exp_dirpaths == tree.get_fs_dirpaths()
def test_find(files, path, exp): tree = fstree.FsTree() tree.add_dict(files) res = bool(tree.find(path)) assert res == exp
def test_get_fspath(path): tree = fstree.FsTree() node = tree.add_file(path) assert path == node.get_fspath()
def test_add_creates_file_if_no_trailing_backslash(): tree = fstree.FsTree() tree.add('p/p') assert tree.as_dict() == {'p': {'p': None}}
def test_add_creates_dir_if_trailing_backslash(): tree = fstree.FsTree() tree.add('p/p/') assert tree.as_dict() == {'p': {'p': {}}}
def test_add_file_flips_fwdslashes_on_win(filepath, exp, monkeypatch): monkeypatch.setattr(sys, 'platform', 'win32') tree = fstree.FsTree() tree.add_file(filepath) assert tree.as_dict() == exp
def test_add_dir_raises_ioerror_if_file_exists(): tree = fstree.FsTree() tree.add_dir('C:/dir') with pytest.raises(IOError): tree.add_file('C:/dir')
def test_as_list_works(fs_paths, exp, monkeypatch): tree = fstree.FsTree() for fs_path in fs_paths: tree.add(fs_path) assert tree.as_list() == exp
def test_add_dict_creates_files_with_content(): tree = fstree.FsTree() tree.add_dict({'C:': {'file': 'test'}}) assert tree.open('C:/file', 'r').read() == 'test'
def test_get_fs_filepaths(filepaths,exp): tree = fstree.FsTree() [tree.add_file(item) for item in filepaths] assert exp == tree.get_fs_filepaths()
def test_add_dict_converts_paths_with_subdirs_into_nodes(fs_dict, exp_dir_paths): tree = fstree.FsTree() tree.add_dict(fs_dict) assert tree.as_dict() == exp_dir_paths
def test_add_dict_adds_directories(fs_dict, exp_dir_paths): tree = fstree.FsTree() tree.add_dict(fs_dict) assert tree.get_fs_dirpaths() == exp_dir_paths