def zip_format(format_): def pretty_file_name(book): return "%s/%s.%s" % ( book.extra_info['author'], book.slug, format_) field_name = "%s_file" % format_ books = Book.objects.filter(parent=None).exclude(**{field_name: ""}) paths = [(pretty_file_name(b), getattr(b, field_name).path) for b in books.iterator()] return create_zip(paths, app_settings.FORMAT_ZIPS[format_])
def test_zip_audiobooks(self): paths = [ (None, join(dirname(__file__), "files/fraszka-do-anusie.xml")), (None, join(dirname(__file__), "files/fraszki.xml")), ] url = utils.create_zip(paths, 'test-zip-slug') self.assertEqual("zip/test-zip-slug.zip", url) self.assertTrue(exists(join(settings.MEDIA_ROOT, url))) utils.remove_zip('test-zip-slug') self.assertFalse(exists(join(settings.MEDIA_ROOT, url)))
def zip_audiobooks(self, format_): bm = BookMedia.objects.filter(book=self, type=format_) paths = map(lambda bm: (None, bm.file.path), bm) return create_zip(paths, "%s_%s" % (self.slug, format_))