def test_matching_tutorials_unregister(self, mock_get): """Simple Test Case where matches occur and a User has unregistered""" user_model = get_user_model() u1 = user_model.objects.create_user('john', email='*****@*****.**', password='******') u2 = user_model.objects.create_user('jane', email='*****@*****.**', password='******') tut1 = PyConTutorialProposalFactory.create(title='Tutorial1') tut2 = PyConTutorialProposalFactory.create(title='Tutorial2') # Add u2 to tut2 tut2.registrants.add(u2) self.assertIsNone(tut1.max_attendees) self.assertIn(u2, tut2.registrants.all()) mock_get.return_value = MockGet(tut1=tut1.proposalbase_ptr_id, tut2=tut2.proposalbase_ptr_id) call_command('update_tutorial_registrants') tut1 = PyConTutorialProposal.objects.get(pk=tut1.pk) self.assertEqual(8, tut1.max_attendees) self.assertEqual(2, tut1.registrants.all().count()) for u in [u1, u2]: self.assertIn(u, tut1.registrants.all()) tut2 = PyConTutorialProposal.objects.get(pk=tut2.pk) self.assertEqual(10, tut2.max_attendees) # updated; dropping u2 and adding u1 self.assertEqual(1, tut2.registrants.all().count()) self.assertIn(u1, tut2.registrants.all())
def test_matching_tutorials_unregister(self, mock_get): """Simple Test Case where matches occur and a User has unregistered""" user_model = get_user_model() u1 = user_model.objects.create_user('john', email='*****@*****.**', password='******') u2 = user_model.objects.create_user('jane', email='*****@*****.**', password='******') tut1 = PyConTutorialProposalFactory.create(title='Tutorial1') tut2 = PyConTutorialProposalFactory.create(title='Tutorial2') # Add u2 to tut2 tut2.registrants.add(u2) self.assertIsNone(tut1.max_attendees) self.assertIn(u2, tut2.registrants.all()) mock_get.return_value = MockGet(tut1=tut1.proposalbase_ptr_id, tut2=tut2.proposalbase_ptr_id) call_command('update_tutorial_registrants') tut1 = PyConTutorialProposal.objects.get(pk=tut1.pk) self.assertEqual(8, tut1.max_attendees) self.assertEqual(2, tut1.registrants.all().count()) for u in [u1, u2]: self.assertIn(u, tut1.registrants.all()) tut2 = PyConTutorialProposal.objects.get(pk=tut2.pk) self.assertEqual(10, tut2.max_attendees) # updated; dropping u2 and adding u1 self.assertEqual(1, tut2.registrants.all().count()) self.assertIn(u1, tut2.registrants.all())
def test_reverse_relation(self): user = User.objects.create_user("Foo") tutorial = PyConTutorialProposalFactory.create() self.assertFalse(tutorial.tutorial_messages.all()) # Just the minimum required fields x = PyConTutorialMessage.objects.create( tutorial=tutorial, user=user, message="Foo", ) # the reverse relation works self.assertEqual(x, tutorial.tutorial_messages.all()[0])
def test_message_form(self): user = User.objects.create_user("Foo") tutorial = PyConTutorialProposalFactory.create() instance = PyConTutorialMessage(tutorial=tutorial, user=user) form = TutorialMessageForm(instance=instance) self.assertFalse(form.is_valid()) data = {'message': 'A Message!', } instance = PyConTutorialMessage(tutorial=tutorial, user=user) form = TutorialMessageForm(data, instance=instance) self.assertTrue(form.is_valid(), msg=form.errors) # Leave out a required field del data['message'] form = TutorialMessageForm(data, instance=instance) self.assertFalse(form.is_valid())
def test_message_form(self): user = User.objects.create_user("Foo") tutorial = PyConTutorialProposalFactory.create() instance = PyConTutorialMessage(tutorial=tutorial, user=user) form = TutorialMessageForm(instance=instance) self.assertFalse(form.is_valid()) data = { 'message': 'A Message!', } instance = PyConTutorialMessage(tutorial=tutorial, user=user) form = TutorialMessageForm(data, instance=instance) self.assertTrue(form.is_valid(), msg=form.errors) # Leave out a required field del data['message'] form = TutorialMessageForm(data, instance=instance) self.assertFalse(form.is_valid())