Skip to content

Commit 999a3f1

Browse files
committed
fixes for python 3.10 support
1 parent 7ce0ea9 commit 999a3f1

File tree

5 files changed

+35
-33
lines changed

5 files changed

+35
-33
lines changed

src/xmlsec/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,7 @@ def _verify(t, keyspec, sig_path=".//{%s}Signature" % NS['ds'], drop_signature=F
311311
raise XMLSigException("No SignatureValue")
312312

313313
log.debug("SignatureValue: {!s}".format(sv))
314+
log.debug("KeySpec: {!s}".format(keyspec))
314315
this_cert = xmlsec.crypto.from_keyspec(keyspec, signature_element=sig)
315316
log.debug("key size: {!s} bits".format(this_cert.keysize))
316317

src/xmlsec/test/case.py

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,35 +5,37 @@
55
__author__ = 'leifj'
66

77
import os
8-
import pkg_resources
98
from defusedxml import lxml
109
from lxml import etree
1110
from six.moves import StringIO
1211
import xmlsec
12+
from importlib_resources import files
1313

1414

1515
class XMLTestDataException(Exception):
1616
pass
1717

1818

1919
class XMLTestData():
20-
def __init__(self, base, name):
21-
self.base = base
22-
self.name = name
20+
def __init__(self, path):
21+
self.path = path
2322
self.data = {}
24-
for fn in pkg_resources.resource_listdir(self.base, self.name):
25-
if fn.endswith(".xml"):
26-
with pkg_resources.resource_stream(self.base, "%s/%s" % (self.name, fn)) as data:
27-
self.data[fn] = data.read()
23+
for fn in self.path.iterdir():
24+
if fn.name.endswith(".xml"):
25+
self.data[fn.name] = fn.read_bytes()
2826

2927
def has_data(self, n):
3028
return n in self.data
3129

3230
def __str__(self):
33-
return "Testcase {}/{}".format(self.base, self.name)
31+
return "Testcase {}".format(self.path)
32+
33+
@property
34+
def name(self):
35+
return self.path.name
3436

3537
def as_buf(self, n):
36-
assert n in self.data, XMLTestDataException("No data named %s in test case %s" % (n, self.name))
38+
assert n in self.data, XMLTestDataException("No data named %s in test case %s" % (n, self))
3739
return self.data[n]
3840

3941
def as_etree(self, n, remove_whitespace=False, remove_comments=False):
@@ -47,8 +49,7 @@ def load_test_data(path=None):
4749
if not path:
4850
return # fool unittest that executes this function
4951
cases = {}
50-
for case_n in pkg_resources.resource_listdir(__name__, path):
51-
if case_n[0] != '.': # ignore hidden files/directories
52-
case = XMLTestData(__name__, os.path.join(path, case_n))
53-
cases[case_n] = case
52+
for case_n in files(__name__).joinpath(path).iterdir():
53+
if case_n.name[0] != '.': # ignore hidden files/directories
54+
cases[case_n.name] = XMLTestData(case_n)
5455
return cases

src/xmlsec/test/sign_verify_test.py

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
import copy
55
import unittest
66
import xmlsec
7-
import pkg_resources
87
from xmlsec.test.case import load_test_data
98
from xmlsec import constants, utils
109
import six
1110
import base64
1211
from . import find_alts, run_cmd
1312
import tempfile
13+
from importlib_resources import files
1414

1515
__author__ = 'ft'
1616

@@ -39,9 +39,9 @@ def _get_all_signatures(t):
3939

4040
class TestSignVerifyXmlSec1(unittest.TestCase):
4141
def setUp(self):
42-
self.datadir = pkg_resources.resource_filename(__name__, 'data')
43-
self.private_keyspec = os.path.join(self.datadir, 'test.key')
44-
self.public_keyspec = os.path.join(self.datadir, 'test.pem')
42+
self.datadir = files(__name__).joinpath('data')
43+
self.private_keyspec = str(self.datadir.joinpath('test.key'))
44+
self.public_keyspec = str(self.datadir.joinpath('test.pem'))
4545
self.cases = load_test_data('data/verifyxmlsec1')
4646
self.tmpf = tempfile.NamedTemporaryFile(delete=False)
4747

@@ -80,38 +80,39 @@ def tearDown(self):
8080
class TestVerify(unittest.TestCase):
8181

8282
def setUp(self):
83-
self.datadir = pkg_resources.resource_filename(__name__, 'data')
84-
self.resource_dir = pkg_resources.resource_filename(__name__, '')
83+
self.datadir = files(__name__).joinpath('data')
84+
self.resource_dir = self.datadir.joinpath('verify')
8585
self.cases = load_test_data('data/verify')
8686

8787
def test_verify_all(self):
8888
for case in self.cases.values():
89-
print(str(case))
90-
public_keyspec = os.path.join(self.resource_dir, case.name, "signer.crt")
89+
public_keyspec = str(self.resource_dir.joinpath(case.name).joinpath("signer.crt"))
9190
res = xmlsec.verify(case.as_etree("in.xml"), public_keyspec)
9291
self.assertTrue(res)
9392

9493
def test_verify_one(self):
9594
case = self.cases['it-connector']
96-
public_keyspec = os.path.join(self.resource_dir, case.name, "signer.crt")
95+
public_keyspec = str(self.resource_dir.joinpath('it-connector').joinpath("signer.crt"))
9796
res = xmlsec.verify(case.as_etree("in.xml"), public_keyspec)
9897
self.assertTrue(res)
9998

10099
def test_verify_pss_mgf1(self):
101100
case = self.cases['eesti']
102-
public_keyspec = os.path.join(self.resource_dir, case.name, "signer.crt")
101+
public_keyspec = str(self.resource_dir.joinpath('eesti').joinpath("signer.crt"))
103102
res = xmlsec.verify(case.as_etree("in.xml"), public_keyspec)
104103
self.assertTrue(res)
105104

106105

107106
class TestSignVerify(unittest.TestCase):
108107

109108
def setUp(self):
110-
self.datadir = pkg_resources.resource_filename(__name__, 'data')
111-
self.private_keyspec = os.path.join(self.datadir, 'test.key')
112-
self.public_keyspec = os.path.join(self.datadir, 'test.pem')
109+
self.datadir = files(__name__).joinpath('data')
110+
self.resource_dir = self.datadir.joinpath('signverify')
111+
self.private_keyspec = str(self.datadir.joinpath('test.key'))
112+
self.public_keyspec = str(self.datadir.joinpath('test.pem'))
113113
self.cases = load_test_data('data/signverify')
114114

115+
115116
def test_sign_verify_SAML_assertion1(self):
116117
"""
117118
Test signing a SAML assertion, and making sure we can verify it.
@@ -431,7 +432,7 @@ def test_mm_with_inner_signature(self):
431432
print("Signed SignatureValue: %s" % (repr(signed_sv)))
432433
print("Expected SignatureValue: %s" % (repr(expected_sv)))
433434

434-
self.assertEquals(digest, expected_digest)
435+
self.assertEqual(digest, expected_digest)
435436
self.assertEqual(signed_sv, expected_sv)
436437

437438
def test_verify_href(self):

src/xmlsec/test/transform_test.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
import pkg_resources
2-
1+
from importlib_resources import files
32
__author__ = 'leifj'
43

54
import unittest
@@ -12,9 +11,8 @@
1211
class TestTransforms(unittest.TestCase):
1312
def setUp(self):
1413
self.cases = {}
15-
for case_n in pkg_resources.resource_listdir(__name__, "data/transform"):
16-
case = XMLTestData(__name__, "data/transform/%s" % case_n)
17-
self.cases[case_n] = case
14+
for case_n in files(__name__).joinpath("data/transform").iterdir():
15+
self.cases[case_n.name] = XMLTestData(case_n)
1816

1917
def test_enveloped1(self):
2018
case = self.cases['enveloped1']

test_requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
importlib_resources

0 commit comments

Comments
 (0)