Exemple #1
0
    def testCompareDocumentPosition(self):
        doc = Document()
        node = doc.createElement('node')
        one = doc.createElement('one')
        two = doc.createTextNode('two')
        three = doc.createElement('three')
        four = doc.createElement('four')
        node.append(one)
        node.append(two)
        node.append(three)
        three.append(four)
        five = doc.createElement('five')

        expected = Node.DOCUMENT_POSITION_FOLLOWING
        rc = one.compareDocumentPosition(four)
        assert rc == expected, '"%s" != "%s"' % (rc, expected)

        expected = Node.DOCUMENT_POSITION_PRECEDING
        rc = four.compareDocumentPosition(one)
        assert rc == expected, '"%s" != "%s"' % (rc, expected)

        expected = Node.DOCUMENT_POSITION_CONTAINED_BY
        rc = node.compareDocumentPosition(four)
        assert rc == expected, '"%s" != "%s"' % (rc, expected)

        expected = Node.DOCUMENT_POSITION_CONTAINS
        rc = four.compareDocumentPosition(node)
        assert rc == expected, '"%s" != "%s"' % (rc, expected)

        expected = Node.DOCUMENT_POSITION_DISCONNECTED
        rc = five.compareDocumentPosition(node)
        assert rc == expected, '"%s" != "%s"' % (rc, expected)
Exemple #2
0
    def testIsSameNode(self):
        doc = Document()
        node = doc.createElement('node')
        assert node.isSameNode(node)

        clone = node.cloneNode()
        assert not node.isSameNode(clone)
Exemple #3
0
    def testSetItem(self):
        doc = Document()
        node = doc.createElement('node')
        one = doc.createElement('one')
        two = doc.createTextNode('two')
        three = doc.createElement('three')
        four = doc.createElement('four')
        five = doc.createElement('five')
        node.appendChild(one)
        node.appendChild(two)
        node.appendChild(three)

        node[1] = four
        assert node[0] is one, '"%s" != "%s"' % (node[0], one)
        assert node[1] is four, '"%s" != "%s"' % (node[1], four)
        assert node[2] is three, '"%s" != "%s"' % (node[2], three)
        assert len(node) == 3, '%s != %s' % (len(node), 3)
        self._checkPositions(node)

        node[2] = five
        assert node[0] is one, '"%s" != "%s"' % (node[0], one)
        assert node[1] is four, '"%s" != "%s"' % (node[1], four)
        assert node[2] is five, '"%s" != "%s"' % (node[2], five)
        assert len(node) == 3, '%s != %s' % (len(node), 3)
        self._checkPositions(node)
Exemple #4
0
    def testHasAttributes(self):
        doc = Document()
        node = doc.createElement('node')
        one = doc.createElement('one')
        assert not node.hasAttributes()

        node.attributes['one'] = one
        assert node.hasAttributes()
Exemple #5
0
 def testIsEqualNode(self):
     doc = Document()
     node = doc.createElement('node')
     one = doc.createElement('one')
     two = doc.createElement('two')
     node.extend([one, two])
     node2 = node.cloneNode(deep=True)
     assert node.isEqualNode(node2)
Exemple #6
0
 def testLastChild(self):
     doc = Document()
     node = doc.createElement('node')
     one = doc.createElement('one')
     two = doc.createElement('two')
     assert node.lastChild is None, '"%s" != None' % node.lastChild
     node.append(one)
     assert node.lastChild is one, '"%s" != "%s"' % (node.lastChild, one)
     node.append(two)
     assert node.lastChild is two, '"%s" != "%s"' % (node.lastChild, two)
     self._checkPositions(node)
Exemple #7
0
 def testConstructor(self):
     """ Passing list of nodes to constructor """
     doc = Document()
     one = doc.createElement('one')
     two = doc.createElement('two')
     three = doc.createElement('three')
     node = doc.createElement('top')
     node.extend([one, two, three])
     expected = [one, two, three]
     for i, item in enumerate(node):
         assert item is expected[i], '"%s" != "%s"' % (item, expected[i])
     self._checkPositions(node)
Exemple #8
0
 def testNormalize(self):
     doc = Document()
     node = doc.createElement('node')
     one = doc.createElement('one')
     two = doc.createTextNode('two')
     three = doc.createTextNode('three')
     four = doc.createTextNode('four')
     node.extend([one, two, three, four])
     node.normalize()
     assert len(node) == 2, '"%s" != "%s"' % (len(node), 2)
     assert node[1] == 'twothreefour', '"%s" != "%s"' % (node[1],
                                                         'twothreefour')
Exemple #9
0
    def testHasChildNodes(self):
        doc = Document()
        node = doc.createElement('node')
        one = doc.createElement('one')
        two = doc.createTextNode('two')

        assert not node.hasChildNodes()

        node.appendChild(one)
        node.appendChild(two)

        assert node.hasChildNodes()
Exemple #10
0
 def testNextSibling(self):
     doc = Document()
     node = doc.createElement('node')
     one = doc.createElement('one')
     two = doc.createTextNode('two')
     three = doc.createElement('three')
     node.append(one)
     node.append(two)
     node.append(three)
     assert two is one.nextSibling, '"%s" != "%s"' % (two, one.nextSibling)
     assert three is two.nextSibling, '"%s" != "%s"' % (three,
                                                        two.nextSibling)
     assert None is three.nextSibling, 'None != "%s"' % three.nextSibling
Exemple #11
0
 def testReplaceChild(self):
     doc = Document()
     node = doc.createElement('node')
     one = doc.createElement('one')
     two = doc.createTextNode('two')
     three = doc.createElement('three')
     node.append(one)
     node.append(two)
     node.replaceChild(three, two)
     assert node[0] is one, '"%s" != "%s"' % (node[0], one)
     assert node[1] is three, '"%s" != "%s"' % (node[1], three)
     assert len(node) == 2, '%s != %s' % (len(node), 2)
     self._checkPositions(node)
Exemple #12
0
    def testCloneNode(self):
        doc = Document()
        one = doc.createElement('one')
        two = doc.createElement('two')
        three = doc.createTextNode('three')
        two.append(three)
        one.append(two)

        res = one.cloneNode(1)
        assert type(res) is type(one), '"%s" != "%s"' % (type(res), type(one))
        assert type(res[0]) is type(one[0])
        assert_that(res, is_(one))
        assert_that(res, is_not(same_instance(one)))
        assert_that(res[0], is_not(same_instance(one[0])))
Exemple #13
0
    def testTextContent(self):
        doc = Document()
        node = doc.createElement('node')
        one = doc.createTextNode('one')
        two = doc.createElement('two')
        three = doc.createTextNode('three')
        four = doc.createTextNode('four')
        node.append(one)
        node.append(two)
        two.extend([three, four])

        res = node.textContent
        expected = 'onethreefour'
        assert res == expected, '"%s" != "%s"' % (res, expected)
Exemple #14
0
 def testPreviousSibling(self):
     doc = Document()
     node = doc.createElement('node')
     one = doc.createElement('one')
     two = doc.createTextNode('two')
     three = doc.createElement('three')
     node.append(one)
     node.append(two)
     node.append(three)
     assert None is one.previousSibling, 'None != "%s"' % one.previousSibling
     assert one is two.previousSibling, '"%s" != "%s"' % (
         one, two.previousSibling)
     assert two is three.previousSibling, '"%s" != "%s"' % (
         two, three.previousSibling)
Exemple #15
0
 def testInsert(self):
     """ Insert into empty node """
     doc = Document()
     one = doc.createElement('one')
     two = doc.createElement('two')
     three = doc.createElement('three')
     node = doc.createElement('top')
     node.insert(0, one)
     node.insert(1, two)
     node.insert(2, three)
     expected = [one, two, three]
     for i, item in enumerate(node):
         assert item is expected[i], '"%s" != "%s"' % (item, expected[i])
     self._checkPositions(node)
Exemple #16
0
 def testInsertBefore(self):
     doc = Document()
     node = doc.createElement('node')
     one = doc.createElement('one')
     two = doc.createTextNode('two')
     three = doc.createElement('three')
     node.append(one)
     node.append(two)
     node.insertBefore(three, two)
     assert node[1] is three, '"%s" != "%s"' % (node[1], three)
     node.insertBefore(three, one)
     assert node[0] is three, '"%s" != "%s"' % (node[0], three)
     assert node[1] is one, '"%s" != "%s"' % (node[1], one)
     assert node[2] is two, '"%s" != "%s"' % (node[2], two)
     self._checkPositions(node)
Exemple #17
0
 def testInsert2(self):
     """ Insert into populated node """
     doc = Document()
     one = doc.createElement('one')
     two = doc.createElement('two')
     three = doc.createElement('three')
     node = doc.createElement('top')
     node.extend([one, two, three])
     i0 = doc.createElement('i0')
     i3 = doc.createTextNode('i3')
     node.insert(0, i0)
     node.insert(3, i3)
     expected = [i0, one, two, i3, three]
     for i, item in enumerate(node):
         assert item is expected[i], '"%s" != "%s"' % (item, expected[i])
     self._checkPositions(node)
Exemple #18
0
    def testAppendChild(self):
        doc = Document()
        node = doc.createElement('node')
        one = doc.createElement('one')
        two = doc.createTextNode('two')
        three = doc.createElement('three')
        node.appendChild(one)
        frag = doc.createDocumentFragment()
        frag.appendChild(two)
        frag.appendChild(three)
        node.appendChild(frag)

        assert node[0] is one, '"%s" != "%s"' % (node[0], one)
        assert node[1] is two, '"%s" != "%s"' % (node[1], two)
        assert node[2] is three, '"%s" != "%s"' % (node[2], three)
        self._checkPositions(node)
Exemple #19
0
    def testPop(self):
        doc = Document()
        node = doc.createElement('node')
        one = doc.createElement('one')
        two = doc.createTextNode('two')
        three = doc.createElement('three')
        node.extend([one, two, three])

        res = node.pop()
        assert res is three, '"%s" != "%s"' % (res, three)
        assert len(node) == 2, '%s != %s' % (len(node), 2)
        self._checkPositions(node)

        res = node.pop(0)
        assert res is one, '"%s" != "%s"' % (res, one)
        assert len(node) == 1, '%s != %s' % (len(node), 1)
        self._checkPositions(node)
Exemple #20
0
    def testRemoveChild(self):
        doc = Document()
        node = doc.createElement('node')
        one = doc.createElement('one')
        two = doc.createTextNode('two')
        three = doc.createElement('three')
        node.append(one)
        node.append(two)

        res = node.removeChild(one)
        assert res is one, '"%s" != "%s"' % (res, one)
        assert len(node) == 1, '%s != %s' % (len(node), 1)
        assert node[0] is two, '"%s" != "%s"' % (node[0], two)
        self._checkPositions(node)

        res = node.removeChild(two)
        assert res is two, '"%s" != "%s"' % (res, two)
        assert len(node) == 0, '%s != %s' % (len(node), 0)
Exemple #21
0
    def testInsert3(self):
        """ Insert document fragment """
        doc = Document()
        node = doc.createElement('node')
        one = doc.createElement('one')
        two = doc.createTextNode('two')
        three = doc.createElement('three')
        four = doc.createElement('four')
        node.appendChild(one)
        node.appendChild(two)
        frag = doc.createDocumentFragment()
        frag.appendChild(three)
        frag.appendChild(four)
        node.insert(1, frag)

        assert node[0] is one, '"%s" != "%s"' % (node[0], one)
        assert node[1] is three, '"%s" != "%s"' % (node[1], three)
        assert node[2] is four, '"%s" != "%s"' % (node[2], four)
        assert node[3] is two, '"%s" != "%s"' % (node[3], two)
        self._checkPositions(node)
Exemple #22
0
    def testAdd(self):
        doc = Document()
        node = doc.createElement('node')
        one = doc.createElement('one')
        two = doc.createTextNode('two')
        node.appendChild(one)
        node.appendChild(two)

        node2 = doc.createElement('node2')
        three = doc.createElement('three')
        four = doc.createElement('four')
        node.appendChild(three)
        node.appendChild(four)

        res = node + node2
        assert isinstance(res, Node), '%s is not a Node' % res
        assert res[0] is one, '"%s" != "%s"' % (res[0], one)
        assert res[1] is two, '"%s" != "%s"' % (res[1], two)
        assert res[2] is three, '"%s" != "%s"' % (res[2], three)
        assert res[3] is four, '"%s" != "%s"' % (res[3], four)
        self._checkPositions(res)
Exemple #23
0
    def testExtend(self):
        doc = Document()
        node = doc.createElement('node')
        one = doc.createElement('one')
        two = doc.createTextNode('two')
        three = doc.createElement('three')
        four = doc.createElement('four')
        five = doc.createElement('five')
        node.appendChild(one)

        node.extend([two, three])
        assert node[0] is one, '"%s" != "%s"' % (node[0], one)
        assert node[1] is two, '"%s" != "%s"' % (node[1], two)
        assert node[2] is three, '"%s" != "%s"' % (node[2], three)
        assert len(node) == 3, '%s != %s' % (len(node), 3)
        self._checkPositions(node)

        node += [four, five]
        assert node[3] is four, '"%s" != "%s"' % (node[3], four)
        assert node[4] is five, '"%s" != "%s"' % (node[4], five)
        assert len(node) == 5, '%s != %s' % (len(node), 5)
        self._checkPositions(node)
Exemple #24
0
 def testOwnerDocument(self):
     doc = Document()
     node = doc.createElement('node')
     one = doc.createElement('one')
     two = doc.createTextNode('two')
     three = doc.createElement('three')
     node.append(one)
     node.append(two)
     node.attributes['three'] = three
     a = Text('a')
     b = Text('b')
     node.attributes['four'] = {'a': a, 'b': 1}
     node.attributes['five'] = [b, 1, 'c']
     assert node.ownerDocument is doc, '"%s" != "%s"' % (node.ownerDocument,
                                                         doc)
     assert one.ownerDocument is doc, '"%s" != "%s"' % (one.ownerDocument,
                                                        doc)
     assert two.ownerDocument is doc, '"%s" != "%s"' % (two.ownerDocument,
                                                        doc)
     assert three.ownerDocument is doc, '"%s" != "%s"' % (
         three.ownerDocument, doc)
     assert a.ownerDocument is doc, '"%s" != "%s"' % (a.ownerDocument, doc)
     assert b.ownerDocument is doc, '"%s" != "%s"' % (b.ownerDocument, doc)
     self._checkPositions(node)
Exemple #25
0
 def testGetSetUserData(self):
     doc = Document()
     node = doc.createElement('node')
     node.setUserData('foo', 'bar')
     res = node.getUserData('foo')
     assert res == 'bar'