__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

www-data@216.73.216.10: ~ $
# Copyright (c) Twisted Matrix Laboratories.
# See LICENSE for details.


from twisted.trial import unittest
from twisted.words.xish import xpath
from twisted.words.xish.domish import Element
from twisted.words.xish.xpath import XPathQuery
from twisted.words.xish.xpathparser import SyntaxError  # type: ignore[attr-defined]


class XPathTests(unittest.TestCase):
    def setUp(self) -> None:
        # Build element:
        # <foo xmlns='testns' attrib1='value1' attrib3="user@host/resource">
        #     somecontent
        #     <bar>
        #        <foo>
        #         <gar>DEF</gar>
        #        </foo>
        #     </bar>
        #     somemorecontent
        #     <bar attrib2="value2">
        #        <bar>
        #          <foo/>
        #          <gar>ABC</gar>
        #        </bar>
        #     <bar/>
        #     <bar attrib4='value4' attrib5='value5'>
        #        <foo/>
        #        <gar>JKL</gar>
        #     </bar>
        #     <bar attrib4='value4' attrib5='value4'>
        #        <foo/>
        #        <gar>MNO</gar>
        #     </bar>
        #     <bar attrib4='value4' attrib5='value6' attrib6='á'>
        #         <quux>☃</quux>
        #     </bar>
        # </foo>
        self.e = Element(("testns", "foo"))
        self.e["attrib1"] = "value1"
        self.e["attrib3"] = "user@host/resource"
        self.e.addContent("somecontent")
        self.bar1 = self.e.addElement("bar")
        self.subfoo = self.bar1.addElement("foo")
        self.gar1 = self.subfoo.addElement("gar")
        self.gar1.addContent("DEF")
        self.e.addContent("somemorecontent")
        self.bar2 = self.e.addElement("bar")
        self.bar2["attrib2"] = "value2"
        self.bar3 = self.bar2.addElement("bar")
        self.subfoo2 = self.bar3.addElement("foo")
        self.gar2 = self.bar3.addElement("gar")
        self.gar2.addContent("ABC")
        self.bar4 = self.e.addElement("bar")
        self.bar5 = self.e.addElement("bar")
        self.bar5["attrib4"] = "value4"
        self.bar5["attrib5"] = "value5"
        self.subfoo3 = self.bar5.addElement("foo")
        self.gar3 = self.bar5.addElement("gar")
        self.gar3.addContent("JKL")
        self.bar6 = self.e.addElement("bar")
        self.bar6["attrib4"] = "value4"
        self.bar6["attrib5"] = "value4"
        self.subfoo4 = self.bar6.addElement("foo")
        self.gar4 = self.bar6.addElement("gar")
        self.gar4.addContent("MNO")
        self.bar7 = self.e.addElement("bar")
        self.bar7["attrib4"] = "value4"
        self.bar7["attrib5"] = "value6"
        self.bar7["attrib6"] = "á"
        self.quux = self.bar7.addElement("quux")
        self.quux.addContent("\N{SNOWMAN}")

    def test_staticMethods(self) -> None:
        """
        Test basic operation of the static methods.
        """
        self.assertEqual(xpath.matches("/foo/bar", self.e), True)
        self.assertEqual(
            xpath.queryForNodes("/foo/bar", self.e),
            [self.bar1, self.bar2, self.bar4, self.bar5, self.bar6, self.bar7],
        )
        self.assertEqual(xpath.queryForString("/foo", self.e), "somecontent")
        self.assertEqual(
            xpath.queryForStringList("/foo", self.e), ["somecontent", "somemorecontent"]
        )

    def test_locationFooBar(self) -> None:
        """
        Test matching foo with child bar.
        """
        xp = XPathQuery("/foo/bar")
        self.assertEqual(xp.matches(self.e), 1)

    def test_locationFooBarFoo(self) -> None:
        """
        Test finding foos at the second level.
        """
        xp = XPathQuery("/foo/bar/foo")
        self.assertEqual(xp.matches(self.e), 1)
        self.assertEqual(
            xp.queryForNodes(self.e), [self.subfoo, self.subfoo3, self.subfoo4]
        )

    def test_locationNoBar3(self) -> None:
        """
        Test not finding bar3.
        """
        xp = XPathQuery("/foo/bar3")
        self.assertEqual(xp.matches(self.e), 0)

    def test_locationAllChilds(self) -> None:
        """
        Test finding childs of foo.
        """
        xp = XPathQuery("/foo/*")
        self.assertEqual(xp.matches(self.e), True)
        self.assertEqual(
            xp.queryForNodes(self.e),
            [self.bar1, self.bar2, self.bar4, self.bar5, self.bar6, self.bar7],
        )

    def test_attribute(self) -> None:
        """
        Test matching foo with attribute.
        """
        xp = XPathQuery("/foo[@attrib1]")
        self.assertEqual(xp.matches(self.e), True)

    def test_attributeWithValueAny(self) -> None:
        """
        Test find nodes with attribute having value.
        """
        xp = XPathQuery("/foo/*[@attrib2='value2']")
        self.assertEqual(xp.matches(self.e), True)
        self.assertEqual(xp.queryForNodes(self.e), [self.bar2])

    def test_locationWithValueUnicode(self) -> None:
        """
        Nodes' attributes can be matched with non-ASCII values.
        """
        xp = XPathQuery("/foo/*[@attrib6='á']")
        self.assertEqual(xp.matches(self.e), True)
        self.assertEqual(xp.queryForNodes(self.e), [self.bar7])

    def test_namespaceFound(self) -> None:
        """
        Test matching node with namespace.
        """
        xp = XPathQuery("/foo[@xmlns='testns']/bar")
        self.assertEqual(xp.matches(self.e), 1)

    def test_namespaceNotFound(self) -> None:
        """
        Test not matching node with wrong namespace.
        """
        xp = XPathQuery("/foo[@xmlns='badns']/bar2")
        self.assertEqual(xp.matches(self.e), 0)

    def test_attributeWithValue(self) -> None:
        """
        Test matching node with attribute having value.
        """
        xp = XPathQuery("/foo[@attrib1='value1']")
        self.assertEqual(xp.matches(self.e), 1)

    def test_queryForString(self) -> None:
        """
        queryforString on absolute paths returns their first CDATA.
        """
        xp = XPathQuery("/foo")
        self.assertEqual(xp.queryForString(self.e), "somecontent")

    def test_queryForStringList(self) -> None:
        """
        queryforStringList on absolute paths returns all their CDATA.
        """
        xp = XPathQuery("/foo")
        self.assertEqual(
            xp.queryForStringList(self.e), ["somecontent", "somemorecontent"]
        )

    def test_queryForStringListAnyLocation(self) -> None:
        """
        queryforStringList on relative paths returns all their CDATA.
        """
        xp = XPathQuery("//foo")
        self.assertEqual(
            xp.queryForStringList(self.e), ["somecontent", "somemorecontent"]
        )

    def test_queryForNodes(self) -> None:
        """
        Test finding nodes.
        """
        xp = XPathQuery("/foo/bar")
        self.assertEqual(
            xp.queryForNodes(self.e),
            [self.bar1, self.bar2, self.bar4, self.bar5, self.bar6, self.bar7],
        )

    def test_textCondition(self) -> None:
        """
        Test matching a node with given text.
        """
        xp = XPathQuery("/foo[text() = 'somecontent']")
        self.assertEqual(xp.matches(self.e), True)

    def test_textConditionUnicode(self) -> None:
        """
        A node can be matched by text with non-ascii code points.
        """
        xp = XPathQuery("//*[text()='\N{SNOWMAN}']")
        self.assertEqual(xp.matches(self.e), True)
        self.assertEqual(xp.queryForNodes(self.e), [self.quux])

    def test_textNotOperator(self) -> None:
        """
        Test for not operator.
        """
        xp = XPathQuery("/foo[not(@nosuchattrib)]")
        self.assertEqual(xp.matches(self.e), True)

    def test_anyLocationAndText(self) -> None:
        """
        Test finding any nodes named gar and getting their text contents.
        """
        xp = XPathQuery("//gar")
        self.assertEqual(xp.matches(self.e), True)
        self.assertEqual(
            xp.queryForNodes(self.e), [self.gar1, self.gar2, self.gar3, self.gar4]
        )
        self.assertEqual(xp.queryForStringList(self.e), ["DEF", "ABC", "JKL", "MNO"])

    def test_anyLocation(self) -> None:
        """
        Test finding any nodes named bar.
        """
        xp = XPathQuery("//bar")
        self.assertEqual(xp.matches(self.e), True)
        self.assertEqual(
            xp.queryForNodes(self.e),
            [
                self.bar1,
                self.bar2,
                self.bar3,
                self.bar4,
                self.bar5,
                self.bar6,
                self.bar7,
            ],
        )

    def test_anyLocationQueryForString(self) -> None:
        """
        L{XPathQuery.queryForString} should raise a L{NotImplementedError}
        for any location.
        """
        xp = XPathQuery("//bar")
        self.assertRaises(NotImplementedError, xp.queryForString, None)

    def test_andOperator(self) -> None:
        """
        Test boolean and operator in condition.
        """
        xp = XPathQuery("//bar[@attrib4='value4' and @attrib5='value5']")
        self.assertEqual(xp.matches(self.e), True)
        self.assertEqual(xp.queryForNodes(self.e), [self.bar5])

    def test_orOperator(self) -> None:
        """
        Test boolean or operator in condition.
        """
        xp = XPathQuery("//bar[@attrib5='value4' or @attrib5='value5']")
        self.assertEqual(xp.matches(self.e), True)
        self.assertEqual(xp.queryForNodes(self.e), [self.bar5, self.bar6])

    def test_booleanOperatorsParens(self) -> None:
        """
        Test multiple boolean operators in condition with parens.
        """
        xp = XPathQuery(
            """//bar[@attrib4='value4' and
                                 (@attrib5='value4' or @attrib5='value6')]"""
        )
        self.assertEqual(xp.matches(self.e), True)
        self.assertEqual(xp.queryForNodes(self.e), [self.bar6, self.bar7])

    def test_booleanOperatorsNoParens(self) -> None:
        """
        Test multiple boolean operators in condition without parens.
        """
        xp = XPathQuery(
            """//bar[@attrib5='value4' or
                                 @attrib5='value5' or
                                 @attrib5='value6']"""
        )
        self.assertEqual(xp.matches(self.e), True)
        self.assertEqual(xp.queryForNodes(self.e), [self.bar5, self.bar6, self.bar7])

    def test_badXPathNoClosingBracket(self) -> None:
        """
        A missing closing bracket raises a SyntaxError.

        This test excercises the most common failure mode.
        """
        exc = self.assertRaises(SyntaxError, XPathQuery, """//bar[@attrib1""")
        self.assertTrue(
            exc.msg.startswith("Trying to find one of"),
            ("SyntaxError message '%s' doesn't start with " "'Trying to find one of'")
            % exc.msg,
        )

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
__init__.py File 14 B 0644
test_basechat.py File 2.45 KB 0644
test_basesupport.py File 2.93 KB 0644
test_domish.py File 18.94 KB 0644
test_irc.py File 103.25 KB 0644
test_irc_service.py File 9.81 KB 0644
test_ircsupport.py File 10.48 KB 0644
test_jabberclient.py File 16.16 KB 0644
test_jabbercomponent.py File 13.58 KB 0644
test_jabbererror.py File 11.26 KB 0644
test_jabberjid.py File 6.91 KB 0644
test_jabberjstrports.py File 945 B 0644
test_jabbersasl.py File 8.95 KB 0644
test_jabbersaslmechanisms.py File 5.92 KB 0644
test_jabberxmlstream.py File 44.04 KB 0644
test_jabberxmppstringprep.py File 5.36 KB 0644
test_service.py File 27.99 KB 0644
test_tap.py File 2.36 KB 0644
test_xishutil.py File 9.11 KB 0644
test_xmlstream.py File 5.92 KB 0644
test_xmpproutertap.py File 2.39 KB 0644
test_xpath.py File 10.56 KB 0644
Filemanager