Пример #1
0
    def test_nested_pseudos(self):
        sobjs = Selector.parse(':not(:not(1))')

        self.assertEqual(len(sobjs), 1)
        self.assertEqual(len(sobjs[0].pseudos), 1)
        self.assertEqual(sobjs[0].pseudos[0].name, 'not')
        self.assertEqual(sobjs[0].pseudos[0].value, ':not(1)')
Пример #2
0
    def test_composed_selector(self):
        sobjs = Selector.parse('class.foo.bar')

        self.assertEqual(len(sobjs), 1)
        self.assertIsInstance(sobjs[0], Selector)
        self.assertEqual(sobjs[0].typ, 'class')
        self.assertEqual(sobjs[0].classes, ['foo', 'bar'])
Пример #3
0
    def test_pseudo_empty(self):
        sobjs = Selector.parse(':not()')

        self.assertEqual(len(sobjs), 1)
        self.assertEqual(len(sobjs[0].pseudos), 1)
        self.assertEqual(sobjs[0].pseudos[0].name, 'not')
        self.assertEqual(sobjs[0].pseudos[0].value, '')
Пример #4
0
    def test_nonchild_selector(self):
        sobjs = Selector.parse('class def')

        self.assertEqual(len(sobjs), 1)
        self.assertEqual(sobjs[0].name, 'class')
        self.assertIsNotNone(sobjs[0].next_selector)

        self.assertEqual(sobjs[0].next_selector.name, 'def')
Пример #5
0
    def test_attr_in_pseudo(self):
        sobjs = Selector.parse(':not([name=1])')

        self.assertEqual(len(sobjs), 1)
        self.assertEqual(len(sobjs[0].attrs), 0)
        self.assertEqual(len(sobjs[0].pseudos), 1)
        self.assertEqual(sobjs[0].pseudos[0].name, 'not')
        self.assertEqual(sobjs[0].pseudos[0].value, '[name=1]')
Пример #6
0
    def test_attrs_whitespace(self):
        sobjs = Selector.parse('[ name = 1 ]')

        self.assertEqual(len(sobjs), 1)
        self.assertEqual(len(sobjs[0].attrs), 1)
        self.assertEqual(sobjs[0].attrs[0].lft, 'name')
        self.assertEqual(sobjs[0].attrs[0].op, '=')
        self.assertEqual(sobjs[0].attrs[0].rgt, '1')
Пример #7
0
    def test_attrs_empty(self):
        sobjs = Selector.parse('[name!=]')

        self.assertEqual(len(sobjs), 1)
        self.assertEqual(len(sobjs[0].attrs), 1)
        self.assertEqual(sobjs[0].attrs[0].lft, 'name')
        self.assertEqual(sobjs[0].attrs[0].op, '!=')
        self.assertEqual(sobjs[0].attrs[0].rgt, '')
Пример #8
0
    def test_compound_pseudos(self):
        sobjs = Selector.parse(':not(1):not(2)')

        self.assertEqual(len(sobjs), 1)
        self.assertEqual(len(sobjs[0].pseudos), 2)
        self.assertEqual(sobjs[0].pseudos[0].name, 'not')
        self.assertEqual(sobjs[0].pseudos[0].value, '1')
        self.assertEqual(sobjs[0].pseudos[1].name, 'not')
        self.assertEqual(sobjs[0].pseudos[1].value, '2')
Пример #9
0
    def test_child_selector(self):
        sobjs = Selector.parse('class > def')

        self.assertEqual(len(sobjs), 1)
        self.assertIsInstance(sobjs[0], Selector)
        self.assertEqual(sobjs[0].name, 'class')
        self.assertIsNotNone(sobjs[0].next_selector)

        self.assertEqual(sobjs[0].next_selector.name, 'def')
        self.assertEqual(sobjs[0].next_selector.combinator, Selector.CHILD)
Пример #10
0
    def test_deep_attrs(self):
        sobjs = Selector.parse('[name=1] > [name=2]')

        self.assertEqual(len(sobjs), 1)
        self.assertEqual(len(sobjs[0].attrs), 1)
        self.assertEqual(sobjs[0].attrs[0].lft, 'name')
        self.assertEqual(sobjs[0].attrs[0].op, '=')
        self.assertEqual(sobjs[0].attrs[0].rgt, '1')
        self.assertEqual(sobjs[0].next_selector.attrs[0].lft, 'name')
        self.assertEqual(sobjs[0].next_selector.attrs[0].op, '=')
        self.assertEqual(sobjs[0].next_selector.attrs[0].rgt, '2')
Пример #11
0
    def test_deep_selector(self):
        sobjs = Selector.parse('class > def foo > bar')

        self.assertEqual(len(sobjs), 1)
        self.assertEqual(sobjs[0].name, 'class')
        self.assertEqual(sobjs[0].next_selector.name, 'def')
        self.assertEqual(sobjs[0].next_selector.next_selector.name, 'foo')
        self.assertEqual(
            sobjs[0].next_selector.next_selector.next_selector.name, 'bar')

        self.assertEqual(sobjs[0].next_selector.name, 'def')
        self.assertEqual(sobjs[0].next_selector.combinator, Selector.CHILD)
Пример #12
0
    def test_type_selector(self):
        sobjs = Selector.parse('class')

        self.assertEqual(len(sobjs), 1)
        self.assertEqual(sobjs[0].name, 'class')
Пример #13
0
    def test_class_selector(self):
        sobjs = Selector.parse('.class > def')

        self.assertEqual(len(sobjs), 1)
        self.assertEqual(sobjs[0].name, '.class')
Пример #14
0
    def test_multiple_selectors(self):
        sobjs = Selector.parse('class, def')

        self.assertEqual(len(sobjs), 2)
        self.assertEqual(sobjs[0].name, 'class')
        self.assertEqual(sobjs[1].name, 'def')