def test_variable_scopes2(self): src = u'''\ s1 { $x: 5; r1: $x; } s2 { r2: $x; } ''' src = textwrap.dedent(src) with self.assertRaises(errors.CSSVarNameError): core.compile_string(src)
def test_variable_expr1(self): src = u'''\ $y: 8; s1 { $x: (5 + $y); r1: $x $y; } s2 { r2: (11 - $y); r3: ($y + $y); } ''' expect = u'''\ s1 { r1: 13 8; } s2 { r2: 3; r3: 16; } ''' src = textwrap.dedent(src) expect = textwrap.dedent(expect) r = core.compile_string(src) self.assertEqual(expect, r)
def test_variable_scopes3(self): src = u'''\ s1 { $x: 6; r1: $x; s2 { $x: 7; r2: $x; s3 { $x: 8; r3: $x; s4 { $x: 9; r4: $x; } r3a: $x; } r2a: $x; } r1a: $x; } ''' expect = u'''\ s1 { r1: 6; r1a: 6; } s1 s2 { r2: 7; r2a: 7; } s1 s2 s3 { r3: 8; r3a: 8; } s1 s2 s3 s4 { r4: 9; } ''' src = textwrap.dedent(src) expect = textwrap.dedent(expect) r = core.compile_string(src) self.assertEqual(expect, r)
def test_variable_scopes1(self): src = u'''\ $x: 8; s1 { $x: 5; r1: $x; } s2 { r2: $x; } ''' expect = u'''\ s1 { r1: 5; } s2 { r2: 8; } ''' src = textwrap.dedent(src) expect = textwrap.dedent(expect) r = core.compile_string(src) self.assertEqual(expect, r)
def test_empty(self): src = u'' r = core.compile_string(src) self.assertEqual(u'', normalize(r))
def test_empty(self): src = u'' expect = u'' r = core.compile_string(src, options={'ENABLE_IMPORTS': False}) self.assertEqual(expect, normalize(r))
def test_division2(self): src = u'selector {a: 8/4+1; }' r = core.compile_string(src) self.assertEqual(u'selector { a: 3; }', normalize(r))
def test_fwdslash(self): src = u'selector {a: 6/3; }' r = core.compile_string(src) self.assertEqual(u'selector { a: 6/3; }', normalize(r))
def test_solve_expr1(self): src = u'selector {a: 1+2+3+4; }' r = core.compile_string(src) self.assertEqual(u'selector { a: 10; }', normalize(r))
def test_nested(self): src = u'outer { inner { rule: value; } }' expect = u'outer {} outer inner { rule: value; }' r = core.compile_string(src) self.assertEqual(expect, normalize(r))
def test_varref3(self): src = u'$x: 8; $y: 3;\nselector { a: $x $y; }' r = core.compile_string(src) self.assertEqual(u'selector { a: 8 3; }', normalize(r))
def test_vardef2(self): src = u'$x: 8 ;' r = core.compile_string(src) self.assertEqual(u'', normalize(r))
def test_unaryop(self): src = u'selector {a: -5; }' r = core.compile_string(src) self.assertEqual(u'selector { a: -5; }', normalize(r))
def test_function(self): src = u'selector {a: func("abc",15) ; }' r = core.compile_string(src) self.assertEqual(u'selector { a: func("abc", 15); }', normalize(r))
def test_not_unicode(self): src = '' with self.assertRaises(ValueError) as cm: core.compile_string(src)
def test_simple(self): src = u'rule {}' r = core.compile_string(src) self.assertEqual(u'rule {}', normalize(r))
def test_varref4(self): src = u'selector { $x: 4; $x: ($x + $x); a: ($x + $x); }' r = core.compile_string(src) self.assertEqual(u'selector { a: 16; }', normalize(r))
def test_values1(self): src = u'rule {a: "string"; b: #aabbcc; c: 1.5; d: 2em; e: 45% }' r = core.compile_string(src) self.assertEqual(u'rule { a: "string"; b: #aabbcc; c: 1.5; d: 2em; e: 45%; }', normalize(r))
def test_syntax_error(self): src = u'selector. class' with self.assertRaises(errors.CSSSyntaxError): core.compile_string(src)
def test_solve_expr3(self): src = u'selector {a: 2*2+3*4; }' r = core.compile_string(src) self.assertEqual(u'selector { a: 16; }', normalize(r))
def test_syntax_error2(self): src = u'selector. class' with self.assertRaises(SystemExit): core.compile_string(src, options={'PROPAGATE_EXCEPTIONS': False})
def test_division1(self): src = u'selector {a: (6/3); }' r = core.compile_string(src) self.assertEqual(u'selector { a: 2; }', normalize(r))
def test_paren4(self): src = u'selector { rule: -(-1); } ' expect = u'selector { rule: -(-1); }' r = core.compile_string(src, options={'ENABLE_SOLVE': False}) self.assertEqual(expect, normalize(r))
def test_selectors(self): src = u'a#b .c, d:not(e) *[fgh], [i~=jk] :m ::n :before {}' exp = u'a#b .c, d:not(e) *[fgh], [i~=jk] :m ::n ::before {}' r = core.compile_string(src) self.assertEqual(exp, normalize(r))
def test_unnecessary_paren3(self): src = u'selector { rule: (5) } ' expect = u'selector { rule: 5; }' r = core.compile_string(src, options={'ENABLE_SOLVE': False}) self.assertEqual(expect, normalize(r))