Example #1
0
 def test_normalize_manifests(self):
     manifests = Manifest.normalize_manifests({
         'package':
         'sass/path',
         'package.name': ('sass/path', 'css/path'),
         'package.name2':
         Manifest('sass/path', 'css/path'),
         'package.name3': {
             'sass_path': 'sass/path',
             'css_path': 'css/path',
             'strip_extension': True,
         },
     })
     assert len(manifests) == 4
     assert isinstance(manifests['package'], Manifest)
     assert manifests['package'].sass_path == 'sass/path'
     assert manifests['package'].css_path == 'sass/path'
     assert isinstance(manifests['package.name'], Manifest)
     assert manifests['package.name'].sass_path == 'sass/path'
     assert manifests['package.name'].css_path == 'css/path'
     assert isinstance(manifests['package.name2'], Manifest)
     assert manifests['package.name2'].sass_path == 'sass/path'
     assert manifests['package.name2'].css_path == 'css/path'
     assert isinstance(manifests['package.name3'], Manifest)
     assert manifests['package.name3'].sass_path == 'sass/path'
     assert manifests['package.name3'].css_path == 'css/path'
     assert manifests['package.name3'].strip_extension is True
Example #2
0
def test_manifest_build_strip_extension(tmpdir):
    src = tmpdir.join('test').ensure_dir()
    src.join('x.scss').write('a{b: c;}')

    m = Manifest(sass_path='test', css_path='css', strip_extension=True)
    m.build(package_dir=str(tmpdir))

    assert tmpdir.join('css/x.css').read() == 'a {\n  b: c; }\n'
Example #3
0
    def test_build_one(self):
        with tempdir() as d:
            src_path = os.path.join(d, 'test')

            def test_source_path(*path):
                return normalize_path(os.path.join(d, 'test', *path))

            def replace_source_path(s, name):
                return s.replace('SOURCE', test_source_path(name))

            shutil.copytree('test', src_path)
            m = Manifest(sass_path='test', css_path='css')
            m.build_one(d, 'a.scss')
            with open(os.path.join(d, 'css', 'a.scss.css')) as f:
                assert A_EXPECTED_CSS == f.read()
            m.build_one(d, 'b.scss', source_map=True)
            with io.open(
                    os.path.join(d, 'css', 'b.scss.css'),
                    encoding='UTF-8',
            ) as f:
                self.assertEqual(
                    replace_source_path(B_EXPECTED_CSS_WITH_MAP, 'b.scss'),
                    f.read(),
                )
            self.assert_source_map_file(
                {
                    'version':
                    3,
                    'file':
                    '../test/b.css',
                    'sources': ['../test/b.scss'],
                    'names': [],
                    'mappings':
                    ('AAAA,AACE,CADD,CACC,CAAC,CAAC;EACA,SAAS,EAAE,IAAI,'
                     'GAChB'),
                },
                os.path.join(d, 'css', 'b.scss.css.map'),
            )
            m.build_one(d, 'd.scss', source_map=True)
            with io.open(
                    os.path.join(d, 'css', 'd.scss.css'),
                    encoding='UTF-8',
            ) as f:
                assert (replace_source_path(D_EXPECTED_CSS_WITH_MAP,
                                            'd.scss') == f.read())
            self.assert_source_map_file(
                {
                    'version':
                    3,
                    'file':
                    '../test/d.css',
                    'sources': ['../test/d.scss'],
                    'names': [],
                    'mappings':
                    (';AAKA,AAAA,IAAI,CAAC;EAHH,gBAAgB,EAAE,KAAK,GAQxB;'
                     'EALD,AAEE,IAFE,CAEF,CAAC,CAAC;IACA,IAAI,EAAE,sBAAsB,'
                     'GAC7B'),
                },
                os.path.join(d, 'css', 'd.scss.css.map'),
            )
Example #4
0
 def test_normalize_manifests(self):
     manifests = Manifest.normalize_manifests({
         'package': 'sass/path',
         'package.name': ('sass/path', 'css/path'),
         'package.name2': Manifest('sass/path', 'css/path')
     })
     assert len(manifests) == 3
     assert isinstance(manifests['package'], Manifest)
     assert manifests['package'].sass_path == 'sass/path'
     assert manifests['package'].css_path == 'sass/path'
     assert isinstance(manifests['package.name'], Manifest)
     assert manifests['package.name'].sass_path == 'sass/path'
     assert manifests['package.name'].css_path == 'css/path'
     assert isinstance(manifests['package.name2'], Manifest)
     assert manifests['package.name2'].sass_path == 'sass/path'
     assert manifests['package.name2'].css_path == 'css/path'
Example #5
0
    def test_build_one(self):
        d = tempfile.mkdtemp()
        src_path = os.path.join(d, 'test')

        def test_source_path(*path):
            return normalize_path(os.path.join(d, 'test', *path))

        def replace_source_path(s, name):
            return s.replace('SOURCE', test_source_path(name))

        try:
            shutil.copytree('test', src_path)
            m = Manifest(sass_path='test', css_path='css')
            m.build_one(d, 'a.scss')
            with open(os.path.join(d, 'css', 'a.scss.css')) as f:
                self.assertEqual(A_EXPECTED_CSS, f.read())
            m.build_one(d, 'b.scss', source_map=True)
            with open(os.path.join(d, 'css', 'b.scss.css'),
                      **utf8_if_py3) as f:
                self.assertEqual(
                    replace_source_path(B_EXPECTED_CSS_WITH_MAP, 'b.scss'),
                    f.read())
            self.assert_source_map_file(
                {
                    'version':
                    3,
                    'file':
                    '../test/b.css',
                    'sources': ['../test/b.scss'],
                    'names': [],
                    'mappings':
                    (';AAAA,AACE,CADD,CACC,CAAC,CAAC;EACA,SAAS,EAAE,IAAK,'
                     'GACjB'),
                }, os.path.join(d, 'css', 'b.scss.css.map'))
            m.build_one(d, 'd.scss', source_map=True)
            with open(os.path.join(d, 'css', 'd.scss.css'),
                      **utf8_if_py3) as f:
                self.assertEqual(
                    replace_source_path(D_EXPECTED_CSS_WITH_MAP, 'd.scss'),
                    f.read())
            self.assert_source_map_file(
                {
                    'version':
                    3,
                    'file':
                    '../test/d.css',
                    'sources': ['../test/d.scss'],
                    'names': [],
                    'mappings':
                    (';;AAKA,AAAA,IAAI,CAAC;EAHH,gBAAgB,EAAE,KAAM,GAQzB;;'
                     'EALD,AAEE,IAFE,CAEF,CAAC,CAAC;IACA,IAAI,EAAE,0BAA2B,'
                     'GAClC'),
                }, os.path.join(d, 'css', 'd.scss.css.map'))
        finally:
            shutil.rmtree(d)
Example #6
0
    def test_build_one(self):
        with tempdir() as d:
            src_path = os.path.join(d, 'test')

            def test_source_path(*path):
                return normalize_path(os.path.join(d, 'test', *path))

            def replace_source_path(s, name):
                return s.replace('SOURCE', test_source_path(name))

            shutil.copytree('test', src_path)
            m = Manifest(sass_path='test', css_path='css')
            m.build_one(d, 'a.scss')
            with open(os.path.join(d, 'css', 'a.scss.css')) as f:
                assert A_EXPECTED_CSS == f.read()
            m.build_one(d, 'b.scss', source_map=True)
            with io.open(
                os.path.join(d, 'css', 'b.scss.css'), encoding='UTF-8',
            ) as f:
                self.assertEqual(
                    replace_source_path(B_EXPECTED_CSS_WITH_MAP, 'b.scss'),
                    f.read(),
                )
            self.assert_source_map_file(
                {
                    'version': 3,
                    'file': '../test/b.css',
                    'sources': ['../test/b.scss'],
                    'names': [],
                    'mappings': (
                        'AAAA,AACE,CADD,CACC,CAAC,CAAC;EACA,SAAS,EAAE,IAAK,'
                        'GACjB'
                    ),
                },
                os.path.join(d, 'css', 'b.scss.css.map')
            )
            m.build_one(d, 'd.scss', source_map=True)
            with io.open(
                os.path.join(d, 'css', 'd.scss.css'), encoding='UTF-8',
            ) as f:
                assert (
                    replace_source_path(D_EXPECTED_CSS_WITH_MAP, 'd.scss') ==
                    f.read()
                )
            self.assert_source_map_file(
                {
                    'version': 3,
                    'file': '../test/d.css',
                    'sources': ['../test/d.scss'],
                    'names': [],
                    'mappings': (
                        ';AAKA,AAAA,IAAI,CAAC;EAHH,gBAAgB,EAAE,KAAM,GAQzB;'
                        'EALD,AAEE,IAFE,CAEF,CAAC,CAAC;IACA,IAAI,EAAE,0BAA2B,'
                        'GAClC'
                    ),
                },
                os.path.join(d, 'css', 'd.scss.css.map')
            )
Example #7
0
 def test_build_one(self):
     d = tempfile.mkdtemp()
     src_path = os.path.join(d, 'test')
     test_source_path = lambda *path: normalize_path(
         os.path.join(d, 'test', *path))
     replace_source_path = lambda s, name: s.replace(
         'SOURCE', test_source_path(name))
     try:
         shutil.copytree('test', src_path)
         m = Manifest(sass_path='test', css_path='css')
         m.build_one(d, 'a.scss')
         with open(os.path.join(d, 'css', 'a.scss.css')) as f:
             self.assertEqual(A_EXPECTED_CSS, f.read())
         m.build_one(d, 'b.scss', source_map=True)
         with open(os.path.join(d, 'css', 'b.scss.css'),
                   **utf8_if_py3) as f:
             self.assertEqual(
                 replace_source_path(B_EXPECTED_CSS_WITH_MAP, 'b.scss'),
                 f.read())
         self.assert_source_map_file(
             {
                 'version':
                 3,
                 'file':
                 '../test/b.css',
                 'sources': ['../test/b.scss'],
                 'sourcesContent': [],
                 'names': [],
                 'mappings':
                 ';AACE,CAAC,CAAC,CAAC,CAAD;EACA,SAAS,EAAE,IAAK,GADf',
             }, os.path.join(d, 'css', 'b.scss.css.map'))
         m.build_one(d, 'd.scss', source_map=True)
         with open(os.path.join(d, 'css', 'd.scss.css'),
                   **utf8_if_py3) as f:
             self.assertEqual(
                 replace_source_path(D_EXPECTED_CSS_WITH_MAP, 'd.scss'),
                 f.read())
         self.assert_source_map_file(
             {
                 'version':
                 3,
                 'file':
                 '../test/d.css',
                 'sources': ['../test/d.scss'],
                 'sourcesContent': [],
                 'names': [],
                 'mappings':
                 ';;AAKA,IAAI,CAAC;EAHH,gBAAgB,EAAE,KAAM,GAGpB;;EAEJ,IAAI,CAAC,CAAC,CAAJ;IACA,IAAI,EAAE,0BAA2B,GADhC',
             }, os.path.join(d, 'css', 'd.scss.css.map'))
     finally:
         shutil.rmtree(d)
Example #8
0
def build_scss():
    manifests = Manifest.normalize_manifests(app.config["SASS_MANIFEST"])

    css_files = []
    for package_name, manifest in manifests.items():
        css_files = manifest.build("hubgrep/",
                                   output_style=app.config.get(
                                       "CSS_OUTPUT_STYLE", "compressed"))

    print(f"built css files: {list(css_files)}")
    print("deleting empty folders...")
    delete_empty_folders("hubgrep/static/")
Example #9
0
 def test_build_one(self):
     d = tempfile.mkdtemp()
     src_path = os.path.join(d, 'test')
     test_source_path = lambda *path: normalize_path(
         os.path.join(d, 'test', *path)
     )
     replace_source_path = lambda s, name: s.replace(
         'SOURCE',
         test_source_path(name)
     )
     try:
         shutil.copytree('test', src_path)
         m = Manifest(sass_path='test', css_path='css')
         m.build_one(d, 'a.scss')
         with open(os.path.join(d, 'css', 'a.scss.css')) as f:
             self.assertEqual(A_EXPECTED_CSS, f.read())
         m.build_one(d, 'b.scss', source_map=True)
         with open(os.path.join(d, 'css', 'b.scss.css'),
                   **utf8_if_py3) as f:
             self.assertEqual(
                 replace_source_path(B_EXPECTED_CSS_WITH_MAP, 'b.scss'),
                 f.read()
             )
         self.assert_source_map_file(
             {
                 'version': 3,
                 'file': '../test/b.css',
                 'sources': ['../test/b.scss'],
                 'sourcesContent': [],
                 'names': [],
                 'mappings': ';AACE,CAAC,CAAC,CAAC,CAAD;EACA,SAAS,EAAE,IAAK,GADf',
             },
             os.path.join(d, 'css', 'b.scss.css.map')
         )
         m.build_one(d, 'd.scss', source_map=True)
         with open(os.path.join(d, 'css', 'd.scss.css'),
                   **utf8_if_py3) as f:
             self.assertEqual(
                 replace_source_path(D_EXPECTED_CSS_WITH_MAP, 'd.scss'),
                 f.read()
             )
         self.assert_source_map_file(
             {
                 'version': 3,
                 'file': '../test/d.css',
                 'sources': ['../test/d.scss'],
                 'sourcesContent': [],
                 'names': [],
                 'mappings': ';;AAKA,IAAI,CAAC;EAHH,gBAAgB,EAAE,KAAM,GAGpB;;EAEJ,IAAI,CAAC,CAAC,CAAJ;IACA,IAAI,EAAE,0BAA2B,GADhC',
             },
             os.path.join(d, 'css', 'd.scss.css.map')
         )
     finally:
         shutil.rmtree(d)
Example #10
0
 def test_build_one(self):
     d = tempfile.mkdtemp()
     src_path = os.path.join(d, 'test')
     if os.sep != '/' and os.altsep:
         normalize = lambda p: os.path.abspath(
             os.path.normpath(os.path.join(src_path, p))
         ).replace(os.sep, os.altsep)
     else:
         normalize = lambda p: p
     try:
         shutil.copytree('test', src_path)
         m = Manifest(sass_path='test', css_path='css')
         m.build_one(d, 'a.scss')
         with open(os.path.join(d, 'css', 'a.scss.css')) as f:
             self.assertEqual(A_EXPECTED_CSS, f.read())
         m.build_one(d, 'b.scss', source_map=True)
         with open(os.path.join(d, 'css', 'b.scss.css'),
                   **utf8_if_py3) as f:
             self.assertEqual(
                 B_EXPECTED_CSS +
                 '\n/*# sourceMappingURL=b.scss.css.map */',
                 f.read()
             )
         self.assert_json_file(
             {
                 'version': 3,
                 'file': '',
                 'sources': [normalize('../test/b.scss')],
                 'names': [],
                 'mappings': 'AAAA,EAAE;EAEE,WAAW'
             },
             os.path.join(d, 'css', 'b.scss.css.map')
         )
         m.build_one(d, 'd.scss', source_map=True)
         with open(os.path.join(d, 'css', 'd.scss.css'),
                   **utf8_if_py3) as f:
             self.assertEqual(
                 D_EXPECTED_CSS +
                 '\n/*# sourceMappingURL=d.scss.css.map */',
                 f.read()
             )
         self.assert_json_file(
             {
                 'version': 3,
                 'file': '',
                 'sources': [normalize('../test/d.scss')],
                 'names': [],
                 'mappings': 'AAKA;EAHE,kBAAkB;EAIpB,KAAK;IAED,MAAM'
             },
             os.path.join(d, 'css', 'd.scss.css.map')
         )
     finally:
         shutil.rmtree(d)
Example #11
0
 def test_normalize_manifests(self):
     manifests = Manifest.normalize_manifests({
         'package': 'sass/path',
         'package.name': ('sass/path', 'css/path'),
         'package.name2': Manifest('sass/path', 'css/path')
     })
     assert len(manifests) == 3
     assert isinstance(manifests['package'], Manifest)
     assert manifests['package'].sass_path == 'sass/path'
     assert manifests['package'].css_path == 'sass/path'
     assert isinstance(manifests['package.name'], Manifest)
     assert manifests['package.name'].sass_path == 'sass/path'
     assert manifests['package.name'].css_path == 'css/path'
     assert isinstance(manifests['package.name2'], Manifest)
     assert manifests['package.name2'].sass_path == 'sass/path'
     assert manifests['package.name2'].css_path == 'css/path'
Example #12
0
 def test_build_one(self):
     d = tempfile.mkdtemp()
     src_path = os.path.join(d, 'test')
     test_source_path = lambda *path: normalize_path(
         os.path.join(d, 'test', *path))
     replace_source_path = lambda s, name: s.replace(
         'SOURCE', test_source_path(name))
     try:
         shutil.copytree('test', src_path)
         m = Manifest(sass_path='test', css_path='css')
         m.build_one(d, 'a.scss')
         with open(os.path.join(d, 'css', 'a.scss.css')) as f:
             self.assertEqual(A_EXPECTED_CSS, f.read())
         m.build_one(d, 'b.scss', source_map=True)
         with open(os.path.join(d, 'css', 'b.scss.css'),
                   **utf8_if_py3) as f:
             self.assertEqual(
                 replace_source_path(B_EXPECTED_CSS_WITH_MAP, 'b.scss'),
                 f.read())
         self.assert_source_map_file(
             {
                 'version': 3,
                 'file': '../test/b.css',
                 'sources': ['../test/b.scss'],
                 'sourcesContent': [],
                 'names': [],
                 'mappings': ';AAAA,EAAE;EAEE,WAAW'
             }, os.path.join(d, 'css', 'b.scss.css.map'))
         m.build_one(d, 'd.scss', source_map=True)
         with open(os.path.join(d, 'css', 'd.scss.css'),
                   **utf8_if_py3) as f:
             self.assertEqual(
                 replace_source_path(D_EXPECTED_CSS_WITH_MAP, 'd.scss'),
                 f.read())
         self.assert_source_map_file(
             {
                 'version': 3,
                 'file': '../test/d.css',
                 'sources': ['../test/d.scss'],
                 'sourcesContent': [],
                 'names': [],
                 'mappings': ';AAKA;EAHE,kBAAkB;;EAIpB,KAAK;IAED,MAAM'
             }, os.path.join(d, 'css', 'd.scss.css.map'))
     finally:
         shutil.rmtree(d)