bookmedia tests, long file name fix
authorRadek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>
Fri, 18 Feb 2011 11:36:28 +0000 (12:36 +0100)
committerRadek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>
Fri, 18 Feb 2011 12:52:51 +0000 (13:52 +0100)
apps/catalogue/models.py
apps/catalogue/tests/bookmedia.py

index 00baa28..f2be7d1 100644 (file)
@@ -168,7 +168,7 @@ def book_upload_path(ext=None, maxlen=100):
             name = slughifi(filename.split(".")[0])
         else:
             name = slughifi(media.name)
             name = slughifi(filename.split(".")[0])
         else:
             name = slughifi(media.name)
-        return 'lektura/%s.%s' % (name[:(maxlen-len('lektura/.%s' % ext))], ext)
+        return 'lektura/%s.%s' % (name[:maxlen-len('lektura/.%s' % ext)-4], ext)
     return get_dynamic_path
 
 
     return get_dynamic_path
 
 
index a9f76e9..72fb030 100644 (file)
@@ -7,11 +7,24 @@ from catalogue import models
 
 class BookMediaTests(WLTestCase):
 
 
 class BookMediaTests(WLTestCase):
 
+    def setUp(self):
+        WLTestCase.setUp(self)
+        self.file = ContentFile('X')
+
+    def test_diacritics(self):
+        bm = models.BookMedia.objects.create(type="ogg", 
+                    name="Zażółć gęślą jaźń")
+        bm.file.save(bm.name, self.file)
+        self.assertEqual(bm.file.name.rsplit('/', 1)[-1], 'zazolc-gesla-jazn.ogg')
+
+
     def test_long_name(self):
     def test_long_name(self):
-        file = ContentFile('X')
         bm = models.BookMedia.objects.create(type="ogg", 
                     name="Some very very very very very very very very very very very very very very very very long file name")
         bm = models.BookMedia.objects.create(type="ogg", 
                     name="Some very very very very very very very very very very very very very very very very long file name")
-        bm.file.save(bm.name, file)
+
+        # save twice so Django adds some stuff
+        bm.file.save(bm.name, self.file)
+        bm.file.save(bm.name, self.file)
         bm.save()
 
         # reload to see what was really saved
         bm.save()
 
         # reload to see what was really saved