Exemplo n.º 1
0
 def test_delete_user_with_games_keeps_games(self):
     # User 1 and 2 are from the same group
     # User 3 is from a different group
     user = UserFactory()
     game = GameFactory(creator=user)
     group = user.group
     user2 = UserFactory(group=group)
     game2 = GameFactory(creator=user2)
     user3 = UserFactory()
     game3 = GameFactory(creator=user3)
     self.assertEqual(
         group,
         game.creator.group,
         "game1 not associated with creator group",
     )
     self.assertEqual(
         group,
         game2.creator.group,
         "game2 not associated with creator group",
     )
     self.assertNotEqual(
         game.creator,
         game2.creator,
         "games are associated with same creator",
     )
     user.delete()
     game.refresh_from_db()
     user2.delete()
     game2.refresh_from_db()
     user3.delete()
     game3.refresh_from_db()
     # User 1 and 2 should be replaced by the same sentinel user
     # User 3 should be replaced by another sentinel user
     # User count should be 2 now as user 1 and 2 are 'merged'.
     self.assertEqual(
         get_user_model().objects.count(),
         2,
         "users were not replaced",
     )
     self.assertEqual(Game.objects.count(), 3, "game was deleted")
     self.assertEqual(group, game.creator.group, "game1 changed group")
     self.assertEqual(group, game2.creator.group, "game2 changed group")
     self.assertEqual(
         game.creator.email,
         f"deleted_user@{group}",
         "creator was not replaced with sentinel user",
     )
     self.assertEqual(
         game2.creator.email,
         f"deleted_user@{group}",
         "creator was not replaced with sentinel user",
     )
     self.assertEqual(
         game.creator,
         game2.creator,
         "different sentinel users were used for the same group",
     )
     self.assertNotEqual(
         game.creator,
         game3.creator,
         "same sentinel user was used for different groups",
     )
Exemplo n.º 2
0
 def test_delete_user_with_bookings_keeps_bookings(self):
     # User 1 and 2 are from the same group
     # User 3 is from a different group
     user = UserFactory()
     booking = BookingFactory(requester=user, game__creator=user)
     group = user.group
     user2 = UserFactory(group=group)
     booking2 = BookingFactory(requester=user2, game__creator=user2)
     user3 = UserFactory()
     booking3 = BookingFactory(requester=user3, game__creator=user3)
     self.assertEqual(
         group,
         booking.requester.group,
         "booking1 not associated with requester group",
     )
     self.assertEqual(
         group,
         booking2.requester.group,
         "booking2 not associated with requester group",
     )
     self.assertNotEqual(
         booking.requester,
         booking2.requester,
         "bookings are associated with same requester",
     )
     user.delete()
     booking.refresh_from_db()
     user2.delete()
     booking2.refresh_from_db()
     user3.delete()
     booking3.refresh_from_db()
     # User 1 and 2 should be replaced by the same sentinel user
     # User 3 should be replaced by another sentinel user
     # User count should be 2 now as user 1 and 2 are 'merged'.
     self.assertEqual(
         get_user_model().objects.count(),
         2,
         "users were not replaced",
     )
     self.assertEqual(Booking.objects.count(), 3, "booking was deleted")
     self.assertEqual(group, booking.requester.group,
                      "booking1 changed group")
     self.assertEqual(group, booking2.requester.group,
                      "booking2 changed group")
     self.assertEqual(
         booking.requester.email,
         f"deleted_user@{group}",
         "requester was not replaced with sentinel user",
     )
     self.assertEqual(
         booking2.requester.email,
         f"deleted_user@{group}",
         "requester was not replaced with sentinel user",
     )
     self.assertEqual(
         booking.requester,
         booking2.requester,
         "different sentinel users were used for the same group",
     )
     self.assertNotEqual(
         booking.requester,
         booking3.requester,
         "same sentinel user was used for different groups",
     )
 def test_delete_enrolled_user(self):
     new_user = UserFactory()
     invitee = self.main_event.enroll_user(new_user)
     new_user.delete()
     invitee.refresh_from_db(fields=("user", ))
     self.assertEqual(invitee.user, get_sentinel_user())
Exemplo n.º 4
0
 def test_user_delete_cascade(self):
     user = UserFactory()
     invite = self.invite_factory(user=user)
     user.delete()
     with self.assertRaises(RegistrationInvite.DoesNotExist):
         invite = RegistrationInvite.objects.get(pk=invite.pk)