X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/f4a7254db57835252ea0cf23ab45d0baea71dc38..4fb0bfd1b7351af7d83a2cc69e7fca666a359160:/apps/catalogue/test_utils.py?ds=sidebyside diff --git a/apps/catalogue/test_utils.py b/apps/catalogue/test_utils.py index a5f0b4fef..b3e2bc237 100644 --- a/apps/catalogue/test_utils.py +++ b/apps/catalogue/test_utils.py @@ -3,6 +3,7 @@ from django.test import TestCase import shutil import tempfile from slughifi import slughifi +from librarian import WLURI class WLTestCase(TestCase): """ @@ -10,12 +11,18 @@ class WLTestCase(TestCase): """ def setUp(self): self._MEDIA_ROOT, settings.MEDIA_ROOT = settings.MEDIA_ROOT, tempfile.mkdtemp(prefix='djangotest_') - settings.NO_BUILD_PDF = settings.NO_BUILD_MOBI = settings.NO_BUILD_EPUB = settings.NO_BUILD_TXT = True + settings.NO_SEARCH_INDEX = settings.NO_BUILD_PDF = settings.NO_BUILD_MOBI = settings.NO_BUILD_EPUB = settings.NO_BUILD_TXT = True settings.CELERY_ALWAYS_EAGER = True + self._CACHES, settings.CACHES = settings.CACHES, { + 'default': { + 'BACKEND': 'django.core.cache.backends.dummy.DummyCache', + } + } def tearDown(self): shutil.rmtree(settings.MEDIA_ROOT, True) settings.MEDIA_ROOT = self._MEDIA_ROOT + settings.CACHES = self._CACHES class PersonStub(object): @@ -23,8 +30,16 @@ class PersonStub(object): self.first_names = first_names self.last_name = last_name + def readable(self): + return " ".join(self.first_names + (self.last_name,)) + class BookInfoStub(object): + _empty_fields = ['cover_url', 'variant_of'] + # allow single definition for multiple-value fields + _salias = { + 'authors': 'author', + } def __init__(self, **kwargs): self.__dict = kwargs @@ -35,18 +50,28 @@ class BookInfoStub(object): return object.__setattr__(self, key, value) def __getattr__(self, key): - return self.__dict[key] + try: + return self.__dict[key] + except KeyError: + if key in self._empty_fields: + return None + elif key in self._salias: + return [getattr(self, self._salias[key])] + else: + raise def to_dict(self): return dict((key, unicode(value)) for key, value in self.__dict.items()) -def info_args(title): +def info_args(title, language=None): """ generate some keywords for comfortable BookInfoCreation """ slug = unicode(slughifi(title)) + if language is None: + language = u'pol' return { 'title': unicode(title), - 'slug': slug, - 'url': u"http://wolnelektury.pl/example/%s" % slug, + 'url': WLURI.from_slug(slug), 'about': u"http://wolnelektury.pl/example/URI/%s" % slug, + 'language': language, }