# -*- coding: utf-8 -*-
+# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
+#
from __future__ import with_statement
from os import path
-from django.test import TestCase
from picture.models import Picture
+from catalogue.test_utils import WLTestCase
-class PictureTest(TestCase):
-
+class PictureTest(WLTestCase):
+
def test_import(self):
picture = Picture.from_xml_file(path.join(path.dirname(__file__), "files/kandinsky-composition-viii.xml"))
- motifs = set([tag.name for tag in picture.tags if tag.category == 'theme'])
- assert motifs == set([u'nieporządek']), 'theme tags are wrong. %s' % motifs
+ themes = set()
+ for area in picture.areas.all():
+ themes.update([(tag.category, tag.name)
+ for tag in area.tags if tag.category in (u'theme', u'thing')])
+ assert themes == set([(u'theme', u'nieporządek'), (u'thing', u'Kosmos')]), \
+ 'Bad themes on Picture areas: %s' % themes
+
+ pic_themes = set([tag.name for tag in picture.tags if tag.category in ('theme', 'thing')])
+ assert not pic_themes, 'Unwanted themes set on Pictures: %s' % pic_themes
picture.delete()
path.join(path.dirname(__file__), "files/kandinsky-composition-viii.png"))
picture.delete()
-
+
+
+ def test_import_2(self):
+ picture = Picture.from_xml_file(path.join(path.dirname(__file__), "files/kandinsky-composition-viii.xml"),
+ path.join(path.dirname(__file__), "files/kandinsky-composition-viii.png"),
+ overwrite=True)
+ cats = set([t.category for t in picture.tags])
+ assert 'epoch' in cats
+ assert 'kind' in cats
+