# -*- coding: utf-8 -*-
"""
#----------testcase----------------
#基本信息
#Author:johnnyzhu
#project:jfa
"""
#/api/v1/manager/smsCodeLogin 验证码登陆

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



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

        self.testplanid = gl.get_value('test_plan_id')
        self.phone = gl.get_value('phone')
        (self.smstoken) = csendvc.sendVerificationCode(self.phone,"LOGIN")
        self.token = clogin.testuserlogin()

        self.ip = gl.get_value('apiip')

        # 测试API地址
        self.url = '%s/api/v1/manager/smsCodeLogin' % (self.ip)


        # 测试API入参
        self.payloadData = {
            "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 testsmsCodeLogin(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)