File: test_coverup_55.py

package info (click to toggle)
scalene 1.5.51-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 15,528 kB
  • sloc: cpp: 22,930; python: 13,403; javascript: 11,769; ansic: 817; makefile: 196; sh: 45
file content (41 lines) | stat: -rw-r--r-- 1,287 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# file scalene/scalene_analysis.py:136-202
# lines [139, 140, 141, 142, 144, 146, 147, 149, 151, 152, 153, 154, 157, 158, 160, 161, 162, 163, 164, 165, 166, 168, 169, 170, 171, 172, 173, 176, 177, 181, 182, 186, 188, 189, 194, 196, 198, 199, 200, 202]
# branches ['146->157', '146->160', '160->161', '160->162', '162->exit', '162->163', '177->exit', '177->181', '181->177', '181->182', '182->186', '182->187', '187->194', '187->196', '199->200', '199->202']

import pytest
from scalene.scalene_analysis import ScaleneAnalysis
import ast

@pytest.fixture
def cleanup():
    # Fixture to perform cleanup after tests
    yield
    # No cleanup actions needed for this test

def test_find_outermost_loop(cleanup):
    source_code = """
class MyClass:
    def my_method(self):
        for i in range(10):
            if i % 2 == 0:
                with open('file.txt', 'w') as f:
                    f.write(str(i))
            else:
                pass
    """

    expected_regions = {
        1: (1, 1),
        2: (2, 9),
        3: (3, 9),
        4: (4, 9),
        5: (4, 9),
        6: (4, 9),
        7: (4, 9),
        8: (4, 9),
        9: (4, 9),
        10: (10, 10),
    }

    regions = ScaleneAnalysis.find_outermost_loop(source_code)
    assert regions == expected_regions