Skip to content

Commit a3f6d09

Browse files
committed
Merge pull request noirbizarre#39 from randlet/fix-windows-tests
Fix StorageGlobber test suite errors on Windows
2 parents 5502883 + a95584e commit a3f6d09

File tree

2 files changed

+20
-17
lines changed

2 files changed

+20
-17
lines changed

djangojs/tests/test_globber.py

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
from djangojs.utils import StorageGlobber
44

5+
from os.path import normpath
56

67
class StorageGlobberTest(TestCase):
78

@@ -13,48 +14,48 @@ def test_no_js_file(self):
1314
def test_single_js_file(self):
1415
'''Should handle a single js file name as string'''
1516
files = 'js/test/libs/jasmine-djangojs.js'
16-
expected = ['js/test/libs/jasmine-djangojs.js']
17+
expected = [normpath('js/test/libs/jasmine-djangojs.js')]
1718
self.assertEqual(StorageGlobber.glob(files), expected)
1819

1920
def test_multi_js_file(self):
2021
'''Should handle an array of js file names'''
2122
files = ['js/test/libs/jasmine-djangojs.js', 'js/test/libs/jasmine.js']
2223
result = StorageGlobber.glob(files)
2324

24-
self.assertIn('js/test/libs/jasmine-djangojs.js', result)
25-
self.assertIn('js/test/libs/jasmine.js', result)
25+
self.assertIn(normpath('js/test/libs/jasmine-djangojs.js'), result)
26+
self.assertIn(normpath('js/test/libs/jasmine.js'), result)
2627

2728
def test_single_glob_expression(self):
2829
'''Should handle a single glob pattern as js file list'''
2930
files = 'js/test/libs/jasmine-*.js'
3031
result = StorageGlobber.glob(files)
3132

32-
self.assertIn('js/test/libs/jasmine-djangojs.js', result)
33-
self.assertIn('js/test/libs/jasmine-html.js', result)
34-
self.assertIn('js/test/libs/jasmine-jquery.js', result)
35-
self.assertNotIn('js/test/libs/jasmine.js', result)
33+
self.assertIn(normpath('js/test/libs/jasmine-djangojs.js'), result)
34+
self.assertIn(normpath('js/test/libs/jasmine-html.js'), result)
35+
self.assertIn(normpath('js/test/libs/jasmine-jquery.js'), result)
36+
self.assertNotIn(normpath('js/test/libs/jasmine.js'), result)
3637

3738
def test_multi_glob_expression(self):
3839
'''Should handle a glob pattern list as js file list'''
3940
files = ['js/test/libs/jasmine-*.js', 'js/test/libs/qunit-*.js']
4041
result = StorageGlobber.glob(files)
4142

42-
self.assertIn('js/test/libs/jasmine-djangojs.js', result)
43-
self.assertIn('js/test/libs/jasmine-html.js', result)
44-
self.assertIn('js/test/libs/jasmine-jquery.js', result)
45-
self.assertIn('js/test/libs/qunit-tap.js', result)
46-
self.assertNotIn('js/test/libs/jasmine.js', result)
47-
self.assertNotIn('js/test/libs/qunit.js', result)
43+
self.assertIn(normpath('js/test/libs/jasmine-djangojs.js'), result)
44+
self.assertIn(normpath('js/test/libs/jasmine-html.js'), result)
45+
self.assertIn(normpath('js/test/libs/jasmine-jquery.js'), result)
46+
self.assertIn(normpath('js/test/libs/qunit-tap.js'), result)
47+
self.assertNotIn(normpath('js/test/libs/jasmine.js'), result)
48+
self.assertNotIn(normpath('js/test/libs/qunit.js'), result)
4849

4950
def test_preserve_order(self):
5051
'''Should preserve declaration order'''
5152
# Orders matters: should not be an alphabeticaly sorted list
5253
files = ['js/test/libs/jasmine.js', 'js/djangojs/django.js', 'js/test/libs/qunit-*.js']
5354
result = StorageGlobber.glob(files)
5455

55-
self.assertEqual(result[0], 'js/test/libs/jasmine.js')
56-
self.assertEqual(result[1], 'js/djangojs/django.js')
56+
self.assertEqual(result[0], normpath('js/test/libs/jasmine.js'))
57+
self.assertEqual(result[1], normpath('js/djangojs/django.js'))
5758

5859
for lib in result[2:]:
59-
self.assertIn('js/test/libs/qunit-', lib)
60+
self.assertIn(normpath('js/test/libs/qunit-'), lib)
6061
self.assertTrue(lib.endswith('.js'))

djangojs/utils.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,12 @@ def glob(cls, files=None):
5757
'''
5858
files = files or []
5959
if isinstance(files, str):
60+
files = os.path.normpath(files)
6061
matches = lambda path: matches_patterns(path, [files])
6162
return [path for path in cls.get_static_files() if matches(path)]
6263
elif isinstance(files, (list, tuple)):
6364
all_files = cls.get_static_files()
65+
files = [os.path.normpath(f) for f in files]
6466
sorted_result = []
6567
for pattern in files:
6668
sorted_result.extend([f for f in all_files if matches_patterns(f, [pattern])])
@@ -78,5 +80,5 @@ def get_static_files(cls):
7880
prefixed_path = path
7981

8082
if prefixed_path not in files:
81-
files.append(prefixed_path)
83+
files.append(os.path.normpath(prefixed_path))
8284
return files

0 commit comments

Comments
 (0)