Fix: compressor.filter.base Nullify self.type for Specializations to filter_type

This commit is contained in:
Enrique Paredes
2014-02-14 19:29:57 +01:00
parent 431e28ba90
commit 2651014ecc
3 changed files with 40 additions and 6 deletions

View File

@@ -26,7 +26,7 @@ class FilterBase(object):
""" """
def __init__(self, content, filter_type=None, filename=None, verbose=0, def __init__(self, content, filter_type=None, filename=None, verbose=0,
charset=None): charset=None):
self.type = filter_type self.type = filter_type or getattr(self, 'type', None)
self.content = content self.content = content
self.verbose = verbose or settings.COMPRESS_VERBOSE self.verbose = verbose or settings.COMPRESS_VERBOSE
self.logger = logger self.logger = logger

View File

@@ -7,11 +7,11 @@ import sys
def main(): def main():
p = optparse.OptionParser() p = optparse.OptionParser()
p.add_option('-f', '--file', action="store", p.add_option('-f', '--file', action="store",
type="string", dest="filename", type="string", dest="filename",
help="File to read from, defaults to stdin", default=None) help="File to read from, defaults to stdin", default=None)
p.add_option('-o', '--output', action="store", p.add_option('-o', '--output', action="store",
type="string", dest="outfile", type="string", dest="outfile",
help="File to write to, defaults to stdout", default=None) help="File to write to, defaults to stdout", default=None)
options, arguments = p.parse_args() options, arguments = p.parse_args()

View File

@@ -17,6 +17,10 @@ from compressor.filters.base import CompilerFilter
from compressor.filters.cssmin import CSSMinFilter from compressor.filters.cssmin import CSSMinFilter
from compressor.filters.css_default import CssAbsoluteFilter from compressor.filters.css_default import CssAbsoluteFilter
from compressor.filters.template import TemplateFilter from compressor.filters.template import TemplateFilter
from compressor.filters.closure import ClosureCompilerFilter
from compressor.filters.csstidy import CSSTidyFilter
from compressor.filters.yuglify import YUglifyCSSFilter, YUglifyJSFilter
from compressor.filters.yui import YUICSSFilter, YUIJSFilter
from compressor.tests.test_base import test_dir from compressor.tests.test_base import test_dir
@@ -30,7 +34,6 @@ class CssTidyTestCase(TestCase):
color: black; color: black;
} }
""") """)
from compressor.filters.csstidy import CSSTidyFilter
ret = CSSTidyFilter(content).input() ret = CSSTidyFilter(content).input()
self.assertIsInstance(ret, six.text_type) self.assertIsInstance(ret, six.text_type)
self.assertEqual( self.assertEqual(
@@ -301,3 +304,34 @@ class TemplateTestCase(TestCase):
#footer {font-weight: bold;} #footer {font-weight: bold;}
""" """
self.assertEqual(input, TemplateFilter(content).input()) self.assertEqual(input, TemplateFilter(content).input())
class SpecializedFiltersTest(TestCase):
"""
Test to check the Specializations of filters.
"""
def test_closure_filter(self):
filter = ClosureCompilerFilter('')
self.assertEqual(filter.options, (('binary', six.text_type('java -jar compiler.jar')), ('args', six.text_type(''))))
def test_csstidy_filter(self):
filter = CSSTidyFilter('')
self.assertEqual(filter.options, (('binary', six.text_type('csstidy')), ('args', six.text_type('--template=highest'))))
def test_yuglify_filters(self):
filter = YUglifyCSSFilter('')
self.assertEqual(filter.command, '{binary} {args} --type=css')
self.assertEqual(filter.options, (('binary', six.text_type('yuglify')), ('args', six.text_type('--terminal'))))
filter = YUglifyJSFilter('')
self.assertEqual(filter.command, '{binary} {args} --type=js')
self.assertEqual(filter.options, (('binary', six.text_type('yuglify')), ('args', six.text_type('--terminal'))))
def test_yui_filters(self):
filter = YUICSSFilter('')
self.assertEqual(filter.command, '{binary} {args} --type=css')
self.assertEqual(filter.options, (('binary', six.text_type('java -jar yuicompressor.jar')), ('args', six.text_type(''))))
filter = YUIJSFilter('', verbose=1)
self.assertEqual(filter.command, '{binary} {args} --type=js --verbose')
self.assertEqual(filter.options, (('binary', six.text_type('java -jar yuicompressor.jar')), ('args', six.text_type('')), ('verbose', 1)))