99
1010class CoverageProcessor :
1111 def __init__ (
12- self , file_path : str , src_file_path : str , coverage_type : Literal ["cobertura" , "lcov" , "jacoco" ]
12+ self ,
13+ file_path : str ,
14+ src_file_path : str ,
15+ coverage_type : Literal ["cobertura" , "lcov" , "jacoco" ],
1316 ):
1417 """
1518 Initializes a CoverageProcessor object.
@@ -136,22 +139,26 @@ def parse_coverage_report_jacoco(self) -> Tuple[list, list, float]:
136139 lines_covered , lines_missed = [], []
137140
138141 package_name , class_name = self .extract_package_and_class_java ()
139- missed , covered = self .parse_missed_covered_lines_jacoco (package_name , class_name )
142+ missed , covered = self .parse_missed_covered_lines_jacoco (
143+ package_name , class_name
144+ )
140145
141146 total_lines = missed + covered
142147 coverage_percentage = (float (covered ) / total_lines ) if total_lines > 0 else 0
143148
144149 return lines_covered , lines_missed , coverage_percentage
145150
146- def parse_missed_covered_lines_jacoco (self , package_name : str , class_name : str ) -> tuple [int , int ]:
147- with open (self .file_path , 'r' ) as file :
151+ def parse_missed_covered_lines_jacoco (
152+ self , package_name : str , class_name : str
153+ ) -> tuple [int , int ]:
154+ with open (self .file_path , "r" ) as file :
148155 reader = csv .DictReader (file )
149156 missed , covered = 0 , 0
150157 for row in reader :
151- if row [' PACKAGE' ] == package_name and row [' CLASS' ] == class_name :
158+ if row [" PACKAGE" ] == package_name and row [" CLASS" ] == class_name :
152159 try :
153- missed = int (row [' LINE_MISSED' ])
154- covered = int (row [' LINE_COVERED' ])
160+ missed = int (row [" LINE_MISSED" ])
161+ covered = int (row [" LINE_COVERED" ])
155162 break
156163 except KeyError as e :
157164 self .logger .error ("Missing expected column in CSV: {e}" )
@@ -160,13 +167,13 @@ def parse_missed_covered_lines_jacoco(self, package_name: str, class_name: str)
160167 return missed , covered
161168
162169 def extract_package_and_class_java (self ):
163- package_pattern = re .compile (r' ^\s*package\s+([\w\.]+)\s*;.*$' )
164- class_pattern = re .compile (r' ^\s*public\s+class\s+(\w+).*' )
170+ package_pattern = re .compile (r" ^\s*package\s+([\w\.]+)\s*;.*$" )
171+ class_pattern = re .compile (r" ^\s*public\s+class\s+(\w+).*" )
165172
166173 package_name = ""
167174 class_name = ""
168175 try :
169- with open (self .src_file_path , 'r' ) as file :
176+ with open (self .src_file_path , "r" ) as file :
170177 for line in file :
171178 if not package_name : # Only match package if not already found
172179 package_match = package_pattern .match (line )
@@ -184,4 +191,4 @@ def extract_package_and_class_java(self):
184191 self .logger .error (f"Error reading file { self .src_file_path } : { e } " )
185192 raise
186193
187- return package_name , class_name
194+ return package_name , class_name
0 commit comments