Export unit tests added.

see #477
This commit is contained in:
Antoine Nguyen
2013-10-11 21:47:59 +02:00
parent 7113510a60
commit 68e15e5add
3 changed files with 71 additions and 8 deletions
+9 -5
View File
@@ -2,6 +2,13 @@ import factory
from . import models
class DomainFactory(factory.DjangoModelFactory):
FACTORY_FOR = models.Domain
quota = 10
enabled = True
class MailboxFactory(factory.DjangoModelFactory):
FACTORY_FOR = models.Mailbox
@@ -9,8 +16,5 @@ class MailboxFactory(factory.DjangoModelFactory):
use_domain_quota = True
class DomainFactory(factory.DjangoModelFactory):
FACTORY_FOR = models.Domain
quota = 10
enabled = True
class AliasFactory(factory.DjangoModelFactory):
FACTORY_FOR = models.Alias
+4 -3
View File
@@ -68,7 +68,7 @@ def get_identities(user, searchquery=None, idtfilter=None, grpfilter=None):
from itertools import chain
accounts = []
if idtfilter is None or idtfilter == "account":
if idtfilter is None or not idtfilter or idtfilter == "account":
ids = user.objectaccess_set \
.filter(content_type=ContentType.objects.get_for_model(user)) \
.values_list('object_id', flat=True)
@@ -76,7 +76,7 @@ def get_identities(user, searchquery=None, idtfilter=None, grpfilter=None):
if searchquery is not None:
q &= Q(username__icontains=searchquery) \
| Q(email__icontains=searchquery)
if grpfilter is not None:
if grpfilter is not None and grpfilter:
if grpfilter == "SuperAdmins":
q &= Q(is_superuser=True)
else:
@@ -84,7 +84,8 @@ def get_identities(user, searchquery=None, idtfilter=None, grpfilter=None):
accounts = User.objects.select_related().filter(q)
aliases = []
if idtfilter is None or (idtfilter in ["alias", "forward", "dlist"]):
if idtfilter is None or not idtfilter \
or (idtfilter in ["alias", "forward", "dlist"]):
alct = ContentType.objects.get_for_model(Alias)
ids = user.objectaccess_set.filter(content_type=alct) \
.values_list('object_id', flat=True)
+58
View File
@@ -474,3 +474,61 @@ account; sa@test.com; toto; Super; Admin; True; SuperAdmins; superadmin@test.com
})
with self.assertRaises(User.DoesNotExist):
User.objects.get(username="sa@test.com")
class ExportTestCase(ModoTestCase):
fixtures = ["initial_users.json"]
def setUp(self):
super(ExportTestCase, self).setUp()
sa = User.objects.get(pk=1)
dom = factories.DomainFactory(name="test.com")
self.admin = UserFactory.create(
username="admin@test.com", groups=('DomainAdmins',)
)
self.admin.post_create(sa)
factories.MailboxFactory(address='admin', domain=dom, user=self.admin)
dom.add_admin(self.admin)
u = UserFactory.create(
username="user@test.com", groups=('SimpleUsers',)
)
u.post_create(sa)
factories.MailboxFactory(address='user', domain=dom, user=u)
# factories.AliasFactory(
# address='forward', domain=dom, extmboxes='user@extdomain.com'
# )
def __export_identities(self, idtfilter="", grpfilter=""):
self.clt.get(
reverse("modoboa.extensions.admin.views.identity._identities") \
+ "?grpfilter=%s&idtfilter=%s" % (grpfilter, idtfilter)
)
return self.clt.post(
reverse("modoboa.extensions.admin.views.export.export_identities"),
{"filename": "test.csv"}
)
def test_export_identities(self):
response = self.__export_identities()
self.assertEqual(response.content, "account;admin;{CRYPT}dTTsGDkA5ZHKg;;;True;SuperAdmins;\r\naccount;admin@test.com;{PLAIN}toto;;;True;DomainAdmins;admin@test.com;test.com\r\naccount;user@test.com;{PLAIN}toto;;;True;SimpleUsers;user@test.com\r\n")
def test_export_simpleusers(self):
response = self.__export_identities(grpfilter="SimpleUsers")
self.assertEqual(
response.content.strip(),
"account;user@test.com;{PLAIN}toto;;;True;SimpleUsers;user@test.com"
)
def test_export_superadmins(self):
response = self.__export_identities(grpfilter="SuperAdmins")
self.assertEqual(
response.content.strip(),
"account;admin;{CRYPT}dTTsGDkA5ZHKg;;;True;SuperAdmins;"
)
def test_export_domainadmins(self):
response = self.__export_identities(grpfilter="DomainAdmins")
self.assertEqual(
response.content.strip(),
"account;admin@test.com;{PLAIN}toto;;;True;DomainAdmins;admin@test.com;test.com"
)