class TestMedia(unittest.TestCase): def setUp(self): self.css = '''@media screen { @font-face { font-family: 'Cantarell'; font-style: normal; font-weight: normal; src: local('Cantarell'), \ url('http://themes.googleusercontent.com/font?kit=tGao7ZPoloMxQHxq-2oxNA') \ format('truetype'); } }''' self.parsed = Rules(code=self.css) parse(less=self.css, parent=self.parsed) def test_is_the_same(self): self.assertEqual(str(self.parsed), self.css) def test_media_selector(self): self.assertEqual(self.parsed.get_selectors(media=['screen']), {'@font-face': {'src': '''local('Cantarell'), \ url('http://themes.googleusercontent.com/font?kit=tGao7ZPoloMxQHxq-2oxNA') \ format('truetype')''', 'font-weight': 'normal', 'font-style': 'normal', 'font-family': "'Cantarell'"}}) def test_media_selectors(self): self.assertEqual(self.parsed.get_media_selectors(), (None, ['screen'])) def test_none_selector(self): self.assertEqual(self.parsed.get_selectors(), {})
def __init__(self, parent, code, name, params, contents): Rules.__init__(self, parent=parent, code=code, contents=contents) self.__name = name self.__params = list() for param in params: param = Param(code=param["code"], name=param["name"], value=param["value"], parent=self) self.__params.append(param)
def setUp(self): less = '''@var: red; #page { @var: white; #header { color: @var; // white } }''' self.parsed = Rules(code=less) parse(less=less, parent=self.parsed)
def setUp(self): self.css = '''@media screen { @font-face { font-family: 'Cantarell'; font-style: normal; font-weight: normal; src: local('Cantarell'), \ url('http://themes.googleusercontent.com/font?kit=tGao7ZPoloMxQHxq-2oxNA') \ format('truetype'); } }''' self.parsed = Rules(code=self.css) parse(less=self.css, parent=self.parsed)
def __init__(self, parent, code, name, params, contents): Rules.__init__(self, parent=parent, code=code, contents=contents) self.__name = name self.__params = list() for param in params: param = Param(code=param['code'], name=param['name'], value=param['value'], parent=self) self.__params.append(param)
def compile(less, path=None): css = '' parsed = Rules(code=less) parse(less, path=path, parent=parsed) return unicode(parsed)
def setUp(self): less = ''' @constant: 10px; * { @constant: 20px; a { @constant: 30px; } }''' self.parsed = Rules(code=less) parse(less=less, parent=self.parsed)
class TestMedia(unittest.TestCase): def setUp(self): self.css = '''@media screen { @font-face { font-family: 'Cantarell'; font-style: normal; font-weight: normal; src: local('Cantarell'), \ url('http://themes.googleusercontent.com/font?kit=tGao7ZPoloMxQHxq-2oxNA') \ format('truetype'); } }''' self.parsed = Rules(code=self.css) parse(less=self.css, parent=self.parsed) def test_is_the_same(self): self.assertEqual(str(self.parsed), self.css) def test_media_selector(self): self.assertEqual( self.parsed.get_selectors(media=['screen']), { '@font-face': { 'src': '''local('Cantarell'), \ url('http://themes.googleusercontent.com/font?kit=tGao7ZPoloMxQHxq-2oxNA') \ format('truetype')''', 'font-weight': 'normal', 'font-style': 'normal', 'font-family': "'Cantarell'" } }) def test_media_selectors(self): self.assertEqual(self.parsed.get_media_selectors(), (None, ['screen'])) def test_none_selector(self): self.assertEqual(self.parsed.get_selectors(), {})
class TestConstantScope(unittest.TestCase): def setUp(self): less = '''@var: red; #page { @var: white; #header { color: @var; // white } }''' self.parsed = Rules(code=less) parse(less=less, parent=self.parsed) def get_page(self): for item in self.parsed.items: try: if item.names == ['#page']: return item except AttributeError: pass else: self.fail() def get_header(self): for item in self.get_page().items: try: if item.names == ['#page #header']: return item except AttributeError: pass else: self.fail() def test_root_value(self): self.assertEqual(self.parsed.get_value('@var'), 'red') def test_page_value(self): self.assertEqual(self.get_page().get_value('@var'), 'white') def test_header_value(self): self.assertEqual(self.get_header().get_value('@var'), 'white')
def parse_less(self, less): parent = Rules(code=less) parse(less=less, parent=parent)
def __init__(self, parent, code, names=None, contents=None): Rules.__init__(self, parent=parent, code=code, contents=contents) self.__names = names
def setUp(self): self.css = '@media screen { }' self.parsed = Rules(code=self.css) parse(less=self.css, parent=self.parsed)
def setUp(self): self.css = '@import "test_file" screen;' self.parsed = Rules(code=self.css) parse(less=self.css, parent=self.parsed)
def setUp(self): self.css = '@import url("fancyfonts.css") screen;' self.parsed = Rules(code=self.css) parse(less=self.css, parent=self.parsed)
def __init__(self, parent, code, media, contents=None): Rules.__init__(self, parent=parent, code=code, contents=contents) self.__media = media