mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-17 05:41:25 +02:00
@@ -269,8 +269,9 @@ class Domain(AdminObject):
|
||||
self.save(creator=user)
|
||||
|
||||
def to_csv(self, csvwriter):
|
||||
"""Export domain and domain aliases to CSV format."""
|
||||
csvwriter.writerow([
|
||||
"domain", self.name, self.quota, self.default_mailbox_quot,
|
||||
"domain", self.name, self.quota, self.default_mailbox_quota,
|
||||
self.enabled
|
||||
])
|
||||
for dalias in self.domainalias_set.all():
|
||||
|
||||
@@ -8,7 +8,6 @@ from .. import factories
|
||||
|
||||
|
||||
class ExportTestCase(ModoTestCase):
|
||||
|
||||
"""Test case for export operations."""
|
||||
|
||||
@classmethod
|
||||
@@ -17,6 +16,14 @@ class ExportTestCase(ModoTestCase):
|
||||
super(ExportTestCase, cls).setUpTestData()
|
||||
factories.populate_database()
|
||||
|
||||
def __export_domains(self, domfilter=""):
|
||||
self.client.get(
|
||||
"{}?domfilter={}".format(
|
||||
reverse("admin:_domain_list"), domfilter))
|
||||
return self.client.post(
|
||||
reverse("admin:domain_export"), {"filename": "test.csv"}
|
||||
)
|
||||
|
||||
def __export_identities(self, idtfilter="", grpfilter=""):
|
||||
self.client.get(
|
||||
reverse("admin:_identity_list") +
|
||||
@@ -34,6 +41,14 @@ class ExportTestCase(ModoTestCase):
|
||||
continue
|
||||
self.assertIn(entry, list2)
|
||||
|
||||
def test_export_domains(self):
|
||||
"""Check domain export."""
|
||||
response = self.__export_domains()
|
||||
self.assertListEqual(
|
||||
"domain;test2.com;0;0;True\r\ndomain;test.com;50;10;True\r\n",
|
||||
response.content.strip()
|
||||
)
|
||||
|
||||
def test_export_identities(self):
|
||||
response = self.__export_identities()
|
||||
self.assertListEqual(
|
||||
|
||||
@@ -49,6 +49,22 @@ domainalias; domalias1.com; domain1.com; True
|
||||
self.assertFalse(dom.enabled)
|
||||
self.assertTrue(admin.is_owner(dom))
|
||||
|
||||
def test_domain_import_bad_syntax(self):
|
||||
"""Check errors handling."""
|
||||
url = reverse("admin:domain_import")
|
||||
f = ContentFile("domain; domain1.com; 100; True",
|
||||
name="domains.csv")
|
||||
response = self.client.post(url, {"sourcefile": f})
|
||||
self.assertContains(response, "Invalid line")
|
||||
f = ContentFile("domain; domain1.com; XX; 100; True",
|
||||
name="domains.csv")
|
||||
response = self.client.post(url, {"sourcefile": f})
|
||||
self.assertContains(response, "Invalid quota value")
|
||||
f = ContentFile("domain; domain1.com; 100; XX; True",
|
||||
name="domains.csv")
|
||||
response = self.client.post(url, {"sourcefile": f})
|
||||
self.assertContains(response, "Invalid default mailbox quota")
|
||||
|
||||
def test_import_domains_with_conflict(self):
|
||||
f = ContentFile(b"""domain;test.alias;100;10;True
|
||||
domainalias;test.alias;test.com;True
|
||||
|
||||
Reference in New Issue
Block a user