コード例 #1
0
ファイル: test_caps115.py プロジェクト: horazont/aioxmpp
    def test_reject_form_with_multiple_different_types(self):
        forms = [forms_xso.Data(type_=forms_xso.DataType.FORM)]

        forms[0].fields.extend([
            forms_xso.Field(
                var="FORM_TYPE",
                values=[
                    "urn:xmpp:dataforms:softwareinfo",
                    "urn:xmpp:dataforms:softwarefoo",
                ]
            ),

            forms_xso.Field(
                var="os_version",
                values=[
                    "10.5.1",
                ]
            ),

            forms_xso.Field(
                var="os",
                values=[
                    "Mac",
                ]
            ),
        ])

        with self.assertRaisesRegex(
                ValueError,
                "form with multiple types"):
            caps115.build_forms_string(forms)
コード例 #2
0
ファイル: test_caps115.py プロジェクト: yurimataev/aioxmpp
    def test_accept_form_with_multiple_identical_types(self):
        forms = [forms_xso.Data(type_=forms_xso.DataType.FORM)]

        forms[0].fields.extend([
            forms_xso.Field(var="FORM_TYPE",
                            values=[
                                "urn:xmpp:dataforms:softwareinfo",
                                "urn:xmpp:dataforms:softwareinfo",
                            ]),
            forms_xso.Field(var="os_version", values=[
                "10.5.1",
            ]),
        ])

        caps115.build_forms_string(forms)
コード例 #3
0
ファイル: test_caps115.py プロジェクト: horazont/aioxmpp
    def test_multiple(self):
        forms = [forms_xso.Data(type_=forms_xso.DataType.FORM),
                 forms_xso.Data(type_=forms_xso.DataType.FORM)]

        forms[0].fields.extend([
            forms_xso.Field(
                var="FORM_TYPE",
                values=[
                    "uri:foo",
                ]
            ),
        ])

        forms[1].fields.extend([
            forms_xso.Field(
                var="FORM_TYPE",
                values=[
                    "uri:bar",
                ]
            ),
        ])

        self.assertEqual(
            b"uri:bar<uri:foo<",
            caps115.build_forms_string(forms)
        )
コード例 #4
0
ファイル: test_caps115.py プロジェクト: horazont/aioxmpp
    def test_value_and_var_escaping(self):
        forms = [forms_xso.Data(type_=forms_xso.DataType.FORM)]
        forms[0].fields.extend([
            forms_xso.Field(
                var="FORM_TYPE",
                values=[
                    "urn:xmpp:<dataforms:softwareinfo",
                ]
            ),

            forms_xso.Field(
                var="os_version",
                values=[
                    "10.&5.1",
                ]
            ),

            forms_xso.Field(
                var="os>",
                values=[
                    "Mac",
                ]
            ),
        ])

        self.assertEqual(
            b"urn:xmpp:&lt;dataforms:softwareinfo<"
            b"os&gt;<Mac<"
            b"os_version<10.&amp;5.1<",
            caps115.build_forms_string(forms)
        )
コード例 #5
0
ファイル: test_caps115.py プロジェクト: yurimataev/aioxmpp
    def test_ignore_form_without_type(self):
        forms = [
            forms_xso.Data(type_=forms_xso.DataType.FORM),
            forms_xso.Data(type_=forms_xso.DataType.FORM)
        ]

        forms[0].fields.extend([
            forms_xso.Field(var="FORM_TYPE", values=[]),
            forms_xso.Field(var="os_version", values=[
                "10.5.1",
            ]),
        ])

        forms[1].fields.extend([
            forms_xso.Field(var="FORM_TYPE",
                            values=[
                                "urn:xmpp:dataforms:softwareinfo",
                            ]),
            forms_xso.Field(var="os_version", values=[
                "10.5.1",
            ]),
            forms_xso.Field(var="os", values=[
                "Mac",
            ]),
        ])

        self.assertEqual(
            b"urn:xmpp:dataforms:softwareinfo<"
            b"os<Mac<"
            b"os_version<10.5.1<", caps115.build_forms_string(forms))
コード例 #6
0
ファイル: test_caps115.py プロジェクト: yurimataev/aioxmpp
    def test_xep_form(self):
        forms = [forms_xso.Data(type_=forms_xso.DataType.FORM)]
        forms[0].fields.extend([
            forms_xso.Field(var="FORM_TYPE",
                            values=[
                                "urn:xmpp:dataforms:softwareinfo",
                            ]),
            forms_xso.Field(var="os_version", values=[
                "10.5.1",
            ]),
            forms_xso.Field(var="os", values=[
                "Mac",
            ]),
            forms_xso.Field(var="ip_version", values=[
                "ipv4",
                "ipv6",
            ]),
            forms_xso.Field(var="software", values=[
                "Psi",
            ]),
            forms_xso.Field(var="software_version", values=[
                "0.11",
            ]),
        ])

        self.assertEqual(
            b"urn:xmpp:dataforms:softwareinfo<"
            b"ip_version<ipv4<ipv6<"
            b"os<Mac<"
            b"os_version<10.5.1<"
            b"software<Psi<"
            b"software_version<0.11<", caps115.build_forms_string(forms))
コード例 #7
0
ファイル: test_caps115.py プロジェクト: horazont/aioxmpp
    def test_xep_form(self):
        forms = [forms_xso.Data(type_=forms_xso.DataType.FORM)]
        forms[0].fields.extend([
            forms_xso.Field(
                var="FORM_TYPE",
                values=[
                    "urn:xmpp:dataforms:softwareinfo",
                ]
            ),

            forms_xso.Field(
                var="os_version",
                values=[
                    "10.5.1",
                ]
            ),

            forms_xso.Field(
                var="os",
                values=[
                    "Mac",
                ]
            ),

            forms_xso.Field(
                var="ip_version",
                values=[
                    "ipv4",
                    "ipv6",
                ]
            ),

            forms_xso.Field(
                var="software",
                values=[
                    "Psi",
                ]
            ),

            forms_xso.Field(
                var="software_version",
                values=[
                    "0.11",
                ]
            ),
        ])

        self.assertEqual(
            b"urn:xmpp:dataforms:softwareinfo<"
            b"ip_version<ipv4<ipv6<"
            b"os<Mac<"
            b"os_version<10.5.1<"
            b"software<Psi<"
            b"software_version<0.11<",
            caps115.build_forms_string(forms)
        )
コード例 #8
0
ファイル: test_caps115.py プロジェクト: yurimataev/aioxmpp
    def test_reject_form_with_multiple_different_types(self):
        forms = [forms_xso.Data(type_=forms_xso.DataType.FORM)]

        forms[0].fields.extend([
            forms_xso.Field(var="FORM_TYPE",
                            values=[
                                "urn:xmpp:dataforms:softwareinfo",
                                "urn:xmpp:dataforms:softwarefoo",
                            ]),
            forms_xso.Field(var="os_version", values=[
                "10.5.1",
            ]),
            forms_xso.Field(var="os", values=[
                "Mac",
            ]),
        ])

        with self.assertRaisesRegex(ValueError, "form with multiple types"):
            caps115.build_forms_string(forms)
コード例 #9
0
ファイル: test_caps115.py プロジェクト: horazont/aioxmpp
    def test_accept_form_with_multiple_identical_types(self):
        forms = [forms_xso.Data(type_=forms_xso.DataType.FORM)]

        forms[0].fields.extend([
            forms_xso.Field(
                var="FORM_TYPE",
                values=[
                    "urn:xmpp:dataforms:softwareinfo",
                    "urn:xmpp:dataforms:softwareinfo",
                ]
            ),

            forms_xso.Field(
                var="os_version",
                values=[
                    "10.5.1",
                ]
            ),
        ])

        caps115.build_forms_string(forms)
コード例 #10
0
ファイル: test_caps115.py プロジェクト: horazont/aioxmpp
    def test_ignore_form_without_type(self):
        forms = [forms_xso.Data(type_=forms_xso.DataType.FORM),
                 forms_xso.Data(type_=forms_xso.DataType.FORM)]

        forms[0].fields.extend([
            forms_xso.Field(
                var="FORM_TYPE",
                values=[
                ]
            ),

            forms_xso.Field(
                var="os_version",
                values=[
                    "10.5.1",
                ]
            ),
        ])

        forms[1].fields.extend([
            forms_xso.Field(
                var="FORM_TYPE",
                values=[
                    "urn:xmpp:dataforms:softwareinfo",
                ]
            ),

            forms_xso.Field(
                var="os_version",
                values=[
                    "10.5.1",
                ]
            ),

            forms_xso.Field(
                var="os",
                values=[
                    "Mac",
                ]
            ),
        ])

        self.assertEqual(
            b"urn:xmpp:dataforms:softwareinfo<"
            b"os<Mac<"
            b"os_version<10.5.1<",
            caps115.build_forms_string(forms)
        )
コード例 #11
0
ファイル: test_caps115.py プロジェクト: yurimataev/aioxmpp
    def test_value_and_var_escaping(self):
        forms = [forms_xso.Data(type_=forms_xso.DataType.FORM)]
        forms[0].fields.extend([
            forms_xso.Field(var="FORM_TYPE",
                            values=[
                                "urn:xmpp:<dataforms:softwareinfo",
                            ]),
            forms_xso.Field(var="os_version", values=[
                "10.&5.1",
            ]),
            forms_xso.Field(var="os>", values=[
                "Mac",
            ]),
        ])

        self.assertEqual(
            b"urn:xmpp:&lt;dataforms:softwareinfo<"
            b"os&gt;<Mac<"
            b"os_version<10.&amp;5.1<", caps115.build_forms_string(forms))
コード例 #12
0
ファイル: test_caps115.py プロジェクト: yurimataev/aioxmpp
    def test_multiple(self):
        forms = [
            forms_xso.Data(type_=forms_xso.DataType.FORM),
            forms_xso.Data(type_=forms_xso.DataType.FORM)
        ]

        forms[0].fields.extend([
            forms_xso.Field(var="FORM_TYPE", values=[
                "uri:foo",
            ]),
        ])

        forms[1].fields.extend([
            forms_xso.Field(var="FORM_TYPE", values=[
                "uri:bar",
            ]),
        ])

        self.assertEqual(b"uri:bar<uri:foo<",
                         caps115.build_forms_string(forms))