예제 #1
0
파일: test_cc.py 프로젝트: bartosh/pygenie
def test_empty_def():
    code = dedent(
        """
        def f():
            pass
    """
    )
    stats = measure_complexity(code).flatStats
    assert stats.complexity == 1
    assert stats.functions[0].complexity == 1
예제 #2
0
파일: test_cc.py 프로젝트: bartosh/pygenie
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
예제 #3
0
파일: test_cc.py 프로젝트: bartosh/pygenie
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
예제 #4
0
파일: test_cc.py 프로젝트: bartosh/pygenie
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
예제 #5
0
파일: test_cc.py 프로젝트: bartosh/pygenie
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
예제 #6
0
파일: test_cc.py 프로젝트: bartosh/pygenie
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
예제 #7
0
파일: test_cc.py 프로젝트: bartosh/pygenie
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
예제 #8
0
파일: test_cc.py 프로젝트: bartosh/pygenie
 def _assert(expected_complexity, code):
     assert measure_complexity(code).flatStats[0][2] == expected_complexity