Exemple #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)')
Exemple #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'])
Exemple #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, '')
Exemple #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')
Exemple #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]')
Exemple #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')
Exemple #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, '')
Exemple #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')
Exemple #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)
Exemple #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')
Exemple #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)
Exemple #12
0
    def test_type_selector(self):
        sobjs = Selector.parse('class')

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

        self.assertEqual(len(sobjs), 1)
        self.assertEqual(sobjs[0].name, '.class')
Exemple #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')