Merge pull request #38
This commit is contained in:
		| @@ -1,5 +1,7 @@ | ||||
| from __future__ import absolute_import, unicode_literals | ||||
|  | ||||
| import os | ||||
|  | ||||
| from itertools import product | ||||
| from pathlib import PurePath | ||||
|  | ||||
| @@ -19,10 +21,11 @@ class DjangoExtension(CoreExtension): | ||||
|         """ | ||||
|         original_path = PurePath(name) | ||||
|  | ||||
|         if original_path.suffix: | ||||
|             search_exts = [original_path.suffix] | ||||
|         search_exts = list(compilation.compiler.dynamic_extensions) | ||||
|         if original_path.suffix and original_path.suffix in search_exts: | ||||
|             basename = original_path.stem | ||||
|         else: | ||||
|             search_exts = compilation.compiler.dynamic_extensions | ||||
|             basename = original_path.name | ||||
|  | ||||
|         if original_path.is_absolute(): | ||||
|             # Remove the beginning slash | ||||
| @@ -30,12 +33,10 @@ class DjangoExtension(CoreExtension): | ||||
|         elif rule.source_file.origin: | ||||
|             search_path = rule.source_file.origin | ||||
|             if original_path.parent: | ||||
|                 search_path = search_path / original_path.parent | ||||
|                 search_path = os.path.normpath(str(search_path / original_path.parent)) | ||||
|         else: | ||||
|             search_path = original_path.parent | ||||
|  | ||||
|         basename = original_path.stem | ||||
|  | ||||
|         for prefix, suffix in product(('_', ''), search_exts): | ||||
|             filename = PurePath(prefix + basename + suffix) | ||||
|  | ||||
|   | ||||
							
								
								
									
										3
									
								
								testproject/testproject/static/css/dot.file.scss
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								testproject/testproject/static/css/dot.file.scss
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| .scss { | ||||
|   color: #009900; | ||||
| } | ||||
							
								
								
									
										1
									
								
								testproject/testproject/static/css/sub/from_parent.scss
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								testproject/testproject/static/css/sub/from_parent.scss
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| @import '../baz' | ||||
| @@ -40,6 +40,9 @@ BAZ_CONTENTS = BAZ_CONTENTS.replace('@import "sub/spam";', SPAM_CONTENTS) | ||||
| with open(os.path.join(settings.BASE_DIR, 'testproject', 'static', 'css', 'path_conflict.scss')) as f: | ||||
|     PATH_CONFLICT_CONTENTS = f.read() | ||||
|  | ||||
| with open(os.path.join(settings.BASE_DIR, 'testproject', 'static', 'css', 'dot.file.scss')) as f: | ||||
|     DOT_FILE_CONTENTS = f.read() | ||||
|  | ||||
|  | ||||
| class CompilerTestMixin(object): | ||||
|     def setUp(self): | ||||
| @@ -103,6 +106,17 @@ class ImportTestMixin(CompilerTestMixin): | ||||
|         actual = self.compiler.compile_string('@import "/css/path_conflict";') | ||||
|         self.assertEqual(clean_css(actual), clean_css(PATH_CONFLICT_CONTENTS)) | ||||
|  | ||||
|     def test_import_dots_without_extension(self): | ||||
|         actual = self.compiler.compile_string('@import "/css/dot.file";') | ||||
|         self.assertEqual(clean_css(actual), clean_css(DOT_FILE_CONTENTS)) | ||||
|  | ||||
|     def test_import_dots_with_extension(self): | ||||
|         actual = self.compiler.compile_string('@import "/css/dot.file.scss";') | ||||
|         self.assertEqual(clean_css(actual), clean_css(DOT_FILE_CONTENTS)) | ||||
|  | ||||
|     def test_import_from_parent(self): | ||||
|         actual = self.compiler.compile_string('@import "/css/sub/from_parent";') | ||||
|         self.assertEqual(clean_css(actual), clean_css(BAZ_CONTENTS)) | ||||
|  | ||||
| class FindersImportTest(ImportTestMixin, NoCollectStaticTestCase): | ||||
|     pass | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Antoine Catton
					Antoine Catton