def register_user_to_group(request, course_slug, group_slug): if request.method == 'POST': registrator = Registrator() group = Group.objects.get(slug=request.POST['register_group_slug']) registration,created = registrator.register_user_for_group(request.user, group) if created: messages.add_message(request, messages.SUCCESS, _("You successfully registered to the group.")) elif registration: messages.add_message(request, messages.ERROR, _("You are already registered to this course.")) else: messages.add_message(request, messages.ERROR, _("You cannot register to this group. The Group is full.")) # go back to the view that called the registration default_back_url = "courses/group_details.html" back_url = request.META.get('HTTP_REFERER', default_back_url) if back_url: return HttpResponseRedirect(back_url) else: return HttpResponseRedirect(default_back_url)
class RegistratorTestCase(unittest.TestCase, CoursesTestDataMixin): def setUp(self): self.make_test_data() self.registrator = Registrator() def tearDown(self): self.delete_test_data() def test_user_registration(self): registration, created = self.registrator.register_user_for_group(self.user1, self.group1) self.assertNotEqual(registration, None) self.assertTrue(created) def test_already_registered_for_group(self): registration1, created1 = self.registrator.register_user_for_group(self.user1, self.group1) self.assertNotEqual(registration1, None) self.assertTrue(created1) registration2, created2 = self.registrator.register_user_for_group(self.user1, self.group1) self.assertNotEqual(registration2, None) self.assertFalse(created2) def test_already_registered_for_course(self): registration1, created1 = self.registrator.register_user_for_group(self.user1, self.group1) self.assertTrue(created1) self.assertNotEqual(registration1, None) registration2, created2 = self.registrator.register_user_for_group(self.user1, self.group2) self.assertFalse(created2) self.assertNotEqual(registration2, None) def test_group_full_registration(self): registration1, created1 = self.registrator.register_user_for_group(self.user1, self.group1) self.assertTrue(created1) self.assertNotEqual(registration1, None) registration2, created2 = self.registrator.register_user_for_group(self.user2, self.group1) self.assertFalse(created2) self.assertEqual(registration2, None)
def setUp(self): self.make_test_data() self.registrator = Registrator()