def testE_add_exit_user(self): request_data = { 'username': '******', 'email': '*****@*****.**', 'password': '******', 'captcha_key': 4456, 'captcha_answer': 'ut2x' } c = CaptchaStore(key=request_data['captcha_key'], answer=request_data['captcha_answer']) c.save() request = self.factory.post(self.base_url, data=request_data, format='json') self.view(request) c = CaptchaStore(key=request_data['captcha_key'], answer=request_data['captcha_answer']) c.save() request = self.factory.post(self.base_url, data=request_data, format='json') res = self.view(request) self.assertEqual(res.status_code, status.HTTP_409_CONFLICT)
def send_validate_code(request): """发送验证码""" result = {'status': 0, 'msg': '网络异常,请稍后刷新重试'} try: if request.method == 'POST' and request.is_ajax(): # 验证电话号码 phone = request.POST.get('phone', '') phone_re = re.compile('^0\d{2,3}\d{7,8}$|^1[358]\d{9}$|^147\d{8}$') is_phone = phone_re.match(phone) if is_phone: # 判断这个用户存在与否 is_phone_exist = User.objects.filter(phone=str(phone)).first() if is_phone_exist: # # 避免多次发送短信 # request.session.set_expiry(180) # phone_session = request.session.get('account_safety', '') # if phone_session: # result = { # 'status': 0, # 'msg': u'验证码已经发送,请注意查收' # } # return JsonResponse(result) # 发送验证码 sms_msg = make_sms() c = CaptchaStore() # 把验证码存入session request.session['account_safety'] = sms_msg[1] # 存库 c.response = sms_msg[1] c.challenge = phone c.save() result = {'status': 1, 'msg': '验证码已经发送,请注意查收'} # 测试 可不发短信 去CaptchaStore中查看验证码 if not settings.DEBUG: send_sms([phone], sms_msg[0]) result = { 'status': 1, 'key': c.hashkey, } return JsonResponse(result) else: # result = { # 'status': 0, # 'msg': u'这个电话没有注册,请先注册' # } # return JsonResponse(result) raise Exception('这个电话没有注册,请先注册') else: result = {'status': 0, 'msg': '请输入正确的电话号码'} return JsonResponse(result) else: raise Exception("请求异常") except Exception, e: log.exception("send_validate_code raise, Error:%s" % e) result = {'status': 0, 'msg': str(e)}
def set_captcha(key): g = GenCaptcha() ans, buffer = g.create_img() try: # try to get if already there s = CaptchaStore.objects.get(key=key) s.answer = ans s.save() except ObjectDoesNotExist: # not exist, create new s = CaptchaStore(key=key, answer=ans) s.save() return buffer.read()
def testA_add_user(self): request_data = { 'username': '******', 'email': '*****@*****.**', 'password': '******', 'captcha_key': 1234, 'captcha_answer': 'unit', 'extra_data': '{a, b, c}' } c = CaptchaStore(key=request_data['captcha_key'], answer=request_data['captcha_answer']) c.save() request = self.factory.post(self.base_url, data=request_data, format='json') res = self.view(request) self.assertEqual(res.status_code, status.HTTP_201_CREATED) res_json = res.data self.assertEqual(type(res_json['res']['id']), int)
def send_validate_code_new(request): """发送验证码""" result = {'status': 0, 'msg': '网络异常,请稍后刷新重试'} try: if request.method == 'POST' and request.is_ajax(): # 验证电话号码 phone = request.POST.get('phone', '') phone_re = re.compile('^0\d{2,3}\d{7,8}$|^1[358]\d{9}$|^147\d{8}$') is_phone = phone_re.match(phone) if is_phone: # 发送验证码 sms_msg = make_sms() c = CaptchaStore() # 把验证码存入session request.session['account_safety'] = sms_msg[1] # 存库 c.response = sms_msg[1] c.challenge = phone c.save() result = {'status': 1, 'msg': '验证码已经发送,请注意查收'} # 测试 可不发短信 去CaptchaStore中查看验证码 if not settings.DEBUG: send_sms([phone], sms_msg[0]) result = { 'status': 1, 'key': c.hashkey, } return JsonResponse(result) else: result = {'status': 0, 'msg': '请输入正确的电话号码'} return JsonResponse(result) else: raise Exception("请求异常") except Exception, e: log.exception("send_validate_code_new raise, Error:%s" % e) result = {'status': 0, 'msg': str(e)}