Skip to content

Commit 15d0f52

Browse files
colm29mvantellingen
authored andcommitted
Expand sign timestamp test for different signature digest methods
1 parent b44d732 commit 15d0f52

1 file changed

Lines changed: 26 additions & 2 deletions

File tree

tests/test_wsse_signature.py

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,16 @@
3535

3636

3737
@skip_if_no_xmlsec
38-
def test_sign_timestamp_if_present():
38+
@pytest.mark.parametrize("digest_method,expected_digest_href", DIGEST_METHODS_TESTDATA)
39+
@pytest.mark.parametrize(
40+
"signature_method,expected_signature_href", SIGNATURE_METHODS_TESTDATA
41+
)
42+
def test_sign_timestamp_if_present(
43+
digest_method,
44+
signature_method,
45+
expected_digest_href,
46+
expected_signature_href,
47+
):
3948
envelope = load_xml(
4049
"""
4150
<soap-env:Envelope
@@ -63,8 +72,23 @@ def test_sign_timestamp_if_present():
6372
"""
6473
)
6574

66-
signature.sign_envelope(envelope, KEY_FILE, KEY_FILE)
75+
signature.sign_envelope(
76+
envelope,
77+
KEY_FILE,
78+
KEY_FILE,
79+
None,
80+
signature_method=getattr(xmlsec_installed.Transform, signature_method),
81+
digest_method=getattr(xmlsec_installed.Transform, digest_method),
82+
)
6783
signature.verify_envelope(envelope, KEY_FILE)
84+
digests = envelope.xpath("//ds:DigestMethod", namespaces={"ds": ns.DS})
85+
assert len(digests)
86+
for digest in digests:
87+
assert digest.get("Algorithm") == expected_digest_href
88+
signatures = envelope.xpath("//ds:SignatureMethod", namespaces={"ds": ns.DS})
89+
assert len(signatures)
90+
for sig in signatures:
91+
assert sig.get("Algorithm") == expected_signature_href
6892

6993

7094
@skip_if_no_xmlsec

0 commit comments

Comments
 (0)