New tests fixed

This commit is contained in:
Antoine Nguyen
2025-06-08 15:12:48 +02:00
parent abae9bb7c3
commit 7301629207
10 changed files with 191 additions and 171 deletions
+9 -6
View File
@@ -328,9 +328,9 @@ class AccountPasswordSerializer(serializers.ModelSerializer):
class WritableAccountSerializer(AccountSerializer):
"""Serializer to create account."""
random_password = serializers.BooleanField(default=False)
random_password = serializers.BooleanField(default=False, write_only=True)
role = serializers.ChoiceField(choices=core_constants.ROLES)
password = serializers.CharField(required=False)
password = serializers.CharField(required=False, write_only=True)
class Meta(AccountSerializer.Meta):
fields = AccountSerializer.Meta.fields + ("password", "random_password")
@@ -341,10 +341,6 @@ class WritableAccountSerializer(AccountSerializer):
request = self.context.get("request")
if not request:
return
user = self.context["request"].user
self.fields["role"] = serializers.ChoiceField(
choices=permissions.get_account_roles(user)
)
self.fields["domains"] = serializers.ListField(
child=serializers.CharField(), allow_empty=False, required=False
)
@@ -353,6 +349,13 @@ class WritableAccountSerializer(AccountSerializer):
"""Lower case username."""
return value.lower()
def validate_role(self, value):
user = self.context["request"].user
allowed_values = permissions.get_account_roles(user, self.instance)
if value not in [role[0] for role in allowed_values]:
raise serializers.ValidationError("Invalid choice")
return value
def validate(self, data):
"""Check constraints."""
master_user = data.get("master_user", False)