Ejemplo n.º 1
0
def test_empty_def():
    code = dedent(
        """
        def f():
            pass
    """
    )
    stats = measure_complexity(code).flatStats
    assert stats.complexity == 1
    assert stats.functions[0].complexity == 1
Ejemplo n.º 2
0
def test_module():
    code = dedent(
        """
            if True:
                pass
            else:
                pass
    """
    )
    stats = measure_complexity(code).flatStats
    assert stats.name == "<module>"
    assert stats.classes == []
    assert stats.functions == []
    assert stats.complexity == 2
Ejemplo n.º 3
0
def test_lambdas():
    code = dedent(
        """
        incr = lambda x: x + 1
        decr = lambda x: x - 1

        def f():
            incr = lambda x: x + 1
            decr = lambda x: x - 1
    """
    )
    stats = measure_complexity(code).flatStats
    incr, decr, f = stats.functions
    assert incr.complexity == 1
    assert decr.complexity == 1
Ejemplo n.º 4
0
def test_class():
    code = dedent(
        """
            class A:
                if True:
                    pass
                def f(self):
                    if False:
                        pass
    """
    )
    stats = measure_complexity(code).flatStats
    assert stats.name == "<module>"
    assert stats.classes[0].name == "A"
    assert stats.classes[0].complexity == 2
Ejemplo n.º 5
0
def test_def():
    code = dedent(
        """
            def f(a, b, c):
                if a:
                    pass
                else:
                    pass
    """
    )
    stats = measure_complexity(code).flatStats
    assert stats.classes == []
    assert len(stats.functions) == 1
    assert stats.functions[0].name == "f"
    assert stats.functions[0].complexity == 2
Ejemplo n.º 6
0
def test_nested_classes():
    code = dedent(
        """
        class A:
            if True:
                pass

            class Inner:
                if False:
                    pass

    """
    )
    stats = measure_complexity(code).flatStats
    assert stats.classes[0].name == "A"
    assert stats.classes[0].complexity == 2
    assert stats.classes[0].classes[0].name == "Inner"
    assert stats.classes[0].classes[0].complexity == 2
Ejemplo n.º 7
0
def test_loops():
    code = dedent(
        """
        def f(a):
            while a < 10:
                print a

        def g(a):
            for x in range(a):
                print a

        def h(a):
            while a < 10:
                for x in range(a):
                    if x % 2:
                        print 'odd'
    """
    )
    stats = measure_complexity(code).flatStats
    f, g, h = stats.functions
    assert f.complexity == 2
    assert g.complexity == 2
    assert h.complexity == 4
Ejemplo n.º 8
0
 def _assert(expected_complexity, code):
     assert measure_complexity(code).flatStats[0][2] == expected_complexity