Ejemplo n.º 1
0
def test_get_module_name(files, expected, tmp_path):
    for file_path in files:
        path = tmp_path.joinpath(file_path)
        if '/' in file_path:
            path.parent.mkdir(parents=True, exist_ok=True)
        path.touch()

    root = Root(path=tmp_path, name='foobar')
    for file_path, module_name in expected.items():
        assert root._get_module_name(path=tmp_path.joinpath(file_path)) == module_name
Ejemplo n.º 2
0
def test_discover_packages(tmp_path):
    package = Root(path=tmp_path)
    path = tmp_path / 'project1'

    path.mkdir()
    (path / 'dir1').mkdir()
    (path / 'dir2').mkdir()
    (path / 'dir3').mkdir()
    (path / 'dir3' / 'dir4').mkdir()
    (path / 'empty').mkdir()
    (path / '__pycache__').mkdir()

    (tmp_path / 'ignore.json').touch()
    (path / '__init__.py').touch()
    (path / 'file1.py').touch()
    (path / 'file2.db').touch()
    (path / 'dir1' / '__init__.py').touch()
    (path / 'dir2' / 'file3.json').touch()

    (path / 'dir3' / '__init__.py').touch()
    (path / 'dir3' / 'dir4' / 'file4.json').touch()

    (path / '__pycache__' / 'lol.pyc').touch()

    assert set(map(str, package.packages)) == {
        'project1', 'project1.dir1', 'project1.dir3'
    }

    data = defaultdict(set)
    for subpackage in package.data:
        data[subpackage.module].add(str(subpackage))
    assert set(data) == {'project1', 'project1.dir3'}
    assert data['project1'] == {'*.db', 'dir2/*.json'}
    assert data['project1.dir3'] == {'dir4/*.json'}
Ejemplo n.º 3
0
def test_package_dir(files, expected, tmp_path):
    for file_path in files:
        path = tmp_path.joinpath(file_path)
        if '/' in file_path:
            path.parent.mkdir(parents=True, exist_ok=True)
        path.touch()

    root = Root(path=tmp_path, name='foobar')
    assert root.package_dir == expected
Ejemplo n.º 4
0
def test_packages_path(files, expected_paths, tmp_path):
    for file_path in files:
        path = tmp_path.joinpath(file_path)
        if '/' in file_path:
            path.parent.mkdir(parents=True, exist_ok=True)
        path.touch()

    root = Root(path=tmp_path, name='foobar')
    assert {package.relative for package in root.packages} == expected_paths