def test_m2m_bulk_update(self): """ Bulk update on a m2m field evicts cache for related models. """ group2 = GroupFactory.create(name='group2') MembershipFactory(person=self.person, group=group2, date_joined=datetime.date(2009, 1, 1)).save() person2 = PersonFactory.create(name='person2') MembershipFactory(person=person2, group=self.group, date_joined=datetime.date(2009, 1, 1)).save() self.assertEquals( Person.objects.get(id=self.person.id).groups.order_by( 'membership__date_joined').all()[0].name, 'group1') self.assertEquals( Group.objects.get(id=self.group.id).members.order_by( 'membership__date_joined').all()[0].name, 'person1') Membership.objects.filter(group_id=group2.id).update( date_joined=datetime.date(2007, 1, 1)) self.assertEquals( Person.objects.get(id=self.person.id).groups.order_by( 'membership__date_joined').all()[0].name, 'group2') Membership.objects.filter( group_id=self.group.id, person_id=person2.id).update(date_joined=datetime.date(2006, 1, 1)) self.assertEquals( Group.objects.get(id=self.group.id).members.order_by( 'membership__date_joined').all()[0].name, 'person2')
def mock_person_with_3_books_read(db_session): person = PersonFactory.create(name="mock_pers_with_3_books_read") book1 = BookFactory(reader_id=person.id) book2 = BookFactory(reader_id=person.id) book3 = BookFactory(reader_id=person.id) yield person
def test_get_related_generic_fk_objects(self): person = PersonFactory.create() tagged_item = TaggedItemFactory.create(tag='dog-person', content_object=person) related_objects = get_related_objects(person) self.assertEqual(len(related_objects[MockTaggedItem.content_object]), 1) for tagged_item in related_objects[MockTaggedItem.content_object]: self.assertEqual(tagged_item.content_object.id, person.id)
def test_get_related_fk_objects(self): person = PersonFactory.create() for i in range(3): PetFactory.create(owner=person) location = PersonLocationFactory.create(owner=person) related_objects = get_related_objects(person) self.assertEqual(len(related_objects[MockPet.owner.field]), 3) for pet in related_objects[MockPet.owner.field]: self.assertEqual(pet.owner.id, person.id) self.assertEqual(len(related_objects[MockPersonLocation.owner.field]), 1) for location in related_objects[MockPersonLocation.owner.field]: self.assertEqual(location.owner.id, person.id)
def test_m2m_bulk_update(self): """ Bulk update on a m2m field evicts cache for related models. """ group2 = GroupFactory.create(name='group2') MembershipFactory(person=self.person, group=group2, date_joined = datetime.date(2009, 1, 1)).save() person2 = PersonFactory.create(name='person2') MembershipFactory(person=person2, group=self.group, date_joined=datetime.date(2009, 1, 1)).save() self.assertEquals(Person.objects.get(id=self.person.id).groups.order_by('membership__date_joined').all()[0].name, 'group1') self.assertEquals(Group.objects.get(id=self.group.id).members.order_by('membership__date_joined').all()[0].name, 'person1') Membership.objects.filter(group_id=group2.id).update(date_joined=datetime.date(2007, 1, 1)) self.assertEquals(Person.objects.get(id=self.person.id).groups.order_by('membership__date_joined').all()[0].name, 'group2') Membership.objects.filter(group_id=self.group.id, person_id=person2.id).update(date_joined=datetime.date(2006, 1, 1)) self.assertEquals(Group.objects.get(id=self.group.id).members.order_by('membership__date_joined').all()[0].name, 'person2')
def test_m2m_add_person(self): person2 = PersonFactory.create() g = Group.objects.get(id=self.group.id) self.assertEqual(len(g.members.all()), 1) MembershipFactory(person=person2, group=self.group).save() self.assertEqual(len(g.members.all()), 2)
def setUp(self): self.person = PersonFactory.create(name='person1') self.group = GroupFactory.create(name='group1') MembershipFactory(person=self.person, group=self.group,date_joined = datetime.date(2008, 1, 1)).save()
def setUp(self): self.person = PersonFactory.create(name='person1') self.group = GroupFactory.create(name='group1') MembershipFactory(person=self.person, group=self.group, date_joined=datetime.date(2008, 1, 1)).save()
def setUpTestData(cls): super(ModelMapTestsMixin, cls).setUpTestData() cls.instance = PersonFactory.create() cls.field = cls.get_field() cls.model_map = cls.get_model_map()