Skip to content
This repository was archived by the owner on Oct 24, 2025. It is now read-only.

Commit 4ee3d6a

Browse files
committed
SassMiddleware creates source map files as well
1 parent 354e157 commit 4ee3d6a

File tree

3 files changed

+38
-23
lines changed

3 files changed

+38
-23
lines changed

docs/changes.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ To be released.
88

99
- Expose source maps support:
1010

11+
- :class:`~sassutils.wsgi.SassMiddleware` now also creates source map files
12+
with filenames followed by :file:`.map` suffix.
1113
- :meth:`Manifest.build_one() <sassutils.builder.Manifest.build_one>` method
1214
has a new ``source_map`` option. This option builds also a source map
1315
file with the filename followed by :file:`.map` suffix.

sasstests.py

Lines changed: 29 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,14 @@
2626
color: blue; }
2727
'''
2828

29+
A_EXPECTED_CSS_WITH_MAP = '''\
30+
body {
31+
background-color: green; }
32+
body a {
33+
color: blue; }
34+
35+
/*# sourceMappingURL=a.sass.css.map */'''
36+
2937
B_EXPECTED_CSS = '''\
3038
b i {
3139
font-size: 20px; }
@@ -151,12 +159,9 @@ def test_compile_source_map(self):
151159
actual, source_map = sass.compile(
152160
filename='test/a.sass',
153161
source_comments='map',
154-
source_map_filename='source_map_filename'
155-
)
156-
self.assertEqual(
157-
A_EXPECTED_CSS + '\n/*# sourceMappingURL=source_map_filename */',
158-
actual
162+
source_map_filename='a.sass.css.map'
159163
)
164+
self.assertEqual(A_EXPECTED_CSS_WITH_MAP, actual)
160165
self.assertEqual(
161166
{
162167
'version': 3,
@@ -272,23 +277,25 @@ def sample_wsgi_app(environ, start_response):
272277

273278
def test_wsgi_sass_middleware(self):
274279
css_dir = tempfile.mkdtemp()
275-
app = SassMiddleware(self.sample_wsgi_app, {
276-
__name__: ('test', css_dir, '/static')
277-
})
278-
client = Client(app, Response)
279-
r = client.get('/asdf')
280-
self.assertEquals(200, r.status_code)
281-
self.assertEquals(b'/asdf', r.data)
282-
self.assertEquals('text/plain', r.mimetype)
283-
r = client.get('/static/a.sass.css')
284-
self.assertEquals(200, r.status_code)
285-
self.assertEquals(b(A_EXPECTED_CSS), r.data)
286-
self.assertEquals('text/css', r.mimetype)
287-
r = client.get('/static/not-exists.sass.css')
288-
self.assertEquals(200, r.status_code)
289-
self.assertEquals(b'/static/not-exists.sass.css', r.data)
290-
self.assertEquals('text/plain', r.mimetype)
291-
shutil.rmtree(css_dir)
280+
try:
281+
app = SassMiddleware(self.sample_wsgi_app, {
282+
__name__: ('test', css_dir, '/static')
283+
})
284+
client = Client(app, Response)
285+
r = client.get('/asdf')
286+
self.assertEquals(200, r.status_code)
287+
self.assertEquals(b'/asdf', r.data)
288+
self.assertEquals('text/plain', r.mimetype)
289+
r = client.get('/static/a.sass.css')
290+
self.assertEquals(200, r.status_code)
291+
self.assertEquals(b(A_EXPECTED_CSS_WITH_MAP), r.data)
292+
self.assertEquals('text/css', r.mimetype)
293+
r = client.get('/static/not-exists.sass.css')
294+
self.assertEquals(200, r.status_code)
295+
self.assertEquals(b'/static/not-exists.sass.css', r.data)
296+
self.assertEquals('text/plain', r.mimetype)
297+
finally:
298+
shutil.rmtree(css_dir)
292299

293300

294301
class SasscTestCase(unittest.TestCase):

sassutils/wsgi.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ class SassMiddleware(object):
3232
``package_dir`` option
3333
:type package_dir: :class:`collections.Mapping`
3434
35+
.. versionchanged:: 0.4.0
36+
It creates also source map files with filenames followed by
37+
:file:`.map` suffix.
38+
3539
"""
3640

3741
def __init__(self, app, manifests, package_dir={},
@@ -70,7 +74,9 @@ def __call__(self, environ, start_response):
7074
css_filename = path[len(prefix):]
7175
sass_filename = css_filename[:-4]
7276
try:
73-
result = manifest.build_one(package_dir, sass_filename)
77+
result = manifest.build_one(package_dir,
78+
sass_filename,
79+
source_map=True)
7480
except (IOError, OSError):
7581
break
7682
except CompileError as e:

0 commit comments

Comments
 (0)