# -*- coding: utf-8 -*-
"""
#----------testcase----------------
#基本信息
#Author:johnnyzhu
#project:jfa
"""
#checkVerificationCode 验证验证码

import util.test_get_post as gp
import json
import util.globalv as gl
import case.sendVerificationCode as csendvc
import unittest
import util.reporyresult as cr
import config.config
import util.logger as ul


class TestcheckVerificationCode(unittest.TestCase):
    def setUp(self):
        # 设置测试用例编号
        self.lab = gl.get_value('lab')
        self.caseid = '%s-2' % (self.lab)
        self.testplanid = gl.get_value('test_plan_id')
        (self.smstoken) = csendvc.sendVerificationCode("18021047680","FORGET_PASSWORD")
        self.ip = gl.get_value('apiip')
        # 测试API地址
        self.url = '%s/api/v1/manager/checkVerificationCode' % (self.ip)

        # 测试API入参
        self.payloadData = {
            "verifyCode": "888888",
            "templateType": "FORGET_PASSWORD",
            "smsToken" : self.smstoken
        }

        # 测试API请求头设置
        self.payloadHeader = {
            'Content-Type': "application/json"
        }
        # 打印requests
        self.data = json.dumps(self.payloadData)
        self.headers = self.payloadHeader
        ul.log.logger.info("%s is open!~~~~~~~~~~~~~~~~~~~~~~~~~~~~" % (self.caseid))


    def testcheckVerificationCode(self):
        r = gp.Runmain().send_post(url=self.url,data=self.data,headers=self.headers,verify=False)
        ul.log.logger.info(r)

        try:
            self.assertEqual('OK',r["errMsg"])
            self.assertEqual(0, r["errCode"])
            self.test_result = "p"
            #回写结果至testlink
            cr.report_test_result(self.testplanid, self.caseid, self.test_result)
            ul.log.logger.info(self.test_result)
            ul.log.logger.info("%s over!~~~~~~~~~~~~~~~~~~~~~~~~~~~~" % (self.caseid))

        except AssertionError as e:
            self.test_result = "f"
            # 回写结果至testlink
            cr.report_test_result(self.testplanid, self.caseid, self.test_result)
            ul.log.logger.info(self.test_result)
            ul.log.logger.info("%s failed!~~~~~~~~~~~~~~~~~~~~~~~~~~~~" % (self.caseid))
            raise AssertionError(e)