class TestUserValidation(TestCase): def setUp(self): self.validator = UserValidation() def test_required_fields(self): bundle = Bundle(data={}) errors = self.validator.is_valid(bundle) self.assertIn("email", errors) def test_invalid_emails(self): for email in [ 'nobody.com', 'nobody@', 'nobody@nobody', '[email protected]', '' ]: bundle = Bundle(data={'email': email}) errors = self.validator.is_valid(bundle) self.assertIn("email", errors) def test_valid_emails(self): for email in [ '*****@*****.**', '*****@*****.**', '*****@*****.**' ]: bundle = Bundle(data={'email': email}) errors = self.validator.is_valid(bundle) self.assertNotIn("email", errors)
class TestUserValidation(TestCase): def setUp(self): self.validator = UserValidation() def test_required_fields(self): bundle = Bundle(data={}) errors = self.validator.is_valid(bundle) self.assertIn("email", errors) def test_invalid_emails(self): for email in ['nobody.com', 'nobody@', 'nobody@nobody', '[email protected]', '']: bundle = Bundle(data={ 'email': email }) errors = self.validator.is_valid(bundle) self.assertIn("email", errors) def test_valid_emails(self): for email in ['*****@*****.**', '*****@*****.**', '*****@*****.**']: bundle = Bundle(data={ 'email': email }) errors = self.validator.is_valid(bundle) self.assertNotIn("email", errors)
def activate(request): """ PANDA user activation. """ if request.method == 'POST': validator = UserValidation() data = dict([(k, v) for k, v in request.POST.items()]) try: user_profile = UserProfile.objects.get( activation_key=data['activation_key']) except UserProfile.DoesNotExist: return JSONResponse({'__all__': 'Invalid activation key!'}, status=400) user = user_profile.user if user_profile.activation_key_expiration <= now(): return JSONResponse( { '__all__': 'Expired activation key. Contact your administrator.' }, status=400) if 'password' not in data: return JSONResponse({'password': '******'}, status=400) if 'reenter_password' in data: del data['reenter_password'] bundle = Bundle(data=data) errors = validator.is_valid(bundle) if errors: return JSONResponse(errors, status=400) user.username = bundle.data['email'] user.email = bundle.data['email'] user.first_name = bundle.data.get('first_name', '') user.last_name = bundle.data.get('last_name', '') user.set_password(bundle.data['password']) user.is_active = True user.save() user_profile.activation_key_expiration = now() user_profile.save() # Success return JSONResponse(make_user_login_response(user)) else: # Invalid request return JSONResponse(None, status=400)
def activate(request): """ PANDA user activation. """ if request.method == 'POST': validator = UserValidation() data = dict([(k, v) for k, v in request.POST.items()]) try: user_profile = UserProfile.objects.get(activation_key=data['activation_key']) except UserProfile.DoesNotExist: return JSONResponse({ '__all__': 'Invalid activation key!' }, status=400) user = user_profile.user if user_profile.activation_key_expiration <= now(): return JSONResponse({ '__all__': 'Expired activation key. Contact your administrator.' }, status=400) if 'password' not in data: return JSONResponse({ 'password': '******' }, status=400) if 'reenter_password' in data: del data['reenter_password'] bundle = Bundle(data=data) errors = validator.is_valid(bundle) if errors: return JSONResponse(errors, status=400) user.username = bundle.data['email'] user.email = bundle.data['email'] user.first_name = bundle.data.get('first_name', '') user.last_name = bundle.data.get('last_name', '') user.set_password(bundle.data['password']) user.is_active = True user.save() user_profile.activation_key_expiration = now() user_profile.save() # Success return JSONResponse(make_user_login_response(user)) else: # Invalid request return JSONResponse(None, status=400)
def activate(request): """ PANDA user activation. """ if request.method == "POST": validator = UserValidation() data = dict([(k, v) for k, v in request.POST.items()]) try: user_profile = UserProfile.objects.get(activation_key=data["activation_key"]) except UserProfile.DoesNotExist: return JSONResponse({"__all__": "Invalid activation key!"}, status=400) user = user_profile.user if user_profile.activation_key_expiration <= now(): return JSONResponse({"__all__": "Expired activation key. Contact your administrator."}, status=400) if "password" not in data: return JSONResponse({"password": "******"}, status=400) if "reenter_password" in data: del data["reenter_password"] bundle = Bundle(data=data) errors = validator.is_valid(bundle) if errors: return JSONResponse(errors, status=400) user.username = bundle.data["email"] user.email = bundle.data["email"] user.first_name = bundle.data.get("first_name", "") user.last_name = bundle.data.get("last_name", "") user.set_password(bundle.data["password"]) user.is_active = True user.save() user_profile.activation_key_expiration = now() user_profile.save() # Success return JSONResponse(make_user_login_response(user)) else: # Invalid request return JSONResponse(None, status=400)
def activate(request): """ PANDA user activation. """ if request.method == 'POST': validator = UserValidation() data = dict([(k, v) for k, v in request.POST.items()]) try: user_profile = UserProfile.objects.get(activation_key=data['activation_key']) except UserProfile.DoesNotExist: return JSONResponse({ '__all__': 'Invalid activation key!' }, status=400) user = user_profile.user if user.is_active: return JSONResponse({ '__all__': 'User is already active!' }, status=400) if 'reenter_password' in data: del data['reenter_password'] bundle = Bundle(data=data) errors = validator.is_valid(bundle) if errors: return JSONResponse(errors, status=400) user.username = bundle.data['email'] user.email = bundle.data['email'] user.first_name = bundle.data['first_name'] user.last_name = bundle.data['last_name'] user.password = bundle.data['password'] user.is_active = True user.save() # Success return JSONResponse(make_user_login_response(user)) else: # Invalid request return JSONResponse(None, status=400)
class TestUserValidation(TestCase): def setUp(self): self.validator = UserValidation() def test_required_fields(self): bundle = Bundle(data={}) errors = self.validator.is_valid(bundle) self.assertIn("email", errors) def test_invalid_emails(self): for email in ['nobody.com', 'nobody@', 'nobody@nobody', '[email protected]', '']: bundle = Bundle(data={ 'email': email }) errors = self.validator.is_valid(bundle) self.assertIn("email", errors) def test_valid_emails(self): for email in ['*****@*****.**', '*****@*****.**', '*****@*****.**']: bundle = Bundle(data={ 'email': email }) errors = self.validator.is_valid(bundle) self.assertNotIn("email", errors) def test_email_used_as_username(self): bundle = Bundle(data={ 'email': '*****@*****.**' }) self.validator.is_valid(bundle) self.assertEqual(bundle.data['username'], '*****@*****.**') def test_password_missing(self): bundle = Bundle(data={ 'email': '*****@*****.**' }) self.validator.is_valid(bundle) self.assertEqual(bundle.data['password'], None) def test_password_supplied(self): bundle = Bundle(data={ 'email': '*****@*****.**', 'password': '******' }) self.validator.is_valid(bundle) self.assertEqual(bundle.data['password'][:5], 'sha1$')
def setUp(self): self.validator = UserValidation()