Mercurial > libervia-backend
comparison tests/unit/test_plugin_xep_0373.py @ 4285:f1d0cde61af7 default tip @
tests (unit): fix tests + black reformatting.
author | Goffi <goffi@goffi.org> |
---|---|
date | Sun, 14 Jul 2024 17:42:53 +0200 |
parents | 4b842c1fb686 |
children |
comparison
equal
deleted
inserted
replaced
4284:3a550e9a2b55 | 4285:f1d0cde61af7 |
---|---|
1 from datetime import datetime, timedelta, timezone | 1 from datetime import datetime, timedelta, timezone |
2 | 2 |
3 import pytest | 3 import pytest |
4 from libervia.backend.core import exceptions | 4 from libervia.backend.core import exceptions |
5 | |
5 try: | 6 try: |
6 from libervia.backend.plugins.plugin_xep_0373 import XEP_0373, NS_OX | 7 from libervia.backend.plugins.plugin_xep_0373 import XEP_0373, NS_OX |
7 except exceptions.MissingModule as e: | 8 except exceptions.MissingModule as e: |
8 pytest.skip(f"Can't test XEP-0373: {e}", allow_module_level=True) | 9 pytest.skip(f"Can't test XEP-0373: {e}", allow_module_level=True) |
9 from libervia.backend.tools.xmpp_datetime import parse_datetime | 10 from libervia.backend.tools.xmpp_datetime import parse_datetime |
18 with pytest.raises(ValueError): | 19 with pytest.raises(ValueError): |
19 XEP_0373.build_signcrypt_element([]) | 20 XEP_0373.build_signcrypt_element([]) |
20 | 21 |
21 | 22 |
22 def test_signcrypt_element() -> None: | 23 def test_signcrypt_element() -> None: |
23 signcrypt_elt, payload_elt = XEP_0373.build_signcrypt_element([ a, b ]) | 24 signcrypt_elt, payload_elt = XEP_0373.build_signcrypt_element([a, b]) |
24 payload_elt.addElement("signcrypt-test-content", content="signcrypt test content") | 25 payload_elt.addElement("signcrypt-test-content", content="signcrypt test content") |
25 | 26 |
26 rpad_elt = next(signcrypt_elt.elements(NS_OX, "rpad")) | 27 rpad_elt = next(signcrypt_elt.elements(NS_OX, "rpad")) |
27 time_elt = next(signcrypt_elt.elements(NS_OX, "time")) | 28 time_elt = next(signcrypt_elt.elements(NS_OX, "time")) |
28 | 29 |
34 | 35 |
35 assert rpad | 36 assert rpad |
36 assert (datetime.now(timezone.utc) - timestamp) < timedelta(seconds=10) | 37 assert (datetime.now(timezone.utc) - timestamp) < timedelta(seconds=10) |
37 assert signcrypt_elt.toXml() == ( | 38 assert signcrypt_elt.toXml() == ( |
38 "<signcrypt xmlns='urn:xmpp:openpgp:0'>" | 39 "<signcrypt xmlns='urn:xmpp:openpgp:0'>" |
39 "<to jid='foo@example.com'/>" | 40 "<to jid='foo@example.com'/>" |
40 "<to jid='bar@example.com'/>" | 41 "<to jid='bar@example.com'/>" |
41 "<payload>" | 42 "<payload>" |
42 "<signcrypt-test-content>signcrypt test content</signcrypt-test-content>" | 43 "<signcrypt-test-content>signcrypt test content</signcrypt-test-content>" |
43 "</payload>" | 44 "</payload>" |
44 "</signcrypt>" | 45 "</signcrypt>" |
45 ) | 46 ) |
46 | 47 |
47 | 48 |
48 def test_sign_element_args() -> None: | 49 def test_sign_element_args() -> None: |
49 with pytest.raises(ValueError): | 50 with pytest.raises(ValueError): |
50 XEP_0373.build_sign_element([], True) | 51 XEP_0373.build_sign_element([], True) |
51 | 52 |
52 | 53 |
53 def test_sign_element_with_rpad() -> None: | 54 def test_sign_element_with_rpad() -> None: |
54 sign_elt, payload_elt = XEP_0373.build_sign_element([ a, b ], True) | 55 sign_elt, payload_elt = XEP_0373.build_sign_element([a, b], True) |
55 payload_elt.addElement("sign-test-content", content="sign test content") | 56 payload_elt.addElement("sign-test-content", content="sign test content") |
56 | 57 |
57 rpad_elt = next(sign_elt.elements(NS_OX, "rpad")) | 58 rpad_elt = next(sign_elt.elements(NS_OX, "rpad")) |
58 time_elt = next(sign_elt.elements(NS_OX, "time")) | 59 time_elt = next(sign_elt.elements(NS_OX, "time")) |
59 | 60 |
65 | 66 |
66 assert rpad | 67 assert rpad |
67 assert (datetime.now(timezone.utc) - timestamp) < timedelta(seconds=10) | 68 assert (datetime.now(timezone.utc) - timestamp) < timedelta(seconds=10) |
68 assert sign_elt.toXml() == ( | 69 assert sign_elt.toXml() == ( |
69 "<sign xmlns='urn:xmpp:openpgp:0'>" | 70 "<sign xmlns='urn:xmpp:openpgp:0'>" |
70 "<to jid='foo@example.com'/>" | 71 "<to jid='foo@example.com'/>" |
71 "<to jid='bar@example.com'/>" | 72 "<to jid='bar@example.com'/>" |
72 "<payload>" | 73 "<payload>" |
73 "<sign-test-content>sign test content</sign-test-content>" | 74 "<sign-test-content>sign test content</sign-test-content>" |
74 "</payload>" | 75 "</payload>" |
75 "</sign>" | 76 "</sign>" |
76 ) | 77 ) |
77 | 78 |
78 | 79 |
79 def test_sign_element_without_rpad() -> None: | 80 def test_sign_element_without_rpad() -> None: |
80 sign_elt, payload_elt = XEP_0373.build_sign_element([ a, b ], False) | 81 sign_elt, payload_elt = XEP_0373.build_sign_element([a, b], False) |
81 payload_elt.addElement("sign-test-content", content="sign test content") | 82 payload_elt.addElement("sign-test-content", content="sign test content") |
82 | 83 |
83 rpad_elt = next(sign_elt.elements(NS_OX, "rpad"), None) | 84 rpad_elt = next(sign_elt.elements(NS_OX, "rpad"), None) |
84 time_elt = next(sign_elt.elements(NS_OX, "time")) | 85 time_elt = next(sign_elt.elements(NS_OX, "time")) |
85 | 86 |
89 | 90 |
90 assert rpad_elt is None | 91 assert rpad_elt is None |
91 assert (datetime.now(timezone.utc) - timestamp) < timedelta(seconds=10) | 92 assert (datetime.now(timezone.utc) - timestamp) < timedelta(seconds=10) |
92 assert sign_elt.toXml() == ( | 93 assert sign_elt.toXml() == ( |
93 "<sign xmlns='urn:xmpp:openpgp:0'>" | 94 "<sign xmlns='urn:xmpp:openpgp:0'>" |
94 "<to jid='foo@example.com'/>" | 95 "<to jid='foo@example.com'/>" |
95 "<to jid='bar@example.com'/>" | 96 "<to jid='bar@example.com'/>" |
96 "<payload>" | 97 "<payload>" |
97 "<sign-test-content>sign test content</sign-test-content>" | 98 "<sign-test-content>sign test content</sign-test-content>" |
98 "</payload>" | 99 "</payload>" |
99 "</sign>" | 100 "</sign>" |
100 ) | 101 ) |
101 | 102 |
102 | 103 |
103 def test_crypt_element_with_recipients() -> None: | 104 def test_crypt_element_with_recipients() -> None: |
104 crypt_elt, payload_elt = XEP_0373.build_crypt_element([ a, b ]) | 105 crypt_elt, payload_elt = XEP_0373.build_crypt_element([a, b]) |
105 payload_elt.addElement("crypt-test-content", content="crypt test content") | 106 payload_elt.addElement("crypt-test-content", content="crypt test content") |
106 | 107 |
107 rpad_elt = next(crypt_elt.elements(NS_OX, "rpad")) | 108 rpad_elt = next(crypt_elt.elements(NS_OX, "rpad")) |
108 time_elt = next(crypt_elt.elements(NS_OX, "time")) | 109 time_elt = next(crypt_elt.elements(NS_OX, "time")) |
109 | 110 |
115 | 116 |
116 assert rpad | 117 assert rpad |
117 assert (datetime.now(timezone.utc) - timestamp) < timedelta(seconds=10) | 118 assert (datetime.now(timezone.utc) - timestamp) < timedelta(seconds=10) |
118 assert crypt_elt.toXml() == ( | 119 assert crypt_elt.toXml() == ( |
119 "<crypt xmlns='urn:xmpp:openpgp:0'>" | 120 "<crypt xmlns='urn:xmpp:openpgp:0'>" |
120 "<to jid='foo@example.com'/>" | 121 "<to jid='foo@example.com'/>" |
121 "<to jid='bar@example.com'/>" | 122 "<to jid='bar@example.com'/>" |
122 "<payload>" | 123 "<payload>" |
123 "<crypt-test-content>crypt test content</crypt-test-content>" | 124 "<crypt-test-content>crypt test content</crypt-test-content>" |
124 "</payload>" | 125 "</payload>" |
125 "</crypt>" | 126 "</crypt>" |
126 ) | 127 ) |
127 | 128 |
128 | 129 |
129 def test_crypt_element_without_recipients() -> None: | 130 def test_crypt_element_without_recipients() -> None: |
141 | 142 |
142 assert rpad | 143 assert rpad |
143 assert (datetime.now(timezone.utc) - timestamp) < timedelta(seconds=10) | 144 assert (datetime.now(timezone.utc) - timestamp) < timedelta(seconds=10) |
144 assert crypt_elt.toXml() == ( | 145 assert crypt_elt.toXml() == ( |
145 "<crypt xmlns='urn:xmpp:openpgp:0'>" | 146 "<crypt xmlns='urn:xmpp:openpgp:0'>" |
146 "<payload>" | 147 "<payload>" |
147 "<crypt-test-content>crypt test content</crypt-test-content>" | 148 "<crypt-test-content>crypt test content</crypt-test-content>" |
148 "</payload>" | 149 "</payload>" |
149 "</crypt>" | 150 "</crypt>" |
150 ) | 151 ) |