Пример #1
0
    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')
Пример #2
0
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)
Пример #5
0
    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')       
Пример #6
0
 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)
Пример #7
0
 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()
Пример #8
0
 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)
Пример #9
0
 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()