@@ -143,6 +143,14 @@ def normalize_path(path):
143
143
re_base64_data_uri = re .compile (r'^data:[^;]*?;base64,(.+)$' )
144
144
145
145
146
+ def _map_in_output_dir (s ):
147
+ def cb (match ):
148
+ filename = os .path .basename (match .group (1 ))
149
+ return '/*# sourceMappingURL={} */' .format (filename )
150
+
151
+ return re_sourcemap_url .sub (cb , s )
152
+
153
+
146
154
@pytest .fixture (autouse = True )
147
155
def no_warnings (recwarn ):
148
156
yield
@@ -696,12 +704,6 @@ def test_build_one(self):
696
704
with tempdir () as d :
697
705
src_path = os .path .join (d , 'test' )
698
706
699
- def test_source_path (* path ):
700
- return normalize_path (os .path .join (d , 'test' , * path ))
701
-
702
- def replace_source_path (s , name ):
703
- return s .replace ('SOURCE' , test_source_path (name ))
704
-
705
707
shutil .copytree ('test' , src_path )
706
708
with pytest .warns (FutureWarning ):
707
709
m = Manifest (sass_path = 'test' , css_path = 'css' )
@@ -713,14 +715,11 @@ def replace_source_path(s, name):
713
715
with io .open (
714
716
os .path .join (d , 'css' , 'b.scss.css' ), encoding = 'UTF-8' ,
715
717
) as f :
716
- self .assertEqual (
717
- replace_source_path (B_EXPECTED_CSS_WITH_MAP , 'b.scss' ),
718
- f .read (),
719
- )
718
+ assert f .read () == _map_in_output_dir (B_EXPECTED_CSS_WITH_MAP )
720
719
self .assert_source_map_file (
721
720
{
722
721
'version' : 3 ,
723
- 'file' : '../test/b .css' ,
722
+ 'file' : 'b.scss .css' ,
724
723
'sources' : ['../test/b.scss' ],
725
724
'names' : [],
726
725
'mappings' : (
@@ -734,14 +733,11 @@ def replace_source_path(s, name):
734
733
with io .open (
735
734
os .path .join (d , 'css' , 'd.scss.css' ), encoding = 'UTF-8' ,
736
735
) as f :
737
- assert (
738
- replace_source_path (D_EXPECTED_CSS_WITH_MAP , 'd.scss' ) ==
739
- f .read ()
740
- )
736
+ assert f .read () == _map_in_output_dir (D_EXPECTED_CSS_WITH_MAP )
741
737
self .assert_source_map_file (
742
738
{
743
739
'version' : 3 ,
744
- 'file' : '../test/d .css' ,
740
+ 'file' : 'd.scss .css' ,
745
741
'sources' : ['../test/d.scss' ],
746
742
'names' : [],
747
743
'mappings' : (
@@ -799,7 +795,7 @@ def test_wsgi_sass_middleware(self):
799
795
r = client .get ('/static/a.scss.css' )
800
796
assert r .status_code == 200
801
797
self .assertEqual (
802
- b (A_EXPECTED_CSS_WITH_MAP ),
798
+ b (_map_in_output_dir ( A_EXPECTED_CSS_WITH_MAP ) ),
803
799
r .data ,
804
800
)
805
801
assert r .mimetype == 'text/css'
@@ -825,32 +821,30 @@ def test_wsgi_sass_middleware_without_extension(self):
825
821
client = Client (app , Response )
826
822
r = client .get ('/static/a.css' )
827
823
assert r .status_code == 200
828
- expected = A_EXPECTED_CSS_WITH_MAP .replace ('.scss.css' , '.css' )
824
+ expected = A_EXPECTED_CSS_WITH_MAP
825
+ expected = expected .replace ('.scss.css' , '.css' )
826
+ expected = _map_in_output_dir (expected )
829
827
self .assertEqual (expected .encode (), r .data )
830
828
assert r .mimetype == 'text/css'
831
829
832
830
def test_wsgi_sass_middleware_without_extension_sass (self ):
833
831
with tempdir () as css_dir :
834
- src_dir = os .path .join (css_dir , 'src' )
835
- os .makedirs (src_dir )
836
- with open (os .path .join (src_dir , 'a.sass' ), 'w' ) as f :
837
- f .write ('a\n \t b\n \t \t color: blue;' )
838
832
app = SassMiddleware (
839
833
self .sample_wsgi_app , {
840
834
__name__ : {
841
- 'sass_path' : src_dir ,
835
+ 'sass_path' : 'test' ,
842
836
'css_path' : css_dir ,
843
837
'wsgi_path' : '/static' ,
844
838
'strip_extension' : True ,
845
839
},
846
840
},
847
841
)
848
842
client = Client (app , Response )
849
- r = client .get ('/static/a .css' )
843
+ r = client .get ('/static/h .css' )
850
844
assert r .status_code == 200
851
845
expected = (
852
846
'a b {\n color: blue; }\n \n '
853
- '/*# sourceMappingURL=../a .css.map */'
847
+ '/*# sourceMappingURL=h .css.map */'
854
848
)
855
849
self .assertEqual (expected .encode (), r .data )
856
850
assert r .mimetype == 'text/css'
0 commit comments