diff options
| 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 | 
| commit | 00d67d1cca3c788c09e6f8e58ef5dd598dbd0259 (patch) | |
| tree | 0dcecf3b7cf49ccd5e6b74f646e456fb749142f4 | |
| parent | 105149b7810cc459662368d6275e88ba328e44d0 (diff) | |
| download | Chimère-00d67d1cca3c788c09e6f8e58ef5dd598dbd0259.tar.bz2 Chimère-00d67d1cca3c788c09e6f8e58ef5dd598dbd0259.zip | |
Add a test file (inly testing import)
| -rw-r--r-- | chimere/tests.py | 74 | 
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) + | 
