1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
#!/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.conf import settings
from django.test import TestCase
from chimere.models import Icon, Importer, Category, SubCategory, Marker
class ImporterTest:
def _baseSetUp(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',)
return [subcategory_1, subcategory_2]
def test_get(self):
nb_by_cat = {}
for importer, awaited_nb in self.marker_importers:
nb, nb_updated, res = importer.manager.get()
if awaited_nb == None:
continue
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()
if awaited_nb == None:
continue
self.assertEqual(nb, 0)
self.assertEqual(nb_updated, awaited_nb)
class KMLImporterTest(TestCase, ImporterTest):
def setUp(self):
subcategory_1, subcategory_2 = self._baseSetUp()
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)]
class OSMImporterTest(TestCase, ImporterTest):
def setUp(self):
subcategory_1, subcategory_2 = self._baseSetUp()
importer1 = Importer.objects.create(importer_type='OSM',
source_url=settings.CHIMERE_XAPI_URL,
filtr="node[amenity=pub]"\
"[bbox=-77.041579,38.885851,-77.007247,38.900881]")
importer1.categories.add(subcategory_1)
self.marker_importers = [(importer1, None)]
|