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())
Beispiel #3
0
    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])
Beispiel #4
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())
Beispiel #5
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())