diff options
Diffstat (limited to 'archaeological_files/tests.py')
| -rw-r--r-- | archaeological_files/tests.py | 149 | 
1 files changed, 85 insertions, 64 deletions
| diff --git a/archaeological_files/tests.py b/archaeological_files/tests.py index 1aab1b2c4..bf9ac14c0 100644 --- a/archaeological_files/tests.py +++ b/archaeological_files/tests.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3  # -*- coding: utf-8 -*-  # Copyright (C) 2010-2017 Étienne Loks  <etienne.loks_AT_peacefrogsDOTnet> @@ -25,25 +25,37 @@ from django.contrib.auth.models import User  from django.core.urlresolvers import reverse  from django.test.client import Client -from ishtar_common.tests import TestCase, COMMON_FIXTURES, create_superuser, \ -    AutocompleteTestBase, AcItem +from ishtar_common.tests import ( +    TestCase, +    COMMON_FIXTURES, +    create_superuser, +    AutocompleteTestBase, +    AcItem, +)  from ishtar_common.models import Town, IshtarSiteProfile  from archaeological_files import models -from archaeological_operations.models import Parcel, ParcelOwner, ActType, \ -    AdministrativeAct +from archaeological_operations.models import ( +    Parcel, +    ParcelOwner, +    ActType, +    AdministrativeAct, +)  from ishtar_common.tests import FILE_TOWNS_FIXTURES  from archaeological_operations.tests import OperationInitTest, FileInit  def create_administrativact(user, fle):      act_type, created = ActType.objects.get_or_create( -        txt_idx='act_type_F', intented_to='F') -    dct = {'history_modifier': user, -           'act_type': act_type, -           'associated_file': fle, -           'signature_date': datetime.date(2017, 7, 10), -           'index': 22} +        txt_idx="act_type_F", intented_to="F" +    ) +    dct = { +        "history_modifier": user, +        "act_type": act_type, +        "associated_file": fle, +        "signature_date": datetime.date(2017, 7, 10), +        "index": 22, +    }      adminact, created = AdministrativeAct.objects.get_or_create(**dct)      return [act_type], [adminact] @@ -59,26 +71,28 @@ class FileTest(TestCase, FileInit):      def test_external_id(self):          self.assertEqual(              self.item.external_id, -            "{}-{}".format(self.item.year, -                           self.item.numeric_reference)) +            "{}-{}".format(self.item.year, self.item.numeric_reference), +        )      def test_cached_label(self):          self.item = models.File.objects.get(pk=self.item.pk)          # localisation fix          lbls = [] -        for town_lbl in ('No town', 'Pas de commune'): -            lbls.append(settings.JOINT.join( -                [town_lbl, self.item.external_id, -                 self.item.internal_reference])) +        for town_lbl in ("No town", "Pas de commune"): +            lbls.append( +                settings.JOINT.join( +                    [town_lbl, self.item.external_id, self.item.internal_reference] +                ) +            )          self.assertIn(self.item.cached_label, lbls) -        default_town = Town.objects.create(name="Paris", numero_insee='75001') +        default_town = Town.objects.create(name="Paris", numero_insee="75001")          self.item.towns.add(default_town)          # manually done inside wizards          self.item._cached_label_checked = False          self.item._test = True          self.item.save()          self.item = models.File.objects.get(pk=self.item.pk) -        lbl = lbls[0].replace('No town', 'Paris') +        lbl = lbls[0].replace("No town", "Paris")          self.assertEqual(self.item.cached_label, lbl)      def testAddAndGetHistorized(self): @@ -107,7 +121,7 @@ class FileTest(TestCase, FileInit):          Test creator association          """          self.assertEqual(self.item.history_creator, self.o_user) -        altuser, created = User.objects.get_or_create(username='altusername') +        altuser, created = User.objects.get_or_create(username="altusername")          item = models.File.objects.get(pk=self.item.pk)          item.internal_reference = "Unité_Test"          item.history_modifier = altuser @@ -142,22 +156,22 @@ class FileTest(TestCase, FileInit):          self.assertEqual(self.item.history.count(), nb_hist)          new_values = self.item.values()          for k in initial_values.keys(): -            if k in ('last_modified', 'search_vector', 'qrcode'): +            if k in ("last_modified", "search_vector", "qrcode"):                  continue -            elif k == 'history_m2m' and not initial_values[k]: -                initial_values[k] = dict( -                    [(j, []) for j in models.File.HISTORICAL_M2M] -                ) -            self.assertTrue(k in new_values, -                            msg='%s not in new values' % k) +            elif k == "history_m2m" and not initial_values[k]: +                initial_values[k] = dict([(j, []) for j in models.File.HISTORICAL_M2M]) +            self.assertTrue(k in new_values, msg="%s not in new values" % k)              self.assertEqual( -                new_values[k], initial_values[k], -                msg="for %s: %s != %s" % (k, str(new_values[k]), -                                          str(initial_values[k]))) +                new_values[k], +                initial_values[k], +                msg="for %s: %s != %s" +                % (k, str(new_values[k]), str(initial_values[k])), +            )      def testRESTGetFile(self):          response = self.client.post( -            '/get-file/', {'numeric_reference': self.item.numeric_reference}) +            "/get-file/", {"numeric_reference": self.item.numeric_reference} +        )          self.assertEqual(response.status_code, 200)          data = json.loads(response.content.decode())          # not allowed -> no data @@ -165,11 +179,12 @@ class FileTest(TestCase, FileInit):          self.login_as_superuser()          response = self.client.post( -            '/get-file/', {'numeric_reference': self.item.numeric_reference}) +            "/get-file/", {"numeric_reference": self.item.numeric_reference} +        )          self.assertEqual(response.status_code, 200)          data = json.loads(response.content.decode()) -        self.assertTrue('recordsTotal' in data) -        self.assertEqual(data['recordsTotal'], 1) +        self.assertTrue("recordsTotal" in data) +        self.assertEqual(data["recordsTotal"], 1)      def testRESTGetOldFile(self):          initial_ref = self.item.internal_reference @@ -180,8 +195,8 @@ class FileTest(TestCase, FileInit):          item.history_modifier = self.user          item.save()          response = self.client.post( -            '/get-file/', -            {'numeric_reference': item.numeric_reference, 'old': 1}) +            "/get-file/", {"numeric_reference": item.numeric_reference, "old": 1} +        )          self.assertEqual(response.status_code, 200)          data = json.loads(response.content.decode())          # not allowed -> no data @@ -189,17 +204,17 @@ class FileTest(TestCase, FileInit):          self.login_as_superuser()          response = self.client.post( -            '/get-file/', -            {'numeric_reference': item.numeric_reference, 'old': 1}) +            "/get-file/", {"numeric_reference": item.numeric_reference, "old": 1} +        )          self.assertEqual(response.status_code, 200)          data = json.loads(response.content.decode()) -        self.assertIn('recordsTotal', data) -        self.assertEqual(data['recordsTotal'], 1) -        self.assertEqual(data['rows'][0]['internal_reference'], initial_ref) +        self.assertIn("recordsTotal", data) +        self.assertEqual(data["recordsTotal"], 1) +        self.assertEqual(data["rows"][0]["internal_reference"], initial_ref)      def testPostDeleteParcels(self):          fle = self.item -        town = Town.objects.create(name='plouf', numero_insee='20000') +        town = Town.objects.create(name="plouf", numero_insee="20000")          parcel = Parcel.objects.create(town=town)          parcel_nb = Parcel.objects.count()          fle.parcels.add(parcel) @@ -220,15 +235,15 @@ class FileTest(TestCase, FileInit):      def test_show(self):          c = Client() -        url = 'show-file' +        url = "show-file"          pk = self.item.pk -        response = self.client.get(reverse(url, kwargs={'pk': pk})) +        response = self.client.get(reverse(url, kwargs={"pk": pk}))          self.assertEqual(response.status_code, 200)          # empty content when not allowed          self.assertEqual(response.content.decode(), "")          self.login_as_superuser() -        response = self.client.get(reverse(url, kwargs={'pk': pk})) +        response = self.client.get(reverse(url, kwargs={"pk": pk}))          self.assertEqual(response.status_code, 200)          self.assertIn('class="card sheet"', response.content.decode()) @@ -249,14 +264,17 @@ class FileOperationTest(TestCase, OperationInitTest, FileInit):          for p in range(0, 10):              parcel = Parcel.objects.create(                  parcel_number=str(p), -                section='YY', +                section="YY",                  town=default_town, -                operation=self.operation) +                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()) +                    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 @@ -269,25 +287,30 @@ class FileOperationTest(TestCase, OperationInitTest, FileInit):          # when attaching parcel from a file to an operation, copy is done          parcel = Parcel.objects.create( -            parcel_number='42', section='ZZ', -            town=default_town, associated_file=self.item) +            parcel_number="42", +            section="ZZ", +            town=default_town, +            associated_file=self.item, +        )          ParcelOwner.objects.create( -            owner=self.extra_models['person'], -            parcel=parcel, start_date=datetime.date.today(), -            end_date=datetime.date.today()) +            owner=self.extra_models["person"], +            parcel=parcel, +            start_date=datetime.date.today(), +            end_date=datetime.date.today(), +        )          parcel.operation = self.operation          parcel.save()          # double reference to operation and associated_file is deleted          self.assertEqual(parcel.operation, None)          # now 2 objects with the same parameters -        q = Parcel.objects.filter(parcel_number='42', section='ZZ', -                                  town=default_town) +        q = Parcel.objects.filter(parcel_number="42", section="ZZ", town=default_town)          self.assertEqual(q.count(), 2)          q = q.filter(operation=self.operation, associated_file=None)          self.assertEqual(q.count(), 1)          # parcel owner well attached -        q = ParcelOwner.objects.filter(parcel__operation=self.operation, -                                       parcel__parcel_number='42') +        q = ParcelOwner.objects.filter( +            parcel__operation=self.operation, parcel__parcel_number="42" +        )          self.assertEqual(q.count(), 1) @@ -301,7 +324,7 @@ class DashboardTest(TestCase, FileInit):          self.create_file()      def test_dashboard(self): -        url = 'dashboard-file' +        url = "dashboard-file"          c = Client()          c.login(username=self.username, password=self.password) @@ -312,13 +335,11 @@ class DashboardTest(TestCase, FileInit):  class AutocompleteTest(AutocompleteTestBase, TestCase):      fixtures = FILE_TOWNS_FIXTURES      models = [ -        AcItem(models.File, 'autocomplete-file', -               prepare_func="create_file"), +        AcItem(models.File, "autocomplete-file", prepare_func="create_file"),      ]      def create_file(self, base_name):          item, __ = models.File.objects.get_or_create( -            name=base_name, -            file_type=models.FileType.objects.all()[0] +            name=base_name, file_type=models.FileType.objects.all()[0]          )          return item, None | 
