# -*- coding: utf-8 -*-
"""
#----------testcase----------------
#基本信息
#Author:johnnyzhu
#project:jfa
"""
#/api/v1/jfa/resetPassword 修改登录密码

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



class TestresetPassword(unittest.TestCase):
    def setUp(self):
        # 设置测试用例编号
        self.lab = gl.get_value('lab')
        self.caseid = '%s-15' % (self.lab)

        self.testplanid = gl.get_value('test_plan_id')
        self.token = clogin.testuserlogin()
        (self.smstoken) = csendvc.checkVerificationCode("18021047680","changePassword")


        self.ip = gl.get_value('apiip')
        self.password = gl.get_value('password')
        # 测试API地址
        self.url = '%s/api/v1/jfa/resetPassword' % (self.ip)


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


        # 测试API请求头设置
        self.payloadHeader = {
            'Content-Type': "application/json",
            'Authorization': self.token
        }


        # 打印requests
        self.data = json.dumps(self.payloadData)
        self.headers = self.payloadHeader
        ul.log.logger.info("%s is open!~~~~~~~~~~~~~~~~~~~~~~~~~~~~" % (self.caseid))


    def testresetPassword(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(200, r["status"])
            self.assertTrue(r["success"])
            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)