Philipp Hörist pushed to branch master at gajim / python-nbxmpp
Commits:
d0ecc851 by Philipp Hörist at 2025-10-22T09:13:56+02:00
feat: VCard4: Add get_parameter() method for easier access
- - - - -
2 changed files:
- nbxmpp/modules/vcard4.py
- test/unit/test_vcard4.py
Changes:
=====================================
nbxmpp/modules/vcard4.py
=====================================
@@ -309,6 +309,9 @@ class Parameters:
def values(self) -> ValuesView[Parameter | MultiParameter | TzParameter]:
return self._parameters.values()
+ def get_parameter(self, name: str) -> Parameter | MultiParameter |
TzParameter:
+ return self._parameters[name]
+
def get_types(self) -> set[str]:
parameter = self._parameters.get("type")
if parameter is None:
=====================================
test/unit/test_vcard4.py
=====================================
@@ -1,5 +1,6 @@
import unittest
+from nbxmpp.modules.vcard4 import LanguageParameter
from nbxmpp.modules.vcard4 import VCard
from nbxmpp.simplexml import Node
@@ -11,7 +12,14 @@ class TestVCard4(unittest.TestCase):
node="""
<vcard xmlns="urn:ietf:params:xml:ns:vcard-4.0">
<fn><text>Peter Saint-Andre</text></fn>
-
<n><surname>Saint-Andre</surname><given>Peter</given><additional></additional></n>
+ <n>
+ <parameters>
+ <language><language-tag>fr</language-tag></language>
+ </parameters>
+ <surname>Saint-Andre</surname>
+ <given>Peter</given>
+ <additional></additional>
+ </n>
<nickname><text>stpeter</text></nickname>
<nickname><text>psa</text></nickname>
<photo><uri>https://stpeter.im/images/stpeter_oscon.jpg</uri></photo>
@@ -110,6 +118,13 @@ class TestVCard4(unittest.TestCase):
nickname_props = list(filter(lambda p: p.name == "nickname", props))
self.assertEqual(len(nickname_props), 2)
+ n_props = list(filter(lambda p: p.name == "n", props))
+ self.assertEqual(len(n_props), 1)
+ n_prop = n_props[0]
+ lang_param = n_prop.parameters.get_parameter("language")
+ assert isinstance(lang_param, LanguageParameter)
+ self.assertEqual(lang_param.value, "fr")
+
# Preserve unsupported elements
node = vcard.to_node()
self.assertEqual(node.getTagData("unsupported-element"), "unsupported")
View it on GitLab:
https://dev.gajim.org/gajim/python-nbxmpp/-/commit/d0ecc8514a28b6164d9aa36d5200a3fe4e7f983b
--
View it on GitLab:
https://dev.gajim.org/gajim/python-nbxmpp/-/commit/d0ecc8514a28b6164d9aa36d5200a3fe4e7f983b
You're receiving this email because of your account on dev.gajim.org.
_______________________________________________
Commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]