1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
from .base import TestCase
from .forms import AnimalForm, BigSnakeForm, SnakeForm
from .models import Animal, BigSnake, Monkey, Snake
class PolymorphicModelFormTests(TestCase):
def test_invalid_provided_instance(self):
monkey = Monkey()
with self.assertRaises(TypeError):
AnimalForm(instance=monkey)
def test_instance_based_form_creation(self):
self.assertIsInstance(AnimalForm(instance=Animal()), AnimalForm)
self.assertIsInstance(AnimalForm(instance=Snake()), SnakeForm)
self.assertIsInstance(AnimalForm(instance=BigSnake()), BigSnakeForm)
self.assertIsInstance(SnakeForm(instance=Snake()), SnakeForm)
self.assertIsInstance(SnakeForm(instance=BigSnake()), BigSnakeForm)
self.assertIsInstance(BigSnakeForm(instance=BigSnake()), BigSnakeForm)
def test_default_instance_type(self):
form = AnimalForm()
self.assertIsInstance(form.instance, Animal)
form = SnakeForm()
self.assertIsInstance(form.instance, Snake)
form = BigSnakeForm()
self.assertIsInstance(form.instance, BigSnake)
def test_retreival_from_class(self):
self.assertEqual(AnimalForm[Snake], SnakeForm)
|