Beispiel #1
0
    def test_linear_direct(self):

        tail = X()
        root = Object(A(B(tail)))

        self.assertEqual(qpath(root, 'A/B/X'), [tail])
        self.assertEqual(qpath(root, 'A/C/X'), [])
Beispiel #2
0
    def test_linear_direct(self):

        tail = X()
        root = Object(A(B(tail)))

        self.assertEqual(qpath(root, 'A/B/X'), [tail])
        self.assertEqual(qpath(root, 'A/C/X'), [])
Beispiel #3
0
    def test_attribute_search(self):

        tail = X(name="Do Export Now")
        root = Object(A(B(tail)))

        self.assertEqual(qpath(root, '//[@name() ~i *export*]'), [tail])
        self.assertEqual(qpath(root, '//[@name() ~i *import*]'), [])
Beispiel #4
0
    def test_attribute_search(self):

        tail = X(name="Do Export Now")
        root = Object(A(B(tail)))

        self.assertEqual(qpath(root, '//[@name() ~i *export*]'), [tail])
        self.assertEqual(qpath(root, '//[@name() ~i *import*]'), [])
Beispiel #5
0
    def test_descendant_or_self(self):

        tail = X()
        root = Object(A(B(tail)))

        self.assertEqual(qpath(root, '//X'), [tail])
        self.assertEqual(qpath(root, 'A//X'), [tail])
        self.assertEqual(qpath(root, '//B/X'), [tail])
Beispiel #6
0
    def test_descendant_or_self(self):

        tail = X()
        root = Object(A(B(tail)))

        self.assertEqual(qpath(root, '//X'), [tail])
        self.assertEqual(qpath(root, 'A//X'), [tail])
        self.assertEqual(qpath(root, '//B/X'), [tail])
Beispiel #7
0
    def test_parent(self):

        tail = X()
        root = Object(A(B(tail)))

        self.assertEqual(qpath(root, 'A/../A/B/X'), [tail])
        self.assertEqual(qpath(root, 'A/B/../B/X'), [tail])
        self.assertNotEqual(qpath(root, 'A/B/X/..'), [tail])
Beispiel #8
0
    def test_parent(self):

        tail = X()
        root = Object(A(B(tail)))

        self.assertEqual(qpath(root, 'A/../A/B/X'), [tail])
        self.assertEqual(qpath(root, 'A/B/../B/X'), [tail])
        self.assertNotEqual(qpath(root, 'A/B/X/..'), [tail])
Beispiel #9
0
    def test_modules(self):

        tail = X()
        root = Object(aW(bW(tail)))

        self.assertEqual(qpath(root, 'W/W/X'), [tail])
        self.assertEqual(qpath(root, 'a.W/W/X'), [tail])
        self.assertEqual(qpath(root, 'W/b.W/X'), [tail])
        self.assertEqual(qpath(root, 'W/a.W/X'), [])
Beispiel #10
0
    def test_self(self):

        tail = X()
        root = Object(A(B(tail)))

        self.assertEqual(qpath(root, './A/B/X'), [tail])
        self.assertEqual(qpath(root, 'A/./B/X'), [tail])
        self.assertEqual(qpath(root, 'A/B/./X'), [tail])
        self.assertEqual(qpath(root, 'A/B/X/.'), [tail])
Beispiel #11
0
    def test_self(self):

        tail = X()
        root = Object(A(B(tail)))

        self.assertEqual(qpath(root, './A/B/X'), [tail])
        self.assertEqual(qpath(root, 'A/./B/X'), [tail])
        self.assertEqual(qpath(root, 'A/B/./X'), [tail])
        self.assertEqual(qpath(root, 'A/B/X/.'), [tail])
Beispiel #12
0
    def test_modules(self):

        tail = X()
        root = Object(aW(bW(tail)))

        self.assertEqual(qpath(root, 'W/W/X'), [tail])
        self.assertEqual(qpath(root, 'a.W/W/X'), [tail])
        self.assertEqual(qpath(root, 'W/b.W/X'), [tail])
        self.assertEqual(qpath(root, 'W/a.W/X'), [])
Beispiel #13
0
    def test_pass_globals(self):

        tail = X()
        root = Object(A(B(tail)))

        self.assertEqual(qpath(root, '//[self is target]', dict(target=tail)),
                         [tail])
Beispiel #14
0
    def test_globs(self):

        tail = X()
        root = Object(axZ(ABC(tail)))

        self.assertEqual(qpath(root, 'Z/ABC/X'), [tail])
        self.assertEqual(qpath(root, 'a.x.Z/A/X'), [tail])
        self.assertEqual(qpath(root, 'a.*.Z/B/X'), [tail])
        self.assertEqual(qpath(root, '*.x.Z/C/X'), [tail])
        self.assertEqual(qpath(root, '*.y.Z/ABC/X'), [])
        self.assertEqual(qpath(root, 'Z/A*C/X'), [tail])
        self.assertEqual(qpath(root, 'Z/ABC+/X'), [])
Beispiel #15
0
    def test_globs(self):

        tail = X()
        root = Object(axZ(ABC(tail)))

        self.assertEqual(qpath(root, 'Z/ABC/X'), [tail])
        self.assertEqual(qpath(root, 'a.x.Z/A/X'), [tail])
        self.assertEqual(qpath(root, 'a.*.Z/B/X'), [tail])
        self.assertEqual(qpath(root, '*.x.Z/C/X'), [tail])
        self.assertEqual(qpath(root, '*.y.Z/ABC/X'), [])
        self.assertEqual(qpath(root, 'Z/A*C/X'), [tail])
        self.assertEqual(qpath(root, 'Z/ABC+/X'), [])
Beispiel #16
0
    def test_linear_inheritance(self):

        tail = X()
        root = Object(A(ABC(X())))

        self.assertEqual(qpath(root, 'A/A/X'), [tail])
        self.assertEqual(qpath(root, 'A/B/X'), [tail])
        self.assertEqual(qpath(root, 'A/C/X'), [tail])
        self.assertEqual(qpath(root, 'A/Object/X'), [tail])
        self.assertEqual(qpath(root, 'A/object/X'), [tail])
        self.assertEqual(qpath(root, 'A/X/X'), [])
Beispiel #17
0
    def test_linear_inheritance(self):

        tail = X()
        root = Object(A(ABC(X())))

        self.assertEqual(qpath(root, 'A/A/X'), [tail])
        self.assertEqual(qpath(root, 'A/B/X'), [tail])
        self.assertEqual(qpath(root, 'A/C/X'), [tail])
        self.assertEqual(qpath(root, 'A/Object/X'), [tail])
        self.assertEqual(qpath(root, 'A/object/X'), [tail])
        self.assertEqual(qpath(root, 'A/X/X'), [])
Beispiel #18
0
    def test_ignore_leading_slash(self):

        tail = X()
        root = Object(A(B(tail)))

        self.assertEqual(qpath(root, '/A/B/X'), [tail])
Beispiel #19
0
    def test_pass_globals(self):

        tail = X()
        root = Object(A(B(tail)))

        self.assertEqual(qpath(root, '//[self is target]', dict(target=tail)), [tail])
Beispiel #20
0
    def test_attribute_expr(self):

        tail = X(name="tail")
        root = Object(A(B(tail)))

        self.assertEqual(qpath(root, '//[@name() == "tail"]'), [tail])
Beispiel #21
0
    def test_attribute_expr(self):

        tail = X(name="tail")
        root = Object(A(B(tail)))

        self.assertEqual(qpath(root, '//[@name() == "tail"]'), [tail])
Beispiel #22
0
    def test_ignore_leading_slash(self):

        tail = X()
        root = Object(A(B(tail)))

        self.assertEqual(qpath(root, '/A/B/X'), [tail])