示例#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',
        }
示例#2
0
def test_file():
    files = """
        a.py: |
            import collections
    """
    with create_files(files) as workdir:
        assert simpledeps('a.py') == set()
示例#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')
示例#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')
示例#5
0
def test_file():
    files = """
        a.py: |
            import collections
    """
    with create_files(files) as workdir:
        assert simpledeps('a') == []
示例#6
0
def test_py2depgraph(capsys):
    files = """
        - a.py: |
            import b
        - b.py
    """
    with create_files(files) as workdir:
        assert simpledeps('a') == ['b -> a']
示例#7
0
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']
示例#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
示例#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'))
示例#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
示例#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',
        }
示例#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()
示例#14
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
示例#15
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
示例#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
示例#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'))
示例#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']
示例#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'
        }
示例#20
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
示例#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
示例#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'
        ]
示例#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']
示例#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'])
示例#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'])
示例#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',
        ]
示例#29
0
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',
        }
示例#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'
        }
示例#31
0
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
示例#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)