def test_get_filter(): """Test filter resolving. """ # By name - here using one of the builtins. assert isinstance(get_filter('jsmin'), Filter) assert_raises(ValueError, get_filter, 'notafilteractually') # By class. class MyFilter(Filter): pass assert isinstance(get_filter(MyFilter), MyFilter) assert_raises(ValueError, get_filter, object()) # Passing an instance doesn't do anything. f = MyFilter() assert id(get_filter(f)) == id(f) # Passing a lone callable will give us a a filter back as well. assert hasattr(get_filter(lambda: None), 'output') # Arguments passed to get_filter are used for instance creation. assert get_filter('sass', scss=True).use_scss == True # However, this is not allowed when a filter instance is passed directly, # or a callable object. assert_raises(AssertionError, get_filter, f, 'test') assert_raises(AssertionError, get_filter, lambda: None, 'test')
def test_sass_import(self): """Test referencing other files in sass. """ sass = get_filter('sass', debug_info=False) self.create_files({'import-test.sass': '''@import foo.sass'''}) Bundle('import-test.sass', filters=sass, output='out.css').build() assert self.get('out.css') == """/* line 1, ./foo.sass */\nh1 {\n font-family: "Verdana";\n color: white;\n}\n"""
def test_get_filter(): """Test filter resolving. """ # By name - here using one of the builtins. assert isinstance(get_filter('jsmin'), Filter) assert_raises(ValueError, get_filter, 'notafilteractually') # By class. class MyFilter(Filter): pass assert isinstance(get_filter(MyFilter), MyFilter) assert_raises(ValueError, get_filter, object()) # Passing an instance doesn't do anything. f = MyFilter() assert id(get_filter(f)) == id(f) # Passing a lone callable will give us a a filter back as well. assert hasattr(get_filter(lambda: None), 'apply')
def _set_filters(self, value): """Filters may be specified in a variety of different ways, including by giving their name; we need to make sure we resolve everything to an actual filter instance. """ if value is None: self._filters = () return if isinstance(value, basestring): filters = value.split(',') elif isinstance(value, (list, tuple)): filters = value else: filters = [value] self._filters = [get_filter(f) for f in filters]
def _set_filters(self, value): """Filters may be specified in a variety of different ways, including by giving their name; we need to make sure we resolve everything to an actual filter instance. """ if value is None: self._filters = None return if isinstance(value, basestring): filters = value.split(',') elif isinstance(value, (list, tuple)): filters = value else: filters = [value] self._filters = [get_filter(f) for f in filters]
def test_scss(self): # SCSS is a CSS superset, should be able to compile the CSS file just fine scss = get_filter('scss', debug_info=False) Bundle('foo.css', filters=scss, output='out.css').build() assert self.get('out.css') == """/* line 2 */\nh1 {\n font-family: "Verdana";\n color: #FFFFFF;\n}\n"""
def test_sass(self): sass = get_filter('sass', debug_info=False) Bundle('foo.sass', filters=sass, output='out.css').build() assert self.get('out.css') == """/* line 1 */\nh1 {\n font-family: "Verdana";\n color: white;\n}\n"""