def test_sign_up_form_valid_signIn(self): ''' tests Sign Up form with valid data ''' form = SignUpForm({ 'username': self.my_user.username, 'email': self.my_user.email, 'password1': self.my_user.password, 'password2': self.my_user.password }) self.assertTrue(form.is_valid()) self.assertEqual(form.data['username'], self.my_user.username) self.assertEqual(form.data['email'], self.my_user.email) self.assertEqual(form.data['password1'], self.my_user.password) self.assertEqual(form.data['password2'], self.my_user.password) ## we now test to see if we can ## retrive newly created user from db form.save() query_users = User.objects.filter(username=self.my_user.username) self.assertEqual(len(query_users), 1) self.assertEqual(self.my_user.username, query_users[0].username) self.assertEqual(self.my_user.email, query_users[0].email)
def login (request): """ This view handles the login and signup related stuff """ loginpage = True # Create the basic forms which will be rendered in get requests loginform = LoginForm() signupform = SignUpForm() if request.user.is_authenticated(): # If user logged in : Redirect to home return HttpResponseRedirect(reverse('home')) # If the form has been submitted, get the form data and handle the appropriate way if request.method == 'POST': postdata = request.POST.copy() if 'signup' in postdata: # SIGNUP FORM signupform = SignUpForm(postdata) if signupform.is_valid(): # If the form is valid, save the user using the inbuilt function try: signupform.save() messages.success(request,'<strong>Hi!</strong> Your account has been made, but is not yet activated. We will review and activate your account soon !',extra_tags='alert-success') return HttpResponseRedirect(reverse('home')) except IntegrityError: # The username (email) already exists messages.error(request,'<strong>Oops!</strong> That email id has already been signed up. Try logging in !',extra_tags='alert-danger') else: print signupform.errors elif 'login' in postdata: # LOGIN FORM loginform = LoginForm(postdata) if loginform.is_valid(): try: user = User.objects.get(username=loginform.cleaned_data.get('username')) print user user = auth.authenticate(username=user.username, password=loginform.cleaned_data.get('password')) if user is not None and user.is_active: auth.login(request, user) # Successful login if 'next' in request.POST: return HttpResponseRedirect(request.POST['next']) else: return HttpResponseRedirect(reverse('profile')) except User.DoesNotExist: messages.error(request,'<strong>Oops!</strong> You don\'t seem to be registered. Please Sign Up first!',extra_tags='alert-error') else: print signupform.errors return render_to_response('pages/login.html', locals(), context_instance= global_context(request))