mirror of https://github.com/django/django.git
Used assertRaisesMessage() in m2m_through_regress tests.
The "needs to have a value for field" messages are incorrect and reference nonexistent fields since the commit in which they were introduced (refs #18823).
This commit is contained in:
parent
bcae045de0
commit
39a8843802
|
@ -67,11 +67,21 @@ class M2MThroughTestCase(TestCase):
|
|||
self.roll.members.set([])
|
||||
|
||||
def test_cannot_use_create_on_m2m_with_intermediary_model(self):
|
||||
with self.assertRaises(AttributeError):
|
||||
msg = (
|
||||
"Cannot use create() on a ManyToManyField which specifies an "
|
||||
"intermediary model. Use m2m_through_regress.Membership's "
|
||||
"Manager instead."
|
||||
)
|
||||
with self.assertRaisesMessage(AttributeError, msg):
|
||||
self.rock.members.create(name="Anne")
|
||||
|
||||
def test_cannot_use_create_on_reverse_m2m_with_intermediary_model(self):
|
||||
with self.assertRaises(AttributeError):
|
||||
msg = (
|
||||
"Cannot use create() on a ManyToManyField which specifies an "
|
||||
"intermediary model. Use m2m_through_regress.Membership's "
|
||||
"Manager instead."
|
||||
)
|
||||
with self.assertRaisesMessage(AttributeError, msg):
|
||||
self.bob.group_set.create(name="Funk")
|
||||
|
||||
def test_retrieve_reverse_m2m_items_via_custom_id_intermediary(self):
|
||||
|
@ -203,14 +213,27 @@ class ToFieldThroughTests(TestCase):
|
|||
["<Driver: Barney Gumble>", "<Driver: Ryan Briscoe>"]
|
||||
)
|
||||
|
||||
def test_add_null(self):
|
||||
nullcar = Car.objects.create(make=None)
|
||||
with self.assertRaises(ValueError):
|
||||
nullcar.drivers._add_items('car', 'driver', self.unused_driver)
|
||||
def test_m2m_relations_unsable_on_null_to_field(self):
|
||||
nullcar = Car(make=None)
|
||||
msg = (
|
||||
'"<Car: None>" needs to have a value for field "car" before this '
|
||||
'many-to-many relationship can be used.'
|
||||
)
|
||||
with self.assertRaisesMessage(ValueError, msg):
|
||||
nullcar.drivers.all()
|
||||
|
||||
def test_m2m_relations_unsable_on_null_pk_obj(self):
|
||||
msg = (
|
||||
"'Car' instance needs to have a primary key value before a "
|
||||
"many-to-many relationship can be used."
|
||||
)
|
||||
with self.assertRaisesMessage(ValueError, msg):
|
||||
Car(make='Ford').drivers.all()
|
||||
|
||||
def test_add_related_null(self):
|
||||
nulldriver = Driver.objects.create(name=None)
|
||||
with self.assertRaises(ValueError):
|
||||
msg = 'Cannot add "<Driver: None>": the value for field "driver" is None'
|
||||
with self.assertRaisesMessage(ValueError, msg):
|
||||
self.car.drivers._add_items('car', 'driver', nulldriver)
|
||||
|
||||
def test_add_reverse(self):
|
||||
|
@ -228,12 +251,17 @@ class ToFieldThroughTests(TestCase):
|
|||
|
||||
def test_add_null_reverse(self):
|
||||
nullcar = Car.objects.create(make=None)
|
||||
with self.assertRaises(ValueError):
|
||||
msg = 'Cannot add "<Car: None>": the value for field "car" is None'
|
||||
with self.assertRaisesMessage(ValueError, msg):
|
||||
self.driver.car_set._add_items('driver', 'car', nullcar)
|
||||
|
||||
def test_add_null_reverse_related(self):
|
||||
nulldriver = Driver.objects.create(name=None)
|
||||
with self.assertRaises(ValueError):
|
||||
msg = (
|
||||
'"<Driver: None>" needs to have a value for field "driver" before '
|
||||
'this many-to-many relationship can be used.'
|
||||
)
|
||||
with self.assertRaisesMessage(ValueError, msg):
|
||||
nulldriver.car_set._add_items('driver', 'car', self.car)
|
||||
|
||||
def test_remove(self):
|
||||
|
|
Loading…
Reference in New Issue