def test_custom_output_dir(self):
     try:
         old_output_dir = settings.COMPRESS_OUTPUT_DIR
         settings.COMPRESS_OUTPUT_DIR = 'custom'
         output = u'<script type="text/javascript" src="/media/custom/js/066cd253eada.js"></script>'
         self.assertEqual(output, JsCompressor(self.js).output())
         settings.COMPRESS_OUTPUT_DIR = ''
         output = u'<script type="text/javascript" src="/media/js/066cd253eada.js"></script>'
         self.assertEqual(output, JsCompressor(self.js).output())
         settings.COMPRESS_OUTPUT_DIR = '/custom/nested/'
         output = u'<script type="text/javascript" src="/media/custom/nested/js/066cd253eada.js"></script>'
         self.assertEqual(output, JsCompressor(self.js).output())
     finally:
         settings.COMPRESS_OUTPUT_DIR = old_output_dir
Exemple #2
0
    def setUp(self):
        self.css = """\
<link rel="stylesheet" href="/static/css/one.css" type="text/css" />
<style type="text/css">p { border:5px solid green;}</style>
<link rel="stylesheet" href="/static/css/two.css" type="text/css" />"""
        self.css_node = CssCompressor(self.css)

        self.js = """\
<script src="/static/js/one.js" type="text/javascript"></script>
<script type="text/javascript">obj.value = "value";</script>"""
        self.js_node = JsCompressor(self.js)
Exemple #3
0
 def test_js_output(self):
     def extract_attr(tag):
         if tag.has_attr('async'):
             return 'async'
         if tag.has_attr('defer'):
             return 'defer'
     js_node = JsCompressor(self.js)
     output = [None, 'async', 'defer', None, 'async', None]
     scripts = make_soup(js_node.output()).find_all('script')
     attrs = [extract_attr(s) for s in scripts]
     self.assertEqual(output, attrs)
    def test_js_output(self):
        def extract_attr(tag):
            if tag.has_attr("async"):
                return "async"
            if tag.has_attr("defer"):
                return "defer"

        js_node = JsCompressor(self.js)
        output = [None, "async", "defer", None, "async", None]
        scripts = make_soup(js_node.output()).find_all("script")
        attrs = [extract_attr(s) for s in scripts]
        self.assertEqual(output, attrs)
Exemple #5
0
    def setUp(self):
        settings.COMPRESS_ENABLED = True
        settings.COMPRESS_PRECOMPILERS = {}
        settings.COMPRESS_DEBUG_TOGGLE = 'nocompress'
        self.css = """\
<link rel="stylesheet" href="/media/css/one.css" type="text/css" />
<style type="text/css">p { border:5px solid green;}</style>
<link rel="stylesheet" href="/media/css/two.css" type="text/css" />"""
        self.css_node = CssCompressor(self.css)

        self.js = """\
<script src="/media/js/one.js" type="text/javascript"></script>
<script type="text/javascript">obj.value = "value";</script>"""
        self.js_node = JsCompressor(self.js)
Exemple #6
0
    def setUp(self):
        settings.COMPRESS_ENABLED = True
        self.css = """
        <link rel="stylesheet" href="/media/css/one.css" type="text/css" charset="utf-8">
        <style type="text/css">p { border:5px solid green;}</style>
        <link rel="stylesheet" href="/media/css/two.css" type="text/css" charset="utf-8">
        """
        self.css_node = CssCompressor(self.css)

        self.js = """
        <script src="/media/js/one.js" type="text/javascript" charset="utf-8"></script>
        <script type="text/javascript" charset="utf-8">obj.value = "value";</script>
        """
        self.js_node = JsCompressor(self.js)
 def test_js_output(self):
     def extract_attr(tag):
         if tag.has_attr('async'):
             return 'async'
         if tag.has_attr('defer'):
             return 'defer'
     js_node = JsCompressor(self.js)
     output = [None, 'async', 'defer', None, 'async', None]
     scripts = soup_find_all(js_node.output(), 'script')
     if use_bs4:
         attrs = [extract_attr(i) for i in scripts]
     else:
         attrs = [s.get('async') or s.get('defer') for s in scripts]
     self.assertEqual(output, attrs)
    def setUp(self):
        settings.COMPRESS_ENABLED = True
        settings.COMPRESS_PRECOMPILERS = {}
        self.css = """\
<link rel="stylesheet" href="/media/css/one.css" type="text/css" />
<style type="text/css">p { border:5px solid green;}</style>
<link rel="stylesheet" href="/media/css/one.less" type="text/less" />
<link rel="stylesheet" href="/media/css/two.less" type="text/less" />"""
        self.css_node = CssCompressor(self.css)
        self.css_node.opts = {'group_first': 'true'}

        self.js = """\
<script src="/media/js/one.js" type="text/javascript"></script>
<script type="text/javascript">obj.value = "value";</script>
<script src="/media/js/one.coffee" type="text/coffeescript"></script>
<script src="/media/js/two.coffee" type="text/coffeescript"></script>"""
        self.js_node = JsCompressor(self.js)
Exemple #9
0
 def render_tag(self, context, name, nodelist):
     request = context['request']
     rendered_contents = nodelist.render(context)
     content = request.media_holder[name].render()
     if settings.COMPRESS:
         if name == 'css':
             compressor = CssCompressor(content)
         elif name == 'js':
             compressor = JsCompressor(content)
         output = self.cache_get(compressor.cachekey)
         if output is None:
             try:
                 output = compressor.output()
                 self.cache_set(compressor.cachekey, output)
             except:
                 from traceback import format_exc
                 raise Exception(format_exc())
     else:
         output = content  # no compression
     return '%s\n%s' % (output, rendered_contents)
Exemple #10
0
    def test_js_content(self):
        js_node = JsCompressor(self.js)

        content = js_node.filter_input()
        self.assertEqual(content[0], ';obj = {};')
        self.assertEqual(content[1], ';pollos = {}')
Exemple #11
0
 def test_custom_output_dir3(self):
     output = '<script type="text/javascript" src="/static/custom/nested/js/74e158ccb432.js"></script>'
     self.assertEqual(output, JsCompressor(self.js).output())
Exemple #12
0
 def test_custom_output_dir3(self):
     output = '<script src="/static/custom/nested/js/8a0fed36c317.js"></script>'
     self.assertEqual(output, JsCompressor('js', self.js).output())
 def test_custom_output_dir2(self):
     output = '<script type="text/javascript" src="/static/js/066cd253eada.js"></script>'
     self.assertEqual(output, JsCompressor(self.js).output())