# coding=utf-8
import requests
import base64
import unittest
import time
class WordScanTest(unittest.TestCase): # unittest.TestCase类的函数要在函数名称前加个test
def setUp(self):
token_url = "/oauth/2.0/token"
params_token = {"grant_type": "client_credentials", "client_id": "8OV91RvG4wYt5stCpUsaVEuE",
"client_secret": "ZqWAkGBo2vOTQx3Tsv5gDI68nAAlSB5j"}
response_token = requests.post(token_url, data=params_token)
self.access_token = response_token.json()["access_token"] # 获取token
self.url = "/rest/2.0/image-classify/v1/plant"
def test_wordScan(self): # unittest.TestCase类的函数要在函数名称前加个test。参数正确
f = open(r"C:\Users\Torres\Desktop\bohe.png", "rb") # r是read,b是用二进制方式
img = base64.b64encode(f.read())
params = {"image": img}
request_url = self.url + "?access_token=" + self.access_token
headers = {"Content-Type": "application/x-www-form-urlencoded"}
response = requests.post(request_url, data=params, headers=headers)
result = response.json()
self.assertEqual(result["result"][0]["name"], u"\u8584\u8377") # Unicode编码\u8584\u8377 是薄荷
self.assertEqual(result["result"][1]["name"], u"\u7559\u5170\u9999") # \u8377\u82b1 是留兰香
self.assertEqual(result["result"][2]["name"], u"\u98ce\u8f6e\u83dc") # \u98ce\u8f6e\u83dc是风轮菜
time.sleep(1)
def test_wordScan_params_error(self):
f = open(r"C:\Users\Torres\Desktop\key.txt", "rb") # 参数(图片)错误
img = base64.b64encode(f.read())
params = {"image": img}
request_url = self.url + "?access_token=" + self.access_token
headers = {"Content-Type": "application/x-www-form-urlencoded"}
response = requests.post(request_url, data=params, headers=headers)
result = response.json()
# self.assertEqual(result["log_id", "1029526340702707918"])
self.assertEqual(result["error_code"], 216201)
self.assertEqual(result["error_msg"], "image format error")
time.sleep(1)
def test_wordScan_no_params(self): # 缺少参数
request_url = self.url + "?access_token=" + self.access_token
headers = {"Content-Type": "application/x-www-form-urlencoded"}
response = requests.post(request_url, headers=headers)
result = response.json()
self.assertEqual(result["error_code"], 216101)
self.assertEqual(result["error_msg"], "param image not exist")
if __name__ == "__main__":
unittest.main()