summaryrefslogtreecommitdiff
path: root/ishtar_common/tests.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2016-02-26 20:52:11 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2016-02-26 20:52:11 +0100
commitf72f7d90893b4f4ae0e000563b7c20faeefc8f18 (patch)
tree8c8f06c9fb974edde62e82875f7a1b8aad49d7c3 /ishtar_common/tests.py
parent90b20a15bd6bf4f7808957bb8820f10f0d66d5e8 (diff)
parent0cd8904defe334ad5307e6ab3ce13638479815a8 (diff)
downloadIshtar-f72f7d90893b4f4ae0e000563b7c20faeefc8f18.tar.bz2
Ishtar-f72f7d90893b4f4ae0e000563b7c20faeefc8f18.zip
Merge branch 'master' into v0.9
Diffstat (limited to 'ishtar_common/tests.py')
-rw-r--r--ishtar_common/tests.py156
1 files changed, 111 insertions, 45 deletions
diff --git a/ishtar_common/tests.py b/ishtar_common/tests.py
index 621b05242..82ab009e0 100644
--- a/ishtar_common/tests.py
+++ b/ishtar_common/tests.py
@@ -17,18 +17,22 @@
# See the file COPYING for details.
-import tempfile, datetime
-from zipfile import ZipFile, ZIP_DEFLATED
-
from django.conf import settings
from django.contrib.auth.models import User
from django.contrib.contenttypes.models import ContentType
+from django.core.cache import cache
+from django.core.urlresolvers import reverse
from django.template.defaultfilters import slugify
from django.test import TestCase
+from django.test.client import Client
from ishtar_common import models
"""
+from django.conf import settings
+import tempfile, datetime
+from zipfile import ZipFile, ZIP_DEFLATED
+
from oook_replace.oook_replace import oook_replace
class OOOGenerationTest(TestCase):
@@ -53,34 +57,36 @@ class OOOGenerationTest(TestCase):
class MergeTest(TestCase):
def setUp(self):
self.user, created = User.objects.get_or_create(username='username')
- self.organisation_types = models.OrganizationType.create_default_for_test()
+ self.organisation_types = \
+ models.OrganizationType.create_default_for_test()
self.person_types = [models.PersonType.objects.create(label='Admin'),
models.PersonType.objects.create(label='User')]
self.author_types = [models.AuthorType.objects.create(label='1'),
- models.AuthorType.objects.create(label='2'),]
+ models.AuthorType.objects.create(label='2')]
self.company_1 = models.Organization.objects.create(
- history_modifier=self.user, name='Franquin Comp.',
- organization_type=self.organisation_types[0])
- self.person_1 = models.Person.objects.create(name='Boule',
- surname=' ',
- history_modifier=self.user, attached_to=self.company_1)
+ history_modifier=self.user, name='Franquin Comp.',
+ organization_type=self.organisation_types[0])
+ self.person_1 = models.Person.objects.create(
+ name='Boule', surname=' ', history_modifier=self.user,
+ attached_to=self.company_1)
self.person_1.person_types.add(self.person_types[0])
- self.author_1_pk = models.Author.objects.create(person=self.person_1,
- author_type=self.author_types[0]).pk
+ self.author_1_pk = models.Author.objects.create(
+ person=self.person_1, author_type=self.author_types[0]).pk
self.company_2 = models.Organization.objects.create(
- history_modifier=self.user, name='Goscinny Corp.',
- organization_type=self.organisation_types[1])
- self.person_2 = models.Person.objects.create(name='Bill',
- history_modifier=self.user, surname='Peyo', title='Mr',
- attached_to=self.company_2)
+ history_modifier=self.user, name='Goscinny Corp.',
+ organization_type=self.organisation_types[1])
+ self.person_2 = models.Person.objects.create(
+ name='Bill', history_modifier=self.user, surname='Peyo',
+ title='Mr', attached_to=self.company_2)
self.person_2.person_types.add(self.person_types[1])
- self.author_2_pk = models.Author.objects.create(person=self.person_2,
- author_type=self.author_types[1]).pk
- self.person_3 = models.Person.objects.create(name='George',
- history_modifier=self.user, attached_to=self.company_1)
+ self.author_2_pk = models.Author.objects.create(
+ person=self.person_2, author_type=self.author_types[1]).pk
+ self.person_3 = models.Person.objects.create(
+ name='George', history_modifier=self.user,
+ attached_to=self.company_1)
def testPersonMerge(self):
self.person_1.merge(self.person_2)
@@ -93,9 +99,11 @@ class MergeTest(TestCase):
# preserve existing foreign key
self.assertEqual(self.person_1.attached_to, self.company_1)
# preserve existing many to many
- self.assertTrue(self.person_types[0] in self.person_1.person_types.all())
+ self.assertTrue(self.person_types[0]
+ in self.person_1.person_types.all())
# add new many to many
- self.assertTrue(self.person_types[1] in self.person_1.person_types.all())
+ self.assertTrue(self.person_types[1]
+ in self.person_1.person_types.all())
# update reverse foreign key association and dont break the existing
self.assertEqual(models.Author.objects.get(pk=self.author_1_pk).person,
self.person_1)
@@ -104,32 +112,37 @@ 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())
+ 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)
+ 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)
+ 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)
+ 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)
+ 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)
+ self.assertEqual(models.ItemKey.objects.filter(
+ object_id=ot_2.pk, key=slugify(label),
+ content_type=content_type).count(), 1)
# modification
label_3 = "Yop"
@@ -137,14 +150,67 @@ class ImportKeyTest(TestCase):
ot_2.txt_idx = slugify(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)
+ 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
# 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)
-
-
-
+ self.assertEqual(models.ItemKey.objects.filter(
+ object_id=ot_2.pk, key=slugify(label),
+ content_type=content_type).count(), 1)
+ self.assertEqual(models.ItemKey.objects.filter(
+ object_id=ot_2.pk, key=slugify(label_3),
+ content_type=content_type).count(), 1)
+
+
+class IshtarSiteProfileTest(TestCase):
+ def testRelevance(self):
+ cache.set('default-ishtarsiteprofile-is-current-profile', None,
+ settings.CACHE_TIMEOUT)
+ profile = models.get_current_profile()
+ default_slug = profile.slug
+ profile2 = models.IshtarSiteProfile.objects.create(
+ label="Test profile 2", slug='test-profile-2')
+ profile2.save()
+ # when no profile is the current, activate by default the first created
+ self.assertTrue(profile.active and not profile2.active)
+ profile2.active = True
+ profile2 = profile2.save()
+ # only one profile active at a time
+ profile = models.IshtarSiteProfile.objects.get(slug=default_slug)
+ self.assertTrue(profile2.active and not profile.active)
+ # activate find active automatically context records
+ self.assertFalse(profile.context_record)
+ profile.find = True
+ profile = profile.save()
+ self.assertTrue(profile.context_record)
+ # activate warehouse active automatically context records and finds
+ self.assertFalse(profile2.context_record or profile2.find)
+ profile2.warehouse = True
+ profile2 = profile2.save()
+ self.assertTrue(profile2.context_record and profile2.find)
+
+ def testDefaultProfile(self):
+ cache.set('default-ishtarsiteprofile-is-current-profile', None,
+ settings.CACHE_TIMEOUT)
+ self.assertFalse(models.IshtarSiteProfile.objects.count())
+ profile = models.get_current_profile()
+ self.assertTrue(profile)
+ self.assertTrue(models.IshtarSiteProfile.objects.count())
+
+ def testMenuFiltering(self):
+ cache.set('default-ishtarsiteprofile-is-current-profile', None,
+ settings.CACHE_TIMEOUT)
+ username = 'username4277'
+ password = 'dcbqj756456!@%'
+ User.objects.create_superuser(username, "nomail@nomail.com",
+ password)
+ c = Client()
+ c.login(username=username, password=password)
+ response = c.get(reverse('start'))
+ self.assertFalse("section-file_management" in response.content)
+ profile = models.get_current_profile()
+ profile.files = True
+ profile.save()
+ response = c.get(reverse('start'))
+ self.assertTrue("section-file_management" in response.content)