I want to write a test for Django model with many-to-many relation but I got this error:
ValueError: "" needs to have a value for field "id" before this many-to-many relationship can be used.
My test:
class ModelTestCase(TestCase):
def setUp(self):
self.mock_file = mock.MagicMock(File)
self.mock_file.name = 'MockFile'
self.before_count = Tour.objects.count()
self.tour_agency = TourAgency.objects.create(
name='agency',
username='agency')
self.tour_category = TourCategory.objects.create(name='category')
self.tour_equipment = TourEquipment.objects.create(name='equipment')
self.tour_leader = TourLeader.objects.create(
name='leader',
email='leader@sample.com',
username='leader',
bio='sample text',)
self.tour_tag = TourTag.objects.create(name='tag')
def test_model_can_create_tour(self):
self.tour = Tour.objects.create(
name='tour',
description='description',
summary='summary',
agency=self.tour_agency,
equipment=self.tour_equipment,
category=self.tour_category,
tags=self.tour_tag,
activity_type='activity type',
date=datetime.now,
photo=self.mock_file)
self.tour.save()
self.tour.save_m2m()
count = Tour.objects.count()
self.assertNotEqual(self.before_count, count)
I'll try to save objects with .save() but it doesn't work.
Aucun commentaire:
Enregistrer un commentaire