core: fix calls to domish.Element.elements:

domish.Element.elements should be called with namespace and element name as 2 arguments,
but it has been confused in several places with the call to `domish.Element.addElement`
which is often done with a `(namespace, name)` tuple. Unfortunately calling with a tuple
is accepted and doesn't raise any error in `elements`, but this result in a wrong element
returned.

This patch fixes the erroneous calls.
This commit is contained in:
Goffi 2022-07-20 17:12:29 +02:00
commit 8d64157d88
7 changed files with 10 additions and 10 deletions

View file

@ -731,7 +731,7 @@ class FileSharing:
def _getDirectoryMetadataElts(
self, client, elt, file_data):
try:
affiliation_elt = next(elt.elements((NS_FS_AFFILIATION, "affiliation")))
affiliation_elt = next(elt.elements(NS_FS_AFFILIATION, "affiliation"))
except StopIteration:
pass
else:

View file

@ -268,7 +268,7 @@ class Invitation(object):
args = [service, node, item_id, item_elt]
else:
try:
node_data_elt = next(pubsub_elt.elements((NS_INVITATION, "node_data")))
node_data_elt = next(pubsub_elt.elements(NS_INVITATION, "node_data"))
except StopIteration:
raise exceptions.DataError("Bad invitation, ignoring")
namespace = node_data_elt['namespace']

View file

@ -248,7 +248,7 @@ class AttachPlugin:
async def defaultAttach(self, client, data):
await self.uploadFiles(client, data)
# TODO: handle xhtml-im
body_elt = next(data["xml"].elements((C.NS_CLIENT, "body")))
body_elt = next(data["xml"].elements(C.NS_CLIENT, "body"))
attachments = data["extra"][C.MESS_KEY_ATTACHMENTS]
if attachments:
body_links = '\n'.join(a['url'] for a in attachments)

View file

@ -167,7 +167,7 @@ class AESGCM(object):
attachments.clear()
del data["extra"][C.MESS_KEY_ATTACHMENTS]
body_elt = next(data["xml"].elements((C.NS_CLIENT, "body")))
body_elt = next(data["xml"].elements(C.NS_CLIENT, "body"))
for attachment in attachments:
body_elt.addContent(attachment["url"])

View file

@ -966,7 +966,7 @@ class XEP_0060(object):
def cb(iq_elt):
try:
affiliations_elt = next(
iq_elt.pubsub.elements((pubsub.NS_PUBSUB, "affiliations"))
iq_elt.pubsub.elements(pubsub.NS_PUBSUB, "affiliations")
)
except StopIteration:
raise ValueError(
@ -977,7 +977,7 @@ class XEP_0060(object):
try:
return {
e["node"]: e["affiliation"]
for e in affiliations_elt.elements((pubsub.NS_PUBSUB, "affiliation"))
for e in affiliations_elt.elements(pubsub.NS_PUBSUB, "affiliation")
}
except KeyError:
raise ValueError(
@ -1009,7 +1009,7 @@ class XEP_0060(object):
def cb(iq_elt):
try:
affiliations_elt = next(
iq_elt.pubsub.elements((pubsub.NS_PUBSUB_OWNER, "affiliations"))
iq_elt.pubsub.elements(pubsub.NS_PUBSUB_OWNER, "affiliations")
)
except StopIteration:
raise ValueError(
@ -1402,7 +1402,7 @@ class XEP_0060(object):
iq_elt = await request.send(client.xmlstream)
try:
subscriptions_elt = next(
iq_elt.pubsub.elements((pubsub.NS_PUBSUB, "subscriptions"))
iq_elt.pubsub.elements(pubsub.NS_PUBSUB, "subscriptions")
)
except StopIteration:
raise ValueError(

View file

@ -667,7 +667,7 @@ class XEP_0234:
return
file_data = content_data["application_data"]["file_data"]
try:
file_elt = next(elt.elements((NS_JINGLE_FT, "file")))
file_elt = next(elt.elements(NS_JINGLE_FT, "file"))
except StopIteration:
raise exceptions.DataError
algo, file_data["given_file_hash"] = self._hash.parseHashElt(file_elt)

View file

@ -372,7 +372,7 @@ class PubsubSchema(object):
items, metadata = items_data
items_xmlui = []
for item_elt in items:
for x_elt in item_elt.elements((data_form.NS_X_DATA, "x")):
for x_elt in item_elt.elements(data_form.NS_X_DATA, "x"):
form = data_form.Form.fromElement(x_elt)
if form_ns and form.formNamespace != form_ns:
log.debug(