Beispiel #1
0
def test_skip_exact_pattern():
    files = """
        relimp:
            - __init__.py
            - a.py: |
                from . import b
                from . import c
            - b.py: |
                from .c import d
            - c:
                - __init__.py           
                - d.py
    """
    with create_files(files) as workdir:
        print('plain', simpledeps('relimp'))
        assert simpledeps('relimp') == {
            'relimp.b -> relimp.a',
            'relimp.c.d -> relimp.b',
            'relimp.c -> relimp.b',
            'relimp.c -> relimp.a',
        }

        print('plain', simpledeps('relimp', '-xx relimp.c'))
        assert simpledeps('relimp', '-xx relimp.c') == {
            'relimp.b -> relimp.a',
            'relimp.c.d -> relimp.b',  # this should remain
            # 'relimp.c -> relimp.b',  # these should be filtered away..
            # 'relimp.c -> relimp.a',
        }
Beispiel #2
0
def test_file():
    files = """
        a.py: |
            import collections
    """
    with create_files(files) as workdir:
        assert simpledeps('a.py') == set()
Beispiel #3
0
def test_file_pyliball():
    files = """
        a.py: |
            import collections
    """
    with create_files(files) as workdir:
        assert 'collections -> a' in simpledeps('a', '--pylib --pylib-all')
Beispiel #4
0
def test_file_pyliball():
    files = """
        a.py: |
            import collections
    """
    with create_files(files) as workdir:
        assert 'collections -> a' in simpledeps('a.py', '--pylib --pylib-all')
Beispiel #5
0
def test_file():
    files = """
        a.py: |
            import collections
    """
    with create_files(files) as workdir:
        assert simpledeps('a') == []
Beispiel #6
0
def test_py2depgraph(capsys):
    files = """
        - a.py: |
            import b
        - b.py
    """
    with create_files(files) as workdir:
        assert simpledeps('a') == ['b -> a']
def test_relative_imports():
    files = """
        relimp:
            - __init__.py
            - a.py: |
                from . import b
            - b.py
    """
    with create_files(files) as workdir:
        assert simpledeps('relimp') == {'relimp.b -> relimp.a'}
def test_relative_imports():
    files = """
        relimp:
            - __init__.py
            - a.py: |
                from . import b
            - b.py
    """
    with create_files(files) as workdir:
        assert simpledeps('relimp') == ['relimp.b -> relimp.a']
Beispiel #9
0
def test_relative_imports_same_name_with_std_future():
    files = """
        relimp:
            - __init__.py
            - io.py: |
                from __future__ import absolute_import
                import io
    """
    with create_files(files) as workdir:
        deps = {'__future__ -> relimp.io', 'io -> relimp.io'}
        assert simpledeps('relimp', '--pylib') == deps
Beispiel #10
0
def test_dep2dot():
    files = """
        foo:
            - __init__.py
            - a.py: |
                import b
            - b.py
    """
    with create_files(files) as workdir:
        assert simpledeps('foo') == ['foo.b -> foo.a']
        pydeps._pydeps(**pydeps.parse_args(["foo", "--noshow"]))
        assert os.path.exists(os.path.join(workdir, 'foo.svg'))
Beispiel #11
0
def test_relative_imports_same_name_with_std():
    files = """
        relimp:
            - __init__.py
            - io.py: |
                import io
    """
    with create_files(files) as workdir:
        if sys.version_info < (3, ):  # pragma: nocover
            deps = {'relimp.io -> relimp.io'}
        else:  # pragma: nocover
            deps = {'io -> relimp.io'}
        assert simpledeps('relimp', '--pylib') == deps
Beispiel #12
0
def test_from_html5lib():
    files = """
        foo:
            - __init__.py
            - a.py: |
                from bar import py
        bar:
            - __init__.py
    """
    with create_files(files) as workdir:
        assert simpledeps('foo', '--show-deps -LINFO -vv') == {
            'bar -> foo.a',
        }
Beispiel #13
0
def test_skip_module_pattern():
    files = """
        relimp:
            - __init__.py
            - a.py: |
                from . import b
            - b.py: |
                from . import c
            - c.py
    """
    with create_files(files) as workdir:
        print("-x", simpledeps('relimp', '-x relimp.*'))
        assert simpledeps('relimp', '-x relimp.*') == set()
def test_relative_imports_same_name_with_std():
    files = """
        relimp:
            - __init__.py
            - io.py: |
                import io
    """
    with create_files(files) as workdir:
        if sys.version_info < (3,):                # pragma: nocover
            deps = {'relimp.io -> relimp.io'}
        else:                                      # pragma: nocover
            deps = {'io -> relimp.io'}
        assert simpledeps('relimp', '--pylib') == deps
def test_relative_imports2():
    files = """
        relimp:
            - __init__.py
            - a.py: |
                from . import b
            - b.py: |
                from . import c
            - c.py
    """
    with create_files(files) as workdir:
        deps = simpledeps('relimp')
        assert 'relimp.c -> relimp.b' in deps
        assert 'relimp.b -> relimp.a' in deps
Beispiel #16
0
def test_relative_imports2():
    files = """
        relimp:
            - __init__.py
            - a.py: |
                from . import b
            - b.py: |
                from . import c
            - c.py
    """
    with create_files(files) as workdir:
        deps = simpledeps('relimp')
        assert 'relimp.c -> relimp.b' in deps
        assert 'relimp.b -> relimp.a' in deps
Beispiel #17
0
def test_dep2dot():
    files = """
        foo:
            - __init__.py
            - a.py: |
                from . import b
            - b.py
    """
    with create_files(files) as workdir:
        assert simpledeps('foo', '-LDEBUG -vv') == {'foo.b -> foo.a'}

        args = pydeps.cli.parse_args(["foo", "--noshow"])
        pydeps.pydeps(**args)
        assert os.path.exists(os.path.join(workdir, 'foo.svg'))
Beispiel #18
0
def test_relative_imports():
    files = """
        foo:
            - __init__.py
            - a.py: |
                from bar import b
        bar:
            - __init__.py
            - b.py
    """
    with create_files(files) as workdir:
        assert simpledeps('foo') == {'bar -> foo.a', 'bar.b -> foo.a'}

        assert pydeps(fname='foo', externals=True) == ['bar']
Beispiel #19
0
def test_skip_modules():
    files = """
        relimp:
            - __init__.py
            - a.py: |
                from . import b
            - b.py: |
                from . import c
            - c.py
    """
    with create_files(files) as workdir:
        assert simpledeps('relimp', '-x relimp.c') == {
            'relimp.b -> relimp.a'
        }
def test_relative_imports_same_name_with_std_future():
    files = """
        relimp:
            - __init__.py
            - io.py: |
                from __future__ import absolute_import
                import io
    """
    with create_files(files) as workdir:
        deps = {
            '__future__ -> relimp.io',
            'io -> relimp.io'
        }
        assert simpledeps('relimp', '--pylib') == deps
Beispiel #21
0
def test_cycle():
    files = """
        relimp:
            - __init__.py
            - a.py: |
                from . import b
            - b.py: |
                from . import a
    """
    with create_files(files, cleanup=False) as workdir:
        print("WORKDIR:", workdir)
        deps = simpledeps('relimp')
        assert 'relimp.a -> relimp.b' in deps
        assert 'relimp.b -> relimp.a' in deps
Beispiel #22
0
def test_rawdeps():
    files = """
        relimp:
            - __init__.py
            - a.py: |
                from . import b
            - b.py: |
                from . import c
            - c.py
    """
    with create_files(files) as workdir:
        assert simpledeps('relimp', '--show-raw-deps -x relimp.c') == [
            'relimp.b -> relimp.a'
        ]
Beispiel #23
0
def test_relative_imports(capsys):
    files = """
        foo:
            - __init__.py
            - a.py: |
                from bar import b
        bar:
            - __init__.py
            - b.py
    """
    with create_files(files) as workdir:
        assert simpledeps('foo') == {'bar -> foo.a', 'bar.b -> foo.a'}
        pydeps(fname='foo', externals=True)
        io = capsys.readouterr()
        assert ast.literal_eval(io.out) == ['bar']
def test_hierarchy():
    files = """
        relimp:
            - __init__.py
            - a:
                - __init__.py
                - amodule.py: |
                    from ..b import bmodule
            - b:
                - __init__.py
                - bmodule.py

    """
    with create_files(files, cleanup=True) as workdir:
        os.system("tree " + workdir)
        assert simpledeps('relimp') == ['relimp.b.bmodule -> relimp.a.amodule']
Beispiel #25
0
def test_dep2dot():
    files = """
        foo:
            - __init__.py
            - a.py: |
                from . import b
            - b.py
    """
    with create_files(files) as workdir:
        g = depgrf("foo")
        d = json.loads(repr(g))
        print(d)
        assert '__main__' in d['foo']['imported_by']
        assert g.sources['foo.a'] == g.sources['foo.a']
        assert str(g.sources['foo.a']).startswith('foo.a')
        assert 'foo.b' in repr(g.sources['foo.a'])
Beispiel #26
0
def test_dep2dot():
    files = """
        foo:
            - __init__.py
            - a.py: |
                import b
            - b.py
    """
    with create_files(files) as workdir:
        g = depgrf("foo")
        d = json.loads(repr(g))
        print d
        assert '__main__' in d['foo']['imported_by']
        assert g.sources['foo.a'] == g.sources['foo.a']
        assert str(g.sources['foo.a']).startswith('foo.a')
        assert 'foo.b' in repr(g.sources['foo.a'])
Beispiel #27
0
def test_dep2dot():
    files = """
        foo:
            - __init__.py
            - a.py: |
                from . import b
            - b.py
    """
    with create_files(files) as workdir:
        assert simpledeps('foo', '-LDEBUG -vv') == {
            'foo.b -> foo.a'
        }

        args = pydeps.cli.parse_args(["foo", "--noshow"])
        pydeps.pydeps(**args)
        assert os.path.exists(os.path.join(workdir, 'foo.svg'))
def test_pydeps_colors():
    files = """
        pdeps:
            - __init__.py
            - colors.py: |
                import colorsys
            - depgraph.py: |
                import json
                import pprint
                import enum
                from . import colors
    """
    with create_files(files, cleanup=False) as workdir:
        assert simpledeps('pdeps') == [
            'pdeps.colors -> pdeps.depgraph',
        ]
def test_pydeps_colors():
    files = """
        pdeps:
            - __init__.py
            - colors.py: |
                import colorsys
            - depgraph.py: |
                import json
                import pprint
                import enum
                from . import colors
    """
    with create_files(files, cleanup=False) as workdir:
        assert simpledeps('pdeps', '-x enum') == {
            'pdeps.colors -> pdeps.depgraph',
        }
Beispiel #30
0
def test_no_skip():
    files = """
        relimp:
            - __init__.py
            - a.py: |
                from . import b
            - b.py: |
                from . import c
            - c.py
    """
    with create_files(files) as workdir:
        print("plain", simpledeps('relimp'))
        assert simpledeps('relimp') == {
            'relimp.b -> relimp.a',
            'relimp.c -> relimp.b'
        }
def test_hierarchy():
    files = """
        relimp:
            - __init__.py
            - a:
                - __init__.py
                - amodule.py: |
                    from ..b import bmodule
            - b:
                - __init__.py
                - bmodule.py

    """
    with create_files(files, cleanup=True) as workdir:
        os.system("tree " + workdir)
        deps = simpledeps('relimp')
        assert 'relimp.b -> relimp.a.amodule' in deps
        assert 'relimp.b.bmodule -> relimp.a.amodule' in deps
Beispiel #32
0
def test_output(tmpdir):
    files = """
        unrelated: []
        foo:
            - __init__.py
            - a.py: |
                from bar import b
        bar:
            - __init__.py
            - b.py
    """
    with create_files(files) as workdir:
        assert os.getcwd() == workdir

        outname = os.path.join('unrelated', 'foo.svg')
        assert not os.path.exists(outname)
        pydeps(fname='foo', **empty('--noshow', output=outname))
        assert os.path.exists(outname)