Esempio n. 1
0
 def test_no_source_maps_override(self):
     """Source maps not produced when environment variable overides compile options"""
     config = dict(entry=self.entry, output=self.output)
     os.environ['SPHINX_SASS_SOURCE_MAPS'] = '0'
     app = self.get_sphinx_app()
     compile_sass_config(app, config)
     _, css = parse_css(self.output, raw=True)
     self.assertNotIn('sourceMappingURL', css)
     del os.environ['SPHINX_SASS_SOURCE_MAPS']
Esempio n. 2
0
    def test_multiple_configs(self):
        """Multiple configs creates multiple outputs."""
        entry1 = os.path.join(self.srcdir, 'main1.scss')
        output1 = 'main1.css'
        entry2 = os.path.join(self.srcdir, 'main2.scss')
        output2 = 'main2.css'

        configs = [
            dict(entry=entry1, output=output1),
            dict(entry=entry2,
                 output=output2,
                 compile_options=dict(source_map_embed=True))
        ]

        self.create_file(entry1,
                         contents='.document { h1, h2 { color: red; } }')
        self.create_file(entry2,
                         contents='.document { h1, h2 { color: green; } }')

        conf_py = make_conf_py(extensions=['sphinx_sass'],
                               sass_configs=configs)
        self.create_file(os.path.join(self.srcdir, 'conf.py'),
                         contents=conf_py)
        app = self.get_sphinx_app(confdir=self.srcdir)

        run_sass(app, None)

        selectors = ['.document h1', '.document h2']

        rules, css = parse_css(os.path.join(self.outdir, '_static', output1),
                               raw=True)
        self.assertNotIn('sourceMappingURL', css)
        self.assertEqual(len(rules), 2)
        for selector in selectors:
            self.assertIn(selector, rules)
            self.assertDictEqual(rules[selector], {'color': 'red'})

        rules, css = parse_css(os.path.join(self.outdir, '_static', output2),
                               raw=True)
        self.assertIn('sourceMappingURL', css)
        self.assertEqual(len(rules), 2)
        for selector in selectors:
            self.assertIn(selector, rules)
            self.assertDictEqual(rules[selector], {'color': 'green'})
Esempio n. 3
0
    def test_css_emited(self):
        """CSS created for valid SCSS."""
        css, srcmap = compile_sass(self.entry)

        rules = parse_css(css)
        self.assertEqual(len(rules), 2)
        for selector in self.selectors:
            self.assertIn(selector, rules)
            self.assertDictEqual(rules[selector], {'color': 'red'})
        self.assertFalse(srcmap)
Esempio n. 4
0
 def test_external_source_maps_config(self):
     """Check external source maps produced using config option"""
     config = dict(entry=self.entry, output=self.output, source_map='file')
     app = self.get_sphinx_app()
     compile_sass_config(app, config)
     _, css = parse_css(self.output, raw=True)
     self.assertIn('sourceMappingURL', css)
     self.assertTrue(
         os.path.exists(
             os.path.join(os.path.dirname(self.output), 'main.css.map')))
Esempio n. 5
0
    def test_embedded_source_map_config(self):
        """Check embeded source map produced using config option"""
        config = dict(entry=self.entry, output=self.output, source_map='embed')

        app = self.get_sphinx_app()
        compile_sass_config(app, config)
        rules, css = parse_css(self.output, raw=True)
        self.assertIn('sourceMappingURL', css)
        self.assertEqual(len(rules), 2)
        for selector in self.selectors:
            self.assertIn(selector, rules)
            self.assertDictEqual(rules[selector], {'color': 'red'})
Esempio n. 6
0
    def test_no_source_map(self):
        """Check defaults do not produce source map."""
        config = dict(entry=self.entry, output=self.output)

        app = self.get_sphinx_app()
        compile_sass_config(app, config)
        rules, css = parse_css(self.output, raw=True)
        self.assertNotIn('sourceMappingURL', css)
        self.assertEqual(len(rules), 2)
        for selector in self.selectors:
            self.assertIn(selector, rules)
            self.assertDictEqual(rules[selector], {'color': 'red'})
Esempio n. 7
0
    def test_interal_source_map(self):
        """Compile embedded source map"""
        css, srcmap = compile_sass(self.entry,
                                   compile_options=dict(source_map_embed=True))

        rules = parse_css(css)
        self.assertIn('sourceMappingURL', css)
        self.assertEqual(len(rules), 2)
        for selector in self.selectors:
            self.assertIn(selector, rules)
            self.assertDictEqual(rules[selector], {'color': 'red'})
        self.assertFalse(srcmap)
Esempio n. 8
0
    def test_output_style(self):
        """Compile options output_style works"""
        css, srcmap = compile_sass(
            self.entry, compile_options=dict(output_style='compressed'))

        rules = parse_css(css)
        self.assertEqual(css.strip(), '.document h1,.document h2{color:red}')
        self.assertEqual(len(rules), 2)
        for selector in self.selectors:
            self.assertIn(selector, rules)
            self.assertDictEqual(rules[selector], {'color': 'red'})
        self.assertFalse(srcmap)
Esempio n. 9
0
    def test_external_source_map(self):
        """Compile external source map"""
        css, srcmap = compile_sass(
            self.entry,
            compile_options=dict(source_map_filename='main.css.map'))

        rules = parse_css(css)
        self.assertIn('sourceMappingURL', css)
        self.assertEqual(len(rules), 2)
        for selector in self.selectors:
            self.assertIn(selector, rules)
            self.assertDictEqual(rules[selector], {'color': 'red'})
        self.assertGreater(len(srcmap), 0)
Esempio n. 10
0
    def test_external_source_maps_different_path(self):
        """Check external source maps produced with different path"""

        source_map_filename = os.path.join('maps', 'main.css.map')
        config = dict(
            entry=self.entry,
            output=self.output,
            compile_options=dict(source_map_filename=source_map_filename))
        app = self.get_sphinx_app()
        compile_sass_config(app, config)

        _, css = parse_css(self.output, raw=True)
        self.assertIn('sourceMappingURL', css)

        srcmap_url = get_source_mapping_url(css)
        self.assertEqual(srcmap_url, source_map_filename)

        self.assertTrue(
            os.path.exists(
                os.path.join(os.path.dirname(self.output),
                             source_map_filename)))
Esempio n. 11
0
    def test_relative_entry_path(self):
        """Test relative entry path."""

        entry = os.path.basename(self.entry)
        with chdir(os.path.dirname(self.entry)):
            self.create_file(
                entry,
                contents=
                '$color: red !default; .document { h1, h2 { color: $color; } }'
            )

        config = dict(entry=entry, output=self.output)

        app = self.get_sphinx_app()
        compile_sass_config(app, config)
        self.assertTrue(os.path.exists(self.output))
        rules, css = parse_css(self.output, raw=True)
        self.assertNotIn('sourceMappingURL', css)
        self.assertEqual(len(rules), 2)
        for selector in self.selectors:
            self.assertIn(selector, rules)
            self.assertDictEqual(rules[selector], {'color': 'red'})