annotate tests/unit/test_plugin_xep_0339.py @ 4306:94e0968987cd

plugin XEP-0033: code modernisation, improve delivery, data validation: - Code has been rewritten using Pydantic models and `async` coroutines for data validation and cleaner element parsing/generation. - Delivery has been completely rewritten. It now works even if server doesn't support multicast, and send to local multicast service first. Delivering to local multicast service first is due to bad support of XEP-0033 in server (notably Prosody which has an incomplete implementation), and the current impossibility to detect if a sub-domain service handles fully multicast or only for local domains. This is a workaround to have a good balance between backward compatilibity and use of bandwith, and to make it work with the incoming email gateway implementation (the gateway will only deliver to entities of its own domain). - disco feature checking now uses `async` corountines. `host` implementation still use Deferred return values for compatibility with legacy code. rel 450
author Goffi <goffi@goffi.org>
date Thu, 26 Sep 2024 16:12:01 +0200
parents 4b842c1fb686
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4068
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
1 #!/usr/bin/env python3
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
2
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
3 # Libervia: an XMPP client
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
4 # Copyright (C) 2009-2023 Jérôme Poisson (goffi@goffi.org)
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
5
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
6 # This program is free software: you can redistribute it and/or modify
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
7 # it under the terms of the GNU Affero General Public License as published by
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
8 # the Free Software Foundation, either version 3 of the License, or
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
9 # (at your option) any later version.
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
10
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
11 # This program is distributed in the hope that it will be useful,
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
14 # GNU Affero General Public License for more details.
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
15
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
16 # You should have received a copy of the GNU Affero General Public License
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
17 # along with this program. If not, see <http://www.gnu.org/licenses/>.
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
18
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
19
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
20 from twisted.words.xish import domish
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
21
4071
4b842c1fb686 refactoring: renamed `sat` package to `libervia.backend`
Goffi <goffi@goffi.org>
parents: 4068
diff changeset
22 from libervia.backend.plugins.plugin_xep_0339 import NS_JINGLE_RTP_SSMA, XEP_0339
4b842c1fb686 refactoring: renamed `sat` package to `libervia.backend`
Goffi <goffi@goffi.org>
parents: 4068
diff changeset
23 from libervia.backend.tools.xml_tools import parse
4068
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
24
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
25
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
26 class TestXEP0339:
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
27 def test_parse_sdp(self, host):
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
28 """'ssrc' and 'ssrc-group' attributes in SDP are correctly parsed"""
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
29 xep_0339 = XEP_0339(host)
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
30
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
31 call_data = {}
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
32 metadata = {}
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
33 media_type = "video"
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
34 application_data = {}
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
35 transport_data = {}
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
36
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
37 # SDP: a=ssrc:123 label:stream_label
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
38 attribute = "ssrc"
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
39 parts = ["123", "label:stream_label"]
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
40
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
41 xep_0339._parse_sdp_a_trigger(
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
42 attribute,
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
43 parts,
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
44 call_data,
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
45 metadata,
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
46 media_type,
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
47 application_data,
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
48 transport_data,
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
49 )
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
50
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
51 assert application_data == {"ssrc": {123: {"label": "stream_label"}}}
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
52
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
53 application_data = {}
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
54
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
55 # SDP: a=ssrc-group:FID 123 456
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
56 attribute = "ssrc-group"
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
57 parts = ["FID", "123", "456"]
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
58
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
59 xep_0339._parse_sdp_a_trigger(
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
60 attribute,
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
61 parts,
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
62 call_data,
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
63 metadata,
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
64 media_type,
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
65 application_data,
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
66 transport_data,
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
67 )
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
68
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
69 assert application_data == {"ssrc-group": {"FID": [123, 456]}}
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
70
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
71 def test_generate_sdp(self, host):
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
72 """'ssrc' and 'ssrc-group' attributes in SDP are correctly generated"""
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
73 xep_0339 = XEP_0339(host)
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
74
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
75 media_data = {
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
76 "ssrc": {123: {"label": "stream_label"}},
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
77 "ssrc-group": {"FID": [123, 456]},
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
78 }
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
79 sdp_lines = []
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
80
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
81 xep_0339._generate_sdp_content_trigger(
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
82 {}, True, 1, {}, sdp_lines, {}, "", media_data, "video"
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
83 )
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
84
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
85 assert sdp_lines == ["a=ssrc:123 label:stream_label", "a=ssrc-group:FID 123 456"]
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
86
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
87 def test_parse_description(self, host):
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
88 """'<source>' and '<ssrc-group>' elements are correctly parsed"""
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
89 xep_0339 = XEP_0339(host)
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
90
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
91 media_data = {}
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
92 raw_xml = """
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
93 <description xmlns='urn:xmpp:jingle:apps:rtp:1' media='audio'>
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
94 <source xmlns='urn:xmpp:jingle:apps:rtp:ssma:0' ssrc='1'>
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
95 <parameter name='cname' value='some_name'/>
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
96 <parameter name='msid' value='media'/>
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
97 </source>
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
98 <ssrc-group xmlns='urn:xmpp:jingle:apps:rtp:ssma:0' semantics='FEC'>
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
99 <source ssrc='2'/>
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
100 <source ssrc='3'/>
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
101 </ssrc-group>
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
102 </description>
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
103 """
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
104 desc_elt = parse(raw_xml)
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
105
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
106 xep_0339._parse_description_trigger(desc_elt, media_data)
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
107
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
108 assert media_data == {
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
109 "msid": "media",
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
110 "ssrc": {
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
111 1: {
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
112 "cname": "some_name",
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
113 "msid": "media",
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
114 }
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
115 },
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
116 "ssrc-group": {"FEC": [2, 3]},
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
117 }
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
118
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
119 def test_generate_description(self, host):
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
120 """'<source>' and '<ssrc-group>' elements are correctly generated"""
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
121 xep_0339 = XEP_0339(host)
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
122
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
123 media_data = {
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
124 "ssrc": {
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
125 1: {
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
126 "cname": "some_name",
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
127 "msid": "media",
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
128 }
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
129 },
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
130 "ssrc-group": {"FEC": [2, 3]},
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
131 }
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
132 session = {}
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
133 desc_elt = domish.Element((None, "description"))
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
134
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
135 xep_0339._build_description_trigger(desc_elt, media_data, session)
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
136
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
137 source_elts = list(desc_elt.elements(NS_JINGLE_RTP_SSMA, "source"))
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
138 assert len(source_elts) == 1
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
139 source_elt = source_elts[0]
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
140 assert source_elt["ssrc"] == "1"
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
141 param_elts = list(source_elt.elements(NS_JINGLE_RTP_SSMA, "parameter"))
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
142 assert len(param_elts) == 2
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
143 assert param_elts[0]["name"] == "cname"
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
144 assert param_elts[0]["value"] == "some_name"
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
145 assert param_elts[1]["name"] == "msid"
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
146 assert param_elts[1]["value"] == "media"
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
147
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
148 ssrc_group_elts = list(desc_elt.elements(NS_JINGLE_RTP_SSMA, "ssrc-group"))
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
149 assert len(ssrc_group_elts) == 1
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
150 ssrc_group_elt = ssrc_group_elts[0]
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
151 assert ssrc_group_elt["semantics"] == "FEC"
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
152 ssrc_ids = [
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
153 int(source_elt["ssrc"])
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
154 for source_elt in ssrc_group_elt.elements(NS_JINGLE_RTP_SSMA, "source")
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
155 ]
5241267a92b3 tests (units): tests for plugin XEP-0339:
Goffi <goffi@goffi.org>
parents:
diff changeset
156 assert ssrc_ids == [2, 3]