diff options
Diffstat (limited to 'ishtar_common/tests.py')
-rw-r--r-- | ishtar_common/tests.py | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/ishtar_common/tests.py b/ishtar_common/tests.py index bbb449fe3..e107bd6fb 100644 --- a/ishtar_common/tests.py +++ b/ishtar_common/tests.py @@ -92,6 +92,9 @@ class TestCase(BaseTestCase): class CommandsTestCase(TestCase): + fixtures = [settings.ROOT_PATH + + '../ishtar_common/fixtures/test_towns.json'] + def test_clean_ishtar(self): """ Clean ishtar db @@ -107,6 +110,53 @@ class CommandsTestCase(TestCase): self.assertEqual(parcel_nb - 1, Parcel.objects.count()) self.assertEqual(Parcel.objects.filter(pk=p.pk).count(), 0) + def test_import_geofla(self): + q = models.Town.objects + town_nb = q.count() + out = StringIO() + call_command('import_geofla_csv', + '../ishtar_common/tests/geofla-test.csv', stdout=out) + self.assertEqual(town_nb + 9, models.Town.objects.count()) + call_command('import_geofla_csv', + '../ishtar_common/tests/geofla-test.csv', stdout=out) + # no new town + self.assertEqual(town_nb + 9, models.Town.objects.count()) + + def test_import_insee(self): + q = models.Town.objects + town_nb = q.count() + first, union_start, union_end = '', '', [] + for idx, town in enumerate(q.all()): + x1 = float(idx) / 10 + if not x1: + x1 = 0 + x2 = float(idx) / 10 + 0.1 + l = 'MULTIPOLYGON((({x1} 0.1,{x2} 0.1,{x2} 0,{x1} 0,' \ + '{x1} 0.1)))'.format(x1=x1, x2=x2) + if union_start: + union_start += ", " + else: + first = '{x1} 0.1'.format(x1=x1) + union_start += '{x2} 0.1'.format(x1=x1, x2=x2) + union_end.append('{x2} 0'.format(x1=x1, x2=x2)) + town.limit = l + town.save() + union = 'MULTIPOLYGON (((' + first + ", " + union_start + \ + ", " + ", ".join(reversed(union_end)) + ", 0 0, " + first + ")))" + out = StringIO() + call_command('import_insee_comm_csv', + '../ishtar_common/tests/insee-test.csv', stdout=out) + self.assertEqual(town_nb + 1, models.Town.objects.count()) + new = models.Town.objects.order_by('-pk').all()[0] + self.assertEqual(new.parents.count(), 2) + + self.assertEqual(new.limit.wkt, union) + + call_command('import_insee_comm_csv', + '../ishtar_common/tests/insee-test.csv', stdout=out) + # no new town + self.assertEqual(town_nb + 1, models.Town.objects.count()) + class WizardTestFormData(object): """ |