from django import forms from django.core.exceptions import ValidationError from django.test import TestCase from .models import UUIDPK class UUIDPKForm(forms.ModelForm): class Meta: model = UUIDPK fields = "__all__" class ModelFormBaseTest(TestCase): def test_create_save_error(self): form = UUIDPKForm({}) self.assertFalse(form.is_valid()) msg = "The UUIDPK could not be created because the data didn't validate." with self.assertRaisesMessage(ValueError, msg): form.save() def test_update_save_error(self): obj = UUIDPK.objects.create(name="foo") form = UUIDPKForm({}, instance=obj) self.assertFalse(form.is_valid()) msg = "The UUIDPK could not be changed because the data didn't validate." with self.assertRaisesMessage(ValueError, msg): form.save() def test_model_multiple_choice_field_uuid_pk(self): f = forms.ModelMultipleChoiceField(UUIDPK.objects.all()) with self.assertRaisesMessage( ValidationError, "“invalid_uuid” is not a valid UUID." ): f.clean(["invalid_uuid"])