refactor(core): Move ticket validation from is_valid -> validate method

ref: #248 #368 #374
This commit is contained in:
2024-11-01 18:38:26 +09:30
parent e39ec70236
commit dac01ace32
2 changed files with 33 additions and 19 deletions

View File

@ -137,22 +137,7 @@ class TicketModelSerializer(TicketBaseSerializer):
]
def is_valid(self, *, raise_exception=False):
is_valid: bool = False
is_valid = super().is_valid(raise_exception=raise_exception)
try:
self.validated_data['ticket_type'] = self._context['view']._ticket_type_id
except:
is_valid = False
raise UnknownTicketType()
def validate(self, data):
if 'view' in self._context:
@ -160,10 +145,19 @@ class TicketModelSerializer(TicketBaseSerializer):
if hasattr(self._context['view'], 'request'):
self.validated_data['opened_by_id'] = self._context['view'].request.user.id
data['opened_by_id'] = self._context['view'].request.user.id
return is_valid
if hasattr(self._context['view'], '_ticket_type_id'):
data['ticket_type'] = self._context['view']._ticket_type_id
else:
raise UnknownTicketType()
return data

View File

@ -220,6 +220,12 @@ class TicketViewSetPermissionsAPI(
user = self.triage_user
)
user_settings = UserSettings.objects.get(user=self.triage_user)
user_settings.default_organization = self.organization
user_settings.save()
self.import_user = User.objects.create_user(username="test_user_import", password="password")
teamuser = TeamUsers.objects.create(
@ -228,6 +234,14 @@ class TicketViewSetPermissionsAPI(
)
user_settings = UserSettings.objects.get(user=self.import_user)
user_settings.default_organization = self.organization
user_settings.save()
self.different_organization_user = User.objects.create_user(username="test_different_organization_user", password="password")
@ -290,8 +304,14 @@ class TicketViewSetPermissionsAPI(
url = reverse(self.app_namespace + ':' + self.url_name + '-list')
data = self.add_data.copy()
data.update({
'opened_by': self.import_user.id
})
client.force_login(self.import_user)
response = client.post(url, data=self.add_data)
response = client.post(url, data=data)
assert response.status_code == 201