Updated tests.

This commit is contained in:
Antoine Nguyen
2022-04-07 14:22:42 +02:00
parent e90aec81a6
commit 9a1315d114
2 changed files with 39 additions and 8 deletions
+23 -8
View File
@@ -47,14 +47,19 @@ class DomainSerializer(v1_serializers.DomainSerializer):
"""Domain serializer for v2 API."""
domain_admin = CreateDomainAdminSerializer(required=False, write_only=True)
resources = DomainResourceSerializer(
many=True, source="domainobjectlimit_set", required=False
)
transport = transport_serializers.TransportSerializer(required=False)
class Meta(v1_serializers.DomainSerializer.Meta):
fields = v1_serializers.DomainSerializer.Meta.fields + (
"domain_admin", "resources", "transport"
"domain_admin", "transport"
)
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
if not param_tools.get_global_parameter("enable_domain_limits", app="limits"):
return
self.fields["resources"] = DomainResourceSerializer(
many=True, source="domainobjectlimit_set", required=False
)
def validate(self, data):
@@ -285,14 +290,19 @@ class AccountSerializer(v1_serializers.AccountSerializer):
child=lib_fields.DRFEmailFieldUTF8(),
source="mailbox.alias_addresses"
)
resources = serializers.SerializerMethodField()
class Meta(v1_serializers.AccountSerializer.Meta):
fields = (
v1_serializers.AccountSerializer.Meta.fields
+ ("aliases", "resources", )
+ ("aliases", )
)
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
if not param_tools.get_global_parameter("enable_admin_limits", app="limits"):
return
self.fields["resources"] = serializers.SerializerMethodField()
def get_resources(self, account):
if account.role == 'SimpleUsers':
return []
@@ -348,14 +358,19 @@ class WritableAccountSerializer(v1_serializers.WritableAccountSerializer):
required=False
)
mailbox = MailboxSerializer(required=False)
resources = WritableResourceSerializer(many=True, required=False)
class Meta(v1_serializers.WritableAccountSerializer.Meta):
fields = tuple(
field
for field in v1_serializers.WritableAccountSerializer.Meta.fields
if field != "random_password"
) + ("aliases", "resources")
) + ("aliases",)
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
if not param_tools.get_global_parameter("enable_admin_limits", app="limits"):
return
self.fields["resources"] = WritableResourceSerializer(many=True, required=False)
def validate_aliases(self, value):
"""Check if required domains are locals and user can access them."""
+16
View File
@@ -68,6 +68,22 @@ class DomainViewSetTestCase(ModoAPITestCase):
resp = self.client.put(url, data, format="json")
self.assertEqual(resp.status_code, 200)
def test_update_resources(self):
self.set_global_parameter("enable_domain_limits", True, app="limits")
domain = models.Domain.objects.get(name="test2.com")
data = {
"name": "test2.com",
"resources": [
{"name": "domain_aliases", "max_value": 20}
]
}
url = reverse("v2:domain-detail", args=[domain.pk])
resp = self.client.put(url, data, format="json")
self.assertEqual(resp.status_code, 200)
self.assertEqual(
domain.domainobjectlimit_set.get(name="domain_aliases").max_value, 20
)
def test_delete(self):
self.client.credentials(
HTTP_AUTHORIZATION="Token " + self.da_token.key)