summaryrefslogtreecommitdiff
path: root/chimere/tests.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2012-03-17 00:50:25 +0100
committerÉtienne Loks <etienne.loks@peacefrogs.net>2012-03-17 00:50:25 +0100
commit00d67d1cca3c788c09e6f8e58ef5dd598dbd0259 (patch)
tree0dcecf3b7cf49ccd5e6b74f646e456fb749142f4 /chimere/tests.py
parent105149b7810cc459662368d6275e88ba328e44d0 (diff)
downloadChimère-00d67d1cca3c788c09e6f8e58ef5dd598dbd0259.tar.bz2
Chimère-00d67d1cca3c788c09e6f8e58ef5dd598dbd0259.zip
Add a test file (inly testing import)
Diffstat (limited to 'chimere/tests.py')
-rw-r--r--chimere/tests.py74
1 files changed, 74 insertions, 0 deletions
diff --git a/chimere/tests.py b/chimere/tests.py
new file mode 100644
index 0000000..c0a13aa
--- /dev/null
+++ b/chimere/tests.py
@@ -0,0 +1,74 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+import os
+test_path = os.path.abspath(__file__)
+test_dir_path = os.path.dirname(test_path) + os.sep
+
+from django.test import TestCase
+from chimere.models import Icon, Importer, Category, SubCategory, Marker
+
+class KMLImporterTest(TestCase):
+ def setUp(self):
+ category = Category.objects.create(name='Main category',
+ available=True,
+ order=1,
+ description='')
+
+ icon = Icon.objects.create(name='Default icon',
+ image='icons/marker.png',
+ height=25,
+ width=21)
+
+ subcategory_1 = SubCategory.objects.create(category=category,
+ name='Subcategory 1',
+ available=True,
+ icon=icon,
+ order=1,
+ item_type='M',)
+
+ subcategory_2 = SubCategory.objects.create(category=category,
+ name='Subcategory 2',
+ available=True,
+ icon=icon,
+ order=1,
+ item_type='M',)
+
+ importer1 = Importer.objects.create(importer_type='KML',
+ source_url=test_dir_path+'sample.kml',
+ filtr="//kml:Folder/kml:name[text()='Category 1']/../kml:Placemark")
+ importer1.categories.add(subcategory_1)
+
+ importer2 = Importer.objects.create(importer_type='KML',
+ source_url=test_dir_path+'sample.kml',
+ filtr="//kml:Folder/kml:name[text()='Subcategory 1']/../kml:Placemark")
+ importer2.categories.add(subcategory_1)
+ importer2.categories.add(subcategory_2)
+
+ importer3 = Importer.objects.create(importer_type='KML',
+ source_url=test_path+'sample.kml',
+ filtr="//kml:Folder/kml:name[text()='Subcategory 3']/../kml:Placemark")
+ importer3.categories.add(subcategory_2)
+
+ self.marker_importers = [(importer1, 1), (importer2, 2), (importer3, 0)]
+
+ def test_get(self):
+ nb_by_cat = {}
+ for importer, awaited_nb in self.marker_importers:
+ nb, nb_updated, res = importer.manager.get()
+ self.assertEqual(nb, awaited_nb)
+ self.assertEqual(nb_updated, 0)
+ for cat in importer.categories.all():
+ if cat not in nb_by_cat:
+ nb_by_cat[cat] = 0
+ nb_by_cat[cat] += nb
+ for cat in nb_by_cat:
+ self.assertEqual(nb_by_cat[cat],
+ Marker.objects.filter(categories__pk=cat.pk).count())
+
+ # update
+ for importer, awaited_nb in self.marker_importers:
+ nb, nb_updated, res = importer.manager.get()
+ self.assertEqual(nb, 0)
+ self.assertEqual(nb_updated, awaited_nb)
+