Skip to content

Commit

Permalink
Upgrade lxml to 5.1.0 (#433)
Browse files Browse the repository at this point in the history
Disables entity expansion.
  • Loading branch information
EnricoMi committed Jan 9, 2024
1 parent e780361 commit 8551547
Show file tree
Hide file tree
Showing 14 changed files with 28 additions and 56 deletions.
2 changes: 1 addition & 1 deletion .github/actions/test/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ runs:
# we only upload the changed files if we can find zip
if which zip
then
(git diff --name-only && git ls-files -o --exclude-standard) | xargs -d "\n" zip changed-expectations.zip
(git diff --name-only && git ls-files -o --exclude-standard) | xargs zip changed-expectations.zip
exit 1
fi
fi
Expand Down
2 changes: 1 addition & 1 deletion composite/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ runs:
continue-on-error: true
with:
path: ${{ steps.os.outputs.pip-cache }}
key: enricomi-publish-action-${{ runner.os }}-${{ runner.arch }}-pip-${{ steps.python.outputs.version }}-fc884bb0b8d89fb24ccb9a84a3d97821
key: enricomi-publish-action-${{ runner.os }}-${{ runner.arch }}-pip-${{ steps.python.outputs.version }}-70a313922fdbeb7398ec60313d908b11

- name: Create virtualenv
id: venv
Expand Down
2 changes: 1 addition & 1 deletion python/requirements-direct.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
humanize==3.14.0
junitparser==3.1.0
lxml==4.9.3
lxml==5.1.0
psutil==5.9.7
PyGithub==2.1.1
2 changes: 1 addition & 1 deletion python/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
humanize==3.14.0
junitparser==3.1.0
future==0.18.3
lxml==4.9.3
lxml==5.1.0
psutil==5.9.7
PyGithub==2.1.1
Deprecated==1.2.14
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1 @@
ParseError: file='files/nunit/nunit3/jenkins/NUnit-sec1752-file.xml', message='Failure to process entity xxe, line 17, column 51 (NUnit-sec1752-file.xml, line 17)', line=None, column=None, exception=XMLSyntaxError('Failure to process entity xxe, line 17, column 51')
ParseError: file='files/nunit/nunit3/jenkins/NUnit-sec1752-file.xml', message="Entity 'xxe' not defined, line 17, column 51 (NUnit-sec1752-file.xml, line 17)", line=None, column=None, exception=XMLSyntaxError("Entity 'xxe' not defined, line 17, column 51")
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
abc
4 changes: 2 additions & 2 deletions python/test/files/nunit/nunit3/jenkins/NUnit-sec1752-file.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE test [
<!ENTITY xxe SYSTEM "__FILEPATH__">
]>
<!ENTITY xxe SYSTEM "NUnit-sec1752-file.txt">
]>
<!--This file represents the results of running a test suite-->
<test-results name="/home/erik/coding/test/nunittests/Tests.dll" total="4" failures="1" not-run="0" date="2007-07-27" time="11:18:43">
<environment nunit-version="2.2.8.0" clr-version="2.0.50727.42" os-version="Unix 2.6.18.4" platform="Unix" cwd="/home/erik/coding/test/nunittests" machine-name="akira.ramfelt.se" user="erik" user-domain="akira.ramfelt.se" />
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1 @@
ParseError: file='files/nunit/nunit3/jenkins/NUnit-sec1752-https.xml', message='Failure to process entity xxe, line 17, column 51 (NUnit-sec1752-https.xml, line 17)', line=None, column=None, exception=XMLSyntaxError('Failure to process entity xxe, line 17, column 51')
ParseError: file='files/nunit/nunit3/jenkins/NUnit-sec1752-https.xml', message="Entity 'xxe' not defined, line 17, column 51 (NUnit-sec1752-https.xml, line 17)", line=None, column=None, exception=XMLSyntaxError("Entity 'xxe' not defined, line 17, column 51")
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE test [
<!ENTITY xxe SYSTEM "https://raw.githubusercontent.com/jenkinsci/nunit-plugin/master/.gitignore">
]>
]>
<!--This file represents the results of running a test suite-->
<test-results name="/home/erik/coding/test/nunittests/Tests.dll" total="4" failures="1" not-run="0" date="2007-07-27" time="11:18:43">
<environment nunit-version="2.2.8.0" clr-version="2.0.50727.42" os-version="Unix 2.6.18.4" platform="Unix" cwd="/home/erik/coding/test/nunittests" machine-name="akira.ramfelt.se" user="erik" user-domain="akira.ramfelt.se" />
Expand Down
65 changes: 18 additions & 47 deletions python/test/test_action_script.py
Original file line number Diff line number Diff line change
Expand Up @@ -1031,28 +1031,15 @@ def test_parse_files(self):
self.assertEqual([], gha.method_calls)

self.assertEqual(145, actual.files)
if Version(sys.version.split(' ')[0]) < Version('3.9.0') and sys.platform.startswith('darwin') and \
(platform.mac_ver()[0].startswith("11.") or platform.mac_ver()[0].startswith("12.")):
# on macOS and below Python 3.9 we see one particular error
self.assertEqual(17, len(actual.errors))
self.assertEqual(731, actual.suites)
self.assertEqual(4109, actual.suite_tests)
self.assertEqual(214, actual.suite_skipped)
self.assertEqual(450, actual.suite_failures)
self.assertEqual(21, actual.suite_errors)
self.assertEqual(7956, actual.suite_time)
self.assertEqual(0, len(actual.suite_details))
self.assertEqual(4085, len(actual.cases))
else:
self.assertEqual(13, len(actual.errors))
self.assertEqual(735, actual.suites)
self.assertEqual(4117, actual.suite_tests)
self.assertEqual(214, actual.suite_skipped)
self.assertEqual(454, actual.suite_failures)
self.assertEqual(21, actual.suite_errors)
self.assertEqual(7957, actual.suite_time)
self.assertEqual(0, len(actual.suite_details))
self.assertEqual(4093, len(actual.cases))
self.assertEqual(17, len(actual.errors))
self.assertEqual(731, actual.suites)
self.assertEqual(4109, actual.suite_tests)
self.assertEqual(214, actual.suite_skipped)
self.assertEqual(450, actual.suite_failures)
self.assertEqual(21, actual.suite_errors)
self.assertEqual(7956, actual.suite_time)
self.assertEqual(0, len(actual.suite_details))
self.assertEqual(4085, len(actual.cases))
self.assertEqual('commit', actual.commit)

with io.StringIO() as string:
Expand All @@ -1066,7 +1053,11 @@ def test_parse_files(self):
"::error::lxml.etree.XMLSyntaxError: Char 0x0 out of allowed range, line 33, column 16",
"::error file=NUnit-issue17521.xml::Error processing result file: Char 0x0 out of allowed range, line 33, column 16 (NUnit-issue17521.xml, line 33)",
"::error::lxml.etree.XMLSyntaxError: attributes construct error, line 5, column 109",
"::error file=NUnit-issue47367.xml::Error processing result file: attributes construct error, line 5, column 109 (NUnit-issue47367.xml, line 5)"
"::error file=NUnit-issue47367.xml::Error processing result file: attributes construct error, line 5, column 109 (NUnit-issue47367.xml, line 5)",
"::error file=NUnit-sec1752-file.xml::Error processing result file: Entity 'xxe' not defined, line 17, column 51 (NUnit-sec1752-file.xml, line 17)",
"::error::lxml.etree.XMLSyntaxError: Entity 'xxe' not defined, line 17, column 51",
"::error file=NUnit-sec1752-https.xml::Error processing result file: Entity 'xxe' not defined, line 17, column 51 (NUnit-sec1752-https.xml, line 17)",
"::error::lxml.etree.XMLSyntaxError: Entity 'xxe' not defined, line 17, column 51",
] * 2 + [
# these occur once, either from FILES and or from *_FILES options
"::error::Exception: File is empty.",
Expand All @@ -1084,14 +1075,6 @@ def test_parse_files(self):
'::error file=malformed-json.json::Error processing result file: Unsupported file format: malformed-json.json',
'::error file=non-json.json::Error processing result file: Unsupported file format: non-json.json',
]
if Version(sys.version.split(' ')[0]) < Version('3.9.0') and sys.platform.startswith('darwin') and \
(platform.mac_ver()[0].startswith("11.") or platform.mac_ver()[0].startswith("12.")):
expected.extend([
'::error::lxml.etree.XMLSyntaxError: Failure to process entity xxe, line 17, column 51',
'::error file=NUnit-sec1752-file.xml::Error processing result file: Failure to process entity xxe, line 17, column 51 (NUnit-sec1752-file.xml, line 17)',
'::error::lxml.etree.XMLSyntaxError: Failure to process entity xxe, line 17, column 51',
'::error file=NUnit-sec1752-https.xml::Error processing result file: Failure to process entity xxe, line 17, column 51 (NUnit-sec1752-https.xml, line 17)',
] * 2)
self.assertEqual(
sorted(expected),
sorted([re.sub(r'file=.*[/\\]', 'file=', re.sub(r'[(]file:.*/', '(', re.sub(r'format: .*[/\\]', 'format: ', line)))
Expand All @@ -1115,12 +1098,7 @@ def test_parse_files_with_suite_details(self):
**options)
actual = parse_files(settings, gha)

if Version(sys.version.split(' ')[0]) < Version('3.9.0') and sys.platform.startswith('darwin') and \
(platform.mac_ver()[0].startswith("11.") or platform.mac_ver()[0].startswith("12.")):
# on macOS (below macOS 13) and Python below 3.9 we see one particular error
self.assertEqual(363, len(actual.suite_details))
else:
self.assertEqual(365, len(actual.suite_details))
self.assertEqual(363, len(actual.suite_details))

def test_parse_files_no_matches(self):
gha = mock.MagicMock()
Expand Down Expand Up @@ -1207,16 +1185,9 @@ def test_main(self):
# Publisher.publish is expected to have been called with these arguments
results, cases, conclusion = m.call_args_list[0].args
self.assertEqual(145, results.files)
if Version(sys.version.split(' ')[0]) < Version('3.9.0') and sys.platform.startswith('darwin') and \
(platform.mac_ver()[0].startswith("11.") or platform.mac_ver()[0].startswith("12.")):
# on macOS and below Python 3.9 we see one particular error
self.assertEqual(731, results.suites)
self.assertEqual(731, len(results.suite_details))
self.assertEqual(1811, len(cases))
else:
self.assertEqual(735, results.suites)
self.assertEqual(735, len(results.suite_details))
self.assertEqual(1811, len(cases))
self.assertEqual(731, results.suites)
self.assertEqual(731, len(results.suite_details))
self.assertEqual(1811, len(cases))
self.assertEqual('failure', conclusion)

def test_main_fork_pr_check_wo_summary(self):
Expand Down

0 comments on commit 8551547

Please sign in to comment.