diff --git a/services/report/languages/cobertura.py b/services/report/languages/cobertura.py index a6e9d2e4e..e725554a3 100644 --- a/services/report/languages/cobertura.py +++ b/services/report/languages/cobertura.py @@ -71,7 +71,9 @@ def from_xml(xml: Element, report_builder_session: ReportBuilderSession) -> None "`create_coverage_file` with pre-fixed path is infallible" ) - for line in _class.iter("line"): + lines = next(_class.iterchildren("lines"), None) + lines = lines.iter("line") if lines else [] + for line in lines: _line = line.attrib ln: str | int = _line["number"] if ln == "undefined": diff --git a/services/report/languages/tests/unit/test_clover.py b/services/report/languages/tests/unit/test_clover.py index e06d1128e..94df76ae4 100644 --- a/services/report/languages/tests/unit/test_clover.py +++ b/services/report/languages/tests/unit/test_clover.py @@ -1,8 +1,8 @@ import datetime -import xml.etree.cElementTree as etree from time import time import pytest +from lxml import etree from helpers.exceptions import ReportExpiredException from services.report.languages import clover @@ -77,7 +77,9 @@ def fixes(path): return path report_builder_session = create_report_builder_session(path_fixer=fixes) - clover.from_xml(etree.fromstring(xml % int(time())), report_builder_session) + clover.from_xml( + etree.fromstring((xml % int(time())).encode()), report_builder_session + ) report = report_builder_session.output_report() processed_report = self.convert_report_to_better_readable(report) @@ -144,4 +146,6 @@ def fixes(path): def test_expired(self, date): report_builder_session = create_report_builder_session() with pytest.raises(ReportExpiredException, match="Clover report expired"): - clover.from_xml(etree.fromstring(xml % date), report_builder_session) + clover.from_xml( + etree.fromstring((xml % date).encode()), report_builder_session + ) diff --git a/services/report/languages/tests/unit/test_cobertura.py b/services/report/languages/tests/unit/test_cobertura.py index ab2d70406..6ec96dac9 100644 --- a/services/report/languages/tests/unit/test_cobertura.py +++ b/services/report/languages/tests/unit/test_cobertura.py @@ -1,9 +1,9 @@ import datetime import os -import xml.etree.cElementTree as etree from time import time import pytest +from lxml import etree from helpers.exceptions import ReportExpiredException from services.path_fixer import PathFixer @@ -534,13 +534,17 @@ def test_use_source_for_filename_if_multiple_sources_first_and_second_works(self def test_empty_filename(): - xml = """ + xml = b""" - + + + - + + + """ diff --git a/services/report/languages/tests/unit/test_csharp.py b/services/report/languages/tests/unit/test_csharp.py index e590855a7..9761e79d0 100644 --- a/services/report/languages/tests/unit/test_csharp.py +++ b/services/report/languages/tests/unit/test_csharp.py @@ -1,11 +1,11 @@ -import xml.etree.cElementTree as etree +from lxml import etree from services.report.languages import csharp from test_utils.base import BaseTestCase from . import create_report_builder_session -xml = """ +xml = b""" diff --git a/services/report/languages/tests/unit/test_csharp2.py b/services/report/languages/tests/unit/test_csharp2.py index 385c2ca3f..6bd0cbdd8 100644 --- a/services/report/languages/tests/unit/test_csharp2.py +++ b/services/report/languages/tests/unit/test_csharp2.py @@ -1,11 +1,11 @@ -import xml.etree.cElementTree as etree +from lxml import etree from services.report.languages import csharp from test_utils.base import BaseTestCase from . import create_report_builder_session -xml = """ +xml = b""" diff --git a/services/report/languages/tests/unit/test_jacoco.py b/services/report/languages/tests/unit/test_jacoco.py index cbf704bc6..46c9fec88 100644 --- a/services/report/languages/tests/unit/test_jacoco.py +++ b/services/report/languages/tests/unit/test_jacoco.py @@ -1,9 +1,9 @@ import datetime import logging -import xml.etree.cElementTree as etree from time import time import pytest +from lxml import etree from pytest import LogCaptureFixture from helpers.exceptions import ReportExpiredException @@ -69,7 +69,9 @@ def fixes(path): report_builder_session = create_report_builder_session(path_fixer=fixes) with self.caplog.at_level(logging.WARNING, logger=jacoco.__name__): - jacoco.from_xml(etree.fromstring(xml % int(time())), report_builder_session) + jacoco.from_xml( + etree.fromstring((xml % int(time())).encode()), report_builder_session + ) assert ( self.caplog.records[-1].message @@ -102,7 +104,9 @@ def fixes(path): current_yaml={"parsers": {"jacoco": {"partials_as_hits": True}}}, path_fixer=fixes, ) - jacoco.from_xml(etree.fromstring(xml % int(time())), report_builder_session) + jacoco.from_xml( + etree.fromstring((xml % int(time())).encode()), report_builder_session + ) report = report_builder_session.output_report() processed_report = self.convert_report_to_better_readable(report) @@ -134,7 +138,7 @@ def test_multi_module(self, module, path): """ % module - ) + ).encode() def fixes(path): if module == "a": @@ -162,4 +166,6 @@ def test_expired(self, date): report_builder_session = create_report_builder_session() with pytest.raises(ReportExpiredException, match="Jacoco report expired"): - jacoco.from_xml(etree.fromstring(xml % date), report_builder_session) + jacoco.from_xml( + etree.fromstring((xml % date).encode()), report_builder_session + ) diff --git a/services/report/languages/tests/unit/test_jetbrainsxml.py b/services/report/languages/tests/unit/test_jetbrainsxml.py index f55d67164..6170e9975 100644 --- a/services/report/languages/tests/unit/test_jetbrainsxml.py +++ b/services/report/languages/tests/unit/test_jetbrainsxml.py @@ -1,4 +1,4 @@ -import xml.etree.cElementTree as etree +from lxml import etree from services.report.languages import jetbrainsxml diff --git a/services/report/languages/tests/unit/test_scoverage.py b/services/report/languages/tests/unit/test_scoverage.py index 44c4decd8..b33647858 100644 --- a/services/report/languages/tests/unit/test_scoverage.py +++ b/services/report/languages/tests/unit/test_scoverage.py @@ -1,4 +1,4 @@ -import xml.etree.cElementTree as etree +from lxml import etree from services.report.languages import scoverage from test_utils.base import BaseTestCase diff --git a/services/report/languages/tests/unit/test_vb.py b/services/report/languages/tests/unit/test_vb.py index fd02c1ce0..dcdc00a33 100644 --- a/services/report/languages/tests/unit/test_vb.py +++ b/services/report/languages/tests/unit/test_vb.py @@ -1,11 +1,11 @@ -import xml.etree.cElementTree as etree +from lxml import etree from services.report.languages import vb from test_utils.base import BaseTestCase from . import create_report_builder_session -txt = """ +txt = b""" diff --git a/services/report/languages/tests/unit/test_vb2.py b/services/report/languages/tests/unit/test_vb2.py index 001de5a9f..6830a5ab5 100644 --- a/services/report/languages/tests/unit/test_vb2.py +++ b/services/report/languages/tests/unit/test_vb2.py @@ -1,4 +1,4 @@ -import xml.etree.cElementTree as etree +from lxml import etree from services.report.languages import vb2 from test_utils.base import BaseTestCase