diff options
author | Étienne Loks <etienne.loks@proxience.com> | 2015-07-10 20:16:12 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@proxience.com> | 2015-07-10 20:16:12 +0200 |
commit | e412768a265d572a3bf8c01cb2827e32125ea11d (patch) | |
tree | 092c2cf03d9c336e24addf7d148aba1adadba441 /archaeological_files/tests.py | |
parent | e22efa3330e3682cfc35cc00d6fb254fab038a15 (diff) | |
download | Ishtar-e412768a265d572a3bf8c01cb2827e32125ea11d.tar.bz2 Ishtar-e412768a265d572a3bf8c01cb2827e32125ea11d.zip |
Parcel management: copy non existing parcel from operation when associating a file
Diffstat (limited to 'archaeological_files/tests.py')
-rw-r--r-- | archaeological_files/tests.py | 87 |
1 files changed, 66 insertions, 21 deletions
diff --git a/archaeological_files/tests.py b/archaeological_files/tests.py index b30c39dc1..312c0402d 100644 --- a/archaeological_files/tests.py +++ b/archaeological_files/tests.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (C) 2010-2013 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> +# Copyright (C) 2010-2015 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as @@ -20,26 +20,22 @@ """ Unit tests """ -import json +import json, datetime from django.conf import settings from django.contrib.auth.models import User from django.test import TestCase -from ishtar_common.models import PersonType -from archaeological_files import models, data_importer - -class FileTest(TestCase): - fixtures = [settings.ROOT_PATH + \ - '../fixtures/initial_data-auth-fr.json', - settings.ROOT_PATH + \ - '../ishtar_common/fixtures/initial_data-fr.json'] - model = models.File +from ishtar_common.models import PersonType, Town +from archaeological_files import models +from archaeological_operations.models import Parcel, ParcelOwner +from archaeological_operations.tests import OperationInitTest +class FileInit(object): def login_as_superuser(self): self.client.login(username='username', password='tralala') - def setUp(self): + def create_file(self): self.extra_models, self.model_list = {}, [] self.user, created = User.objects.get_or_create(username='username', is_superuser=True) @@ -70,11 +66,15 @@ class FileTest(TestCase): self.item = self.model(**dct) self.item.save() - def tearDown(self): - #self.item.delete() - #for item in reversed(self.model_list): - # item.delete() - pass +class FileTest(TestCase, FileInit): + fixtures = [settings.ROOT_PATH + \ + '../fixtures/initial_data-auth-fr.json', + settings.ROOT_PATH + \ + '../ishtar_common/fixtures/initial_data-fr.json'] + model = models.File + + def setUp(self): + self.create_file() def testAddAndGetHistorized(self): """ @@ -176,7 +176,52 @@ class FileTest(TestCase): self.assertTrue(data['records'] == 1) self.assertEqual(data['rows'][0]['internal_reference'], initial_ref) -class ImporterTest(TestCase): - def testFormaters(self): - for formater in [data_importer.SurfaceFormater]: - formater().test() +#class ImporterTest(TestCase): +# def testFormaters(self): +# from archaeological_files import data_importer +# for formater in [data_importer.SurfaceFormater]: +# formater().test() + +class FileOperationTest(TestCase, OperationInitTest, FileInit): + model = models.File + fixtures = [settings.ROOT_PATH + \ + '../fixtures/initial_data-auth-fr.json', + settings.ROOT_PATH + \ + '../ishtar_common/fixtures/initial_data-fr.json', + settings.ROOT_PATH + + '../ishtar_common/fixtures/test_towns.json', + settings.ROOT_PATH + + '../ishtar_common/fixtures/initial_importtypes-fr.json', + settings.ROOT_PATH + + '../archaeological_files/fixtures/initial_data.json', + settings.ROOT_PATH + + '../archaeological_operations/fixtures/initial_data-fr.json'] + + def setUp(self): + self.create_file() + self.orgas = self.create_orgas(self.user) + self.operations = self.create_operation(self.user, self.orgas[0]) + self.operation = self.operations[0] + + def testFileAssociation(self): + # parcel association + default_town = Town.objects.all()[0] + for p in range(0, 10): + parcel = Parcel.objects.create(parcel_number=unicode(p), + section='YY', + town=default_town, + operation=self.operation) + if p == 1: + ParcelOwner.objects.create( + owner=self.extra_models['person'], + parcel=parcel, start_date=datetime.date.today(), + end_date=datetime.date.today()) + initial_nb = self.item.parcels.count() + # no parcel on the file -> new parcels are copied from the + # operation + self.operation.associated_file = self.item + self.operation.save() + self.assertEqual(self.item.parcels.count(), initial_nb+10) + # parcel owner well attached + q = ParcelOwner.objects.filter(parcel__associated_file=self.item) + self.assertEqual(q.count(), 1) |