diff options
Diffstat (limited to 'ishtar_common/tests.py')
| -rw-r--r-- | ishtar_common/tests.py | 47 | 
1 files changed, 46 insertions, 1 deletions
| diff --git a/ishtar_common/tests.py b/ishtar_common/tests.py index 000abc268..b22d27169 100644 --- a/ishtar_common/tests.py +++ b/ishtar_common/tests.py @@ -1,6 +1,6 @@  #!/usr/bin/env python  # -*- coding: utf-8 -*- -# Copyright (C) 2014 Étienne Loks  <etienne.loks_AT_peacefrogsDOTnet> +# Copyright (C) 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 @@ -21,6 +21,8 @@ import tempfile  from zipfile import ZipFile, ZIP_DEFLATED  from django.contrib.auth.models import User +from django.contrib.contenttypes.models import ContentType +from django.template.defaultfilters import slugify  from django.test import TestCase  from ishtar_common import models, ooo_replace @@ -91,3 +93,46 @@ class MergeTest(TestCase):          self.person_3.merge(self.person_1)          # manage well empty many to many fields          self.assertTrue(self.person_types[1] in self.person_3.person_types.all()) + +class ImportKeyTest(TestCase): + +    def testKeys(self): +        content_type = ContentType.objects.get_for_model(models.OrganizationType) + +        # creation +        label = u"Ploufé" +        ot = models.OrganizationType.objects.create(label=label) +        self.assertEqual(models.ItemKey.objects.filter(object_id=ot.pk, +                                    key=slugify(label), +                                    content_type=content_type).count(), 1) +        label_2 = u"Plif" +        ot_2 = models.OrganizationType.objects.create(label=label_2) +        self.assertEqual(models.ItemKey.objects.filter(object_id=ot_2.pk, +                                    key=slugify(label_2), +                                    content_type=content_type).count(), 1) + +        # replace key +        ot_2.add_key(slugify(label), force=True) +        # one key point to only one item +        self.assertEqual(models.ItemKey.objects.filter(key=slugify(label), +                                    content_type=content_type).count(), 1) +        # this key point to the right item +        self.assertEqual(models.ItemKey.objects.filter(object_id=ot_2.pk, +                key=slugify(label), content_type=content_type).count(), 1) + +        # modification +        label_3 = "Yop" +        ot_2.label = label_3 +        ot_2.save() +        # old label not referenced anymore +        self.assertEqual(models.ItemKey.objects.filter(object_id=ot_2.pk, +                key=slugify(label_2), content_type=content_type).count(), 0) +        # forced key association is always here +        self.assertEqual(models.ItemKey.objects.filter(object_id=ot_2.pk, +                key=slugify(label), content_type=content_type).count(), 1) +        # new key is here +        self.assertEqual(models.ItemKey.objects.filter(object_id=ot_2.pk, +                key=slugify(label_3), content_type=content_type).count(), 1) + + + | 
