1
+ # -*- coding: utf-8 -*-
1
2
from __future__ import with_statement
2
3
3
4
import collections
9
10
import tempfile
10
11
import unittest
11
12
12
- from six import StringIO , b
13
+ from six import StringIO , b , text_type
13
14
from werkzeug .test import Client
14
15
from werkzeug .wrappers import Response
15
16
57
58
color: green; }
58
59
'''
59
60
61
+ D_EXPECTED_CSS = '''\
62
+ body {
63
+ background-color: green; }
64
+ body a {
65
+ font: '나눔고딕', sans-serif; }
66
+ '''
67
+
60
68
61
69
class SassTestCase (unittest .TestCase ):
62
70
@@ -141,6 +149,14 @@ def test_compile_string(self):
141
149
a b {
142
150
color: blue; }
143
151
'''
152
+ actual = sass .compile (string = u'a { color: blue; } /* 유니코드 */' )
153
+ self .assertEqual (
154
+ u'''a {
155
+ color: blue; }
156
+
157
+ /* 유니코드 */''' ,
158
+ actual
159
+ )
144
160
self .assertRaises (sass .CompileError , sass .compile ,
145
161
string = 'a { b { color: blue; }' )
146
162
# sass.CompileError should be a subtype of ValueError
@@ -158,6 +174,11 @@ def test_compile_filename(self):
158
174
assert actual == A_EXPECTED_CSS
159
175
actual = sass .compile (filename = 'test/c.sass' )
160
176
assert actual == C_EXPECTED_CSS
177
+ actual = sass .compile (filename = 'test/d.sass' )
178
+ if text_type is str :
179
+ self .assertEqual (D_EXPECTED_CSS , actual )
180
+ else :
181
+ self .assertEqual (D_EXPECTED_CSS .decode ('utf-8' ), actual )
161
182
self .assertRaises (IOError , sass .compile ,
162
183
filename = 'test/not-exist.sass' )
163
184
self .assertRaises (TypeError , sass .compile , filename = 1234 )
@@ -205,7 +226,7 @@ def test_builder_build_directory(self):
205
226
css_path = os .path .join (temp_path , 'css' )
206
227
shutil .copytree ('test' , sass_path )
207
228
result_files = build_directory (sass_path , css_path )
208
- assert len (result_files ) == 3
229
+ assert len (result_files ) == 4
209
230
assert result_files ['a.sass' ] == 'a.sass.css'
210
231
with open (os .path .join (css_path , 'a.sass.css' )) as f :
211
232
css = f .read ()
@@ -218,6 +239,10 @@ def test_builder_build_directory(self):
218
239
with open (os .path .join (css_path , 'c.sass.css' )) as f :
219
240
css = f .read ()
220
241
assert css == C_EXPECTED_CSS
242
+ assert result_files ['d.sass' ] == 'd.sass.css'
243
+ with open (os .path .join (css_path , 'd.sass.css' )) as f :
244
+ css = f .read ()
245
+ self .assertEqual (D_EXPECTED_CSS , css )
221
246
shutil .rmtree (temp_path )
222
247
223
248
@@ -345,6 +370,23 @@ def test_sassc_output(self):
345
370
finally :
346
371
os .remove (tmp )
347
372
373
+ def test_sassc_output_unicode (self ):
374
+ fd , tmp = tempfile .mkstemp ('.css' )
375
+ try :
376
+ os .close (fd )
377
+ exit_code = sassc .main (['sassc' , 'test/d.sass' , tmp ],
378
+ self .out , self .err )
379
+ self .assertEqual (0 , exit_code )
380
+ self .assertEqual ('' , self .err .getvalue ())
381
+ self .assertEqual ('' , self .out .getvalue ())
382
+ with open (tmp ) as f :
383
+ self .assertEqual (
384
+ D_EXPECTED_CSS .strip (),
385
+ f .read ().strip ()
386
+ )
387
+ finally :
388
+ os .remove (tmp )
389
+
348
390
def test_sassc_source_map_without_css_filename (self ):
349
391
exit_code = sassc .main (['sassc' , '-m' , 'a.scss' ], self .out , self .err )
350
392
self .assertEqual (2 , exit_code )
0 commit comments