def sendPostGift(self): sql = "select g.id, g.name, g.point from gift_v2 g join gift_category_v2 gc on category_id = gc.id where gc.type = 'post_gift' and g.point > 0" dbResult = dbConnect.dbQuery(test_parameter['db'], sql) giftId = dbResult[0][0] giftName = dbResult[0][1] giftPoint = dbResult[0][2] header['X-Auth-Token'] = test_parameter['broadcaster2_token'] header['X-Auth-Nonce'] = test_parameter['broadcaster2_nonce'] apiName = '/api/v2/liveMaster/photoPost' body = { "photoPath": test_parameter['photo_url'], "content": "動態送禮。。測試中" } api.apiFunction(test_parameter['prefix'], header, apiName, 'post', body) apiName = '/api/v2/liveMaster/' + idlist[4] + '/photoPost?item=5&page=1' res = api.apiFunction(test_parameter['prefix'], header, apiName, 'get', None) restext = json.loads(res.text) postId = restext['data'][0]['id'] apiName = '/api/v2/identity/sendGift' header['X-Auth-Token'] = test_parameter['user1_token'] header['X-Auth-Nonce'] = test_parameter['user1_nonce'] body = {'giftId': giftId, 'postId': postId} api.apiFunction(test_parameter['prefix'], header, apiName, 'post', body) today1List.append({ 'name': giftName, 'point': giftPoint, 'createAt': int(time.time()) })
def sendGiftToPost(masterid, userid): sql = "select g.id, g.point from gift g join gift_category gc on category_id = gc.id where gc.type = 'post_gif'" dbResult = dbConnect.dbQuery(test_parameter, sql) giftId = dbResult[0][0] giftPoint = dbResult[0][1] result = api.user_login(test_parameter['prefix'], 'broadcaster100', test_parameter['user_pass']) header['X-Auth-Token'] = result['token'] header['X-Auth-Nonce'] = result['nonce'] apiName = '/api/v2/liveMaster/photoPost' body = {"photoPath": test_parameter['photo_url'], "content": "動態送禮。。測試中"} api.apiFunction(test_parameter['prefix'], header, apiName, 'post', body) apiName = '/api/v2/liveMaster/' + masterid + '/photoPost?item=5&page=1' res = api.apiFunction(test_parameter['prefix'], header, apiName, 'get', None) restext = json.loads(res.text) postId = restext['data'][0]['id'] result = api.user_login(test_parameter['prefix'], 'track0077', test_parameter['user_pass']) header['X-Auth-Token'] = result['token'] header['X-Auth-Nonce'] = result['nonce'] apiName = '/api/v2/identity/sendGift' body = {'giftId': giftId, 'postId': postId} api.apiFunction(test_parameter['prefix'], header, apiName, 'post', body) totalPoint[userid] += giftPoint totalMaster[masterid] += giftPoint newMaster[masterid] += giftPoint
def OneToOneMessage(): result = api.user_login(test_parameter['prefix'], 'broadcaster100', test_parameter['user_pass']) header['X-Auth-Token'] = result['token'] header['X-Auth-Nonce'] = result['nonce'] apiName = '/api/v2/liveMaster/instantMessage' content = '哈囉,你好。歡迎來到Truelove😄😄😄 ' body = { "receiver": URlist[2], "msgType": "text", "textContent": content, "imageUrl": "", "previewUrl": "", "videoUrl": "", "origin": "giftGiversToSendIM" } api.apiFunction(test_parameter['prefix'], header, apiName, 'post', body) apiName = '/api/v2/identity/instantMessage' header['X-Auth-Token'] = test_parameter['user_token'] header['X-Auth-Nonce'] = test_parameter['user_nonce'] content = '哈囉,你好。我是你的小粉絲😄😄😄 ' body = { "receiver": BClist[15], "msgType": "text", "textContent": content, "imageUrl": "", "previewUrl": "", "videoUrl": "", "origin": "giftGiversToSendIM" } api.apiFunction(test_parameter['prefix'], header, apiName, 'post', body) totalPoint[URlist[2]] += 20 totalMaster[BClist[15]] += 20 newMaster[BClist[15]] += 20
def testHistoryTalkWithCS(self): # 與客服的訊息不限時間 sqlList = [] changelist = [] apiName = '/api/v2/identity/instantMessage/history?dialogId={id}&item=10&page=1' UpdateDatetime = datetime.fromtimestamp(int( time.time())) - timedelta(days=366) sqlList.append("update instant_message set create_at = '" + UpdateDatetime.strftime('%Y-%m-%d %H:%M:%S') + "' where dialog_id = '" + self.dialogIdList[0] + "'") dbConnect.dbSetting(test_parameter['db'], sqlList) apiName = apiName.replace('{id}', self.dialogIdList[0]) #print(apiName) header['X-Auth-Token'] = test_parameter['user_token'] header['X-Auth-Nonce'] = test_parameter['user_nonce'] res = api.apiFunction(test_parameter['prefix'], header, apiName, 'get', None) restext = json.loads(res.text) assert res.status_code // 100 == 2 assert restext['totalCount'] == 2 changelist.append(idList[3]) header['X-Auth-Token'] = test_parameter['backend_token'] header['X-Auth-Nonce'] = test_parameter['backend_nonce'] api.change_roles(test_parameter['prefix'], header, changelist, '4') #轉成直播主 header['X-Auth-Token'] = test_parameter['user_token'] header['X-Auth-Nonce'] = test_parameter['user_nonce'] res = api.apiFunction(test_parameter['prefix'], header, apiName, 'get', None) restext = json.loads(res.text) assert res.status_code // 100 == 2 assert restext['totalCount'] == 2
def testNofitycation(scenario, identity, uid, action, token, nonce, description, content, link, expected): funDic = { 'track': setTrackingAndBlock, 'post': postPhoto, 'comment': postComment, 'sendPost': sendGift, 'onAir': onAir } funDic[action]() if action != '' else None time.sleep(30) header['X-Auth-Nonce'] = test_parameter[nonce] header['X-Auth-Token'] = test_parameter[token] urlName = '/api/v2/identity/' + idList[uid] + '/notification/listMore' res = api.apiFunction(test_parameter['prefix'], header, urlName, 'get', None) restext = json.loads(res.text) assert res.status_code // 100 == expected if identity == 'black': restext['data'] == [] else: assert restext['data'][0]['action'] == description assert restext['data'][0]['content'] == content assert link in restext['data'][0]['link'] if len(restext['data']) < 20: assert 'offset' not in restext elif (len(restext['data']) >= 20): offset = restext['offset'] res1 = api.apiFunction(test_parameter['prefix'], header, urlName + '?offset=' + str(offset), 'get', None) restext1 = json.loads(res1.text) assert res1.status_code // 100 == 2 assert restext['data'] != restext1['data']
def testAlreadySendMessage(self): # 已送過訊息給該用戶;但其他直播主可以撈出 getList = [] header['X-Auth-Token'] = test_parameter['broadcaster_token'] header['X-Auth-Nonce'] = test_parameter['broadcaster_nonce'] self.sendMessage(idList[0], 'newUsersToSendIM') apiName = '/api/v2/liveMaster/newUsersToSendIM' res = api.apiFunction(test_parameter['prefix'], header, apiName, 'get', None) restext = json.loads(res.text) if idList[0] in self.newlist: self.newlist.remove(idList[0]) for i in restext['data']: assert i['id'] in self.newlist assert res.status_code // 100 == 2 assert restext['totalCount'] == len(self.newlist) assert restext['sentCount'] == 1 header['X-Auth-Token'] = test_parameter['broadcaster1_token'] header['X-Auth-Nonce'] = test_parameter['broadcaster1_nonce'] apiName = '/api/v2/liveMaster/newUsersToSendIM' res = api.apiFunction(test_parameter['prefix'], header, apiName, 'get', None) restext = json.loads(res.text) for i in restext['data']: getList.append(i['id']) assert res.status_code // 100 == 2 assert restext['totalCount'] == len(self.newlist) + 1 assert restext['sentCount'] == 0 assert idList[0] in getList
def testCSGetOverhalfYear(self): # 客服可取得半年內的資料 sqlList = [] apiName = '/api/v2/identity/instantMessage/history?dialogId={id}&item=10&page=1' UpdateDatetime = datetime.fromtimestamp(int( time.time())) - timedelta(days=183) sqlList.append("update instant_message set create_at = '" + UpdateDatetime.strftime('%Y-%m-%d %H:%M:%S') + "' where dialog_id = '" + self.dialogIdList[0] + "'") dbConnect.dbSetting(test_parameter['db'], sqlList) apiName = apiName.replace('{id}', self.dialogIdList[0]) header['X-Auth-Token'] = test_parameter['liveController1_token'] header['X-Auth-Nonce'] = test_parameter['liveController1_nonce'] res = api.apiFunction(test_parameter['prefix'], header, apiName, 'get', None) restext = json.loads(res.text) assert res.status_code // 100 == 2 assert restext['totalCount'] == 2 sqlList.clear() UpdateDatetime = datetime.fromtimestamp(int( time.time())) - timedelta(days=184) sqlList.append("update instant_message set create_at = '" + UpdateDatetime.strftime('%Y-%m-%d %H:%M:%S') + "' where dialog_id = '" + self.dialogIdList[0] + "'") dbConnect.dbSetting(test_parameter['db'], sqlList) apiName = apiName.replace('{id}', self.dialogIdList[0]) header['X-Auth-Token'] = test_parameter['liveController1_token'] header['X-Auth-Nonce'] = test_parameter['liveController1_nonce'] res = api.apiFunction(test_parameter['prefix'], header, apiName, 'get', None) restext = json.loads(res.text) assert res.status_code // 100 == 2 assert restext['totalCount'] == 0
def sendMessage(self): apiName = '/api/v2/liveMaster/instantMessage' header['X-Auth-Token'] = test_parameter['broadcaster2_token'] header['X-Auth-Nonce'] = test_parameter['broadcaster2_nonce'] content = '哈囉,你好。歡迎來到Truelove😄😄😄 ' body = { "receiver": idlist[3], "msgType": "text", "textContent": content, "imageUrl": "", "previewUrl": "", "videoUrl": "", "origin": "giftGiversToSendIM" } api.apiFunction(test_parameter['prefix'], header, apiName, 'post', body) apiName = '/api/v2/identity/instantMessage' header['X-Auth-Token'] = test_parameter['user1_token'] header['X-Auth-Nonce'] = test_parameter['user1_nonce'] content = '哈囉,你好。我是你的小粉絲😄😄😄 ' body = { "receiver": idlist[4], "msgType": "text", "textContent": content, "imageUrl": "", "previewUrl": "", "videoUrl": "", "origin": "giftGiversToSendIM" } api.apiFunction(test_parameter['prefix'], header, apiName, 'post', body) today1List.append({'name': '20點聊天訊息', 'point': 20, 'createAt': int(time.time())})
def setup_class(self): sqlList = [] header['X-Auth-Token'] = test_parameter['backend_token'] header['X-Auth-Nonce'] = test_parameter['backend_nonce'] self.idlist.append(api.search_user(test_parameter['prefix'], test_parameter['broadcaster_acc'], header)) self.idlist.append(api.search_user(test_parameter['prefix'], test_parameter['broadcaster1_acc'], header)) self.idlist.append(api.search_user(test_parameter['prefix'], test_parameter['user_acc'], header)) self.idlist.append(api.search_user(test_parameter['prefix'], test_parameter['user1_acc'], header)) getLinkAddr = '/api/v2/backend/announcement/list?item=1000&page=1' delLinkaddr = '/api/v2/backend/announcement/{announcementid}' res = api.apiFunction(test_parameter['prefix'], header, getLinkAddr, 'get', '') restext = json.loads(res.text) for i in restext['data']: linkAddr = delLinkaddr.replace('{announcementid}', str(i['id'])) res = api.apiFunction(test_parameter['prefix'], header, linkAddr, 'delete', '') #update token sqlstr = "update identity set push_token = '" + "' where id in ('" for i in range(4): sqlstr += self.idlist[i] if i < 3: sqlstr += "', '" else: sqlstr += "')" sqlList.append(sqlstr) dbConnect.dbSetting(test_parameter['db'], sqlList)
def setup_module(): initdata.set_test_data(env, test_parameter) header['X-Auth-Token'] = test_parameter['backend_token'] header['X-Auth-Nonce'] = test_parameter['backend_nonce'] idList.append( api.search_user(test_parameter['prefix'], test_parameter['broadcaster_acc'], header)) idList.append( api.search_user(test_parameter['prefix'], test_parameter['backend_acc'], header)) idList.append( api.search_user(test_parameter['prefix'], test_parameter['liveController1_acc'], header)) idList.append( api.search_user(test_parameter['prefix'], test_parameter['user_acc'], header)) idList.append('3420dkajfpi4wujfasdkdp') header['X-Auth-Token'] = test_parameter['liveController1_token'] header['X-Auth-Nonce'] = test_parameter['liveController1_nonce'] url = '/api/v2/identity/myInfo' body = { 'nickname': '231QQ', 'sex': 0, 'isPublicSexInfo': True, 'description': '我是liveController!!!', 'birthday': int(time.time() - 5000) } api.apiFunction(test_parameter['prefix'], header, url, 'put', body) time.sleep(30)
def testGetUserInfo(scenario, token, nonce, idIndex, role, isUpdate, expect): apiName = '/api/v2/identity/userInfo/' header['X-Auth-Token'] = test_parameter[token] header['X-Auth-Nonce'] = test_parameter[nonce] #print(apiName + idList[idIndex]) res = api.apiFunction(test_parameter['prefix'], header, apiName + idList[idIndex], 'get', None) assert res.status_code // 100 == expect if expect == 2: restext = json.loads(res.text) assert restext['data']['roles'][0]['name'] == role assert len(restext['data']['profilePicture']) > 0 assert len(restext['data']['nickname']) > 0 assert len(restext['data']['userLevel']['levelId']) > 0 assert restext['data']['userLevel']['levelNum'] >= 0 if isUpdate: url = '/api/v2/identity/myInfo' body = { 'nickname': '466123QQ', 'sex': 1, 'isPublicSexInfo': True, 'description': 'haha', 'birthday': int(time.time() - 5000) } api.apiFunction(test_parameter['prefix'], header, url, 'put', body) checkCache(header, apiName + idList[idIndex], restext, body)
def testGetSingelAnnounce(self): header['X-Auth-Token'] = test_parameter['user_token'] header['X-Auth-Nonce'] = test_parameter['user_nonce'] apilink = '/api/v2/identity/{user id}/announcement/list?item=10&page=1' linkAddr = apilink.replace('{user id}',self.idlist[2]) res = api.apiFunction(test_parameter['prefix'], header, linkAddr, 'get', '') restext = json.loads(res.text) id = restext['data'][0]['id'] #取得正確資料 linkAddr = '/api/v2/identity/announcement/' + str(id) res = api.apiFunction(test_parameter['prefix'], header, linkAddr, 'get', '') restext = json.loads(res.text) assert res.status_code == 200 assert restext['data']['title'] == 'Only for users' assert restext['data']['content'] == '針對一般使用者公告' assert restext['data']['source']['department'] == self.dep[0] #給錯誤的id linkAddr = '/api/v2/identity/announcement/0' res = api.apiFunction(test_parameter['prefix'], header, linkAddr, 'get', '') restext = json.loads(res.text) assert int(res.status_code / 100) == 4 #給不存在的token/nonce header['X-Auth-Token'] = test_parameter['err_token'] header['X-Auth-Nonce'] = test_parameter['err_nonce'] linkAddr = '/api/v2/identity/announcement/' + str(id) res = api.apiFunction(test_parameter['prefix'], header, linkAddr, 'get', '') restext = json.loads(res.text) assert int(res.status_code / 100) == 4 #給正確的token/nonce,但這則公告不屬於我 header['X-Auth-Token'] = test_parameter['broadcaster_token'] header['X-Auth-Nonce'] = test_parameter['broadcaster_nonce'] linkAddr = '/api/v2/identity/announcement/' + str(id) res = api.apiFunction(test_parameter['prefix'], header, linkAddr, 'get', '') restext = json.loads(res.text) assert int(res.status_code / 100) == 4
def OneToOneMessage(): sqlList = [] sqlList.append("update remain_points set remain_points = 50 where identity_id = '" + URlist[2] + "'") dbConnect.dbSetting(test_parameter['db'], sqlList) result = api.user_login(test_parameter['prefix'], 'broadcaster100', test_parameter['user_pass']) header['X-Auth-Token'] = result['token'] header['X-Auth-Nonce'] = result['nonce'] apiName = '/api/v2/liveMaster/instantMessage' content = '哈囉,你好。歡迎來到Truelove😄😄😄 ' body = { "receiver": URlist[2], "msgType": "text", "textContent": content, "imageUrl": "", "previewUrl": "", "videoUrl": "", "origin": "giftGiversToSendIM" } api.apiFunction(test_parameter['prefix'], header, apiName, 'post', body) apiName = '/api/v2/identity/instantMessage' header['X-Auth-Token'] = test_parameter['user_token'] header['X-Auth-Nonce'] = test_parameter['user_nonce'] content = '哈囉,你好。我是你的小粉絲😄😄😄 ' body = { "receiver": BClist[15], "msgType": "text", "textContent": content, "imageUrl": "", "previewUrl": "", "videoUrl": "", "origin": "giftGiversToSendIM" } api.apiFunction(test_parameter['prefix'], header, apiName, 'post', body) totalPoint[URlist[2]] += 20
def createAccountByEmail(): sqlStr = "select id from identity where login_id = '*****@*****.**'" result = dbConnect.dbQuery(test_parameter['db'], sqlStr) sqlStr = "update identity set login_id = '" + str(int(time.time())) + "' where id = '" + result[0] + "'" dbConnect.dbSetting(test_parameter['db'], [sqlStr]) head = {'Content-Type': 'application/json'} url = '/api/v2/identity/register/email/send' body = { 'email': '*****@*****.**', 'password': '******', 'pushToken': 'emailRegrjhjayegrkldfkhgdkfasd' } res = api.apiFunction(test_parameter['prefix'], head, url, 'post', body) restext = json.loads(res.text) tempToken = restext['data']['tmpToken'] sqlStr = "select activate_code from identity_email_register_history where token = '" + tempToken + "'" result = dbConnect.dbQuery(test_parameter['db'], sqlStr) actCode = result[0][0] url = '/api/v2/identity/register/email/activate' body = { "tmpToken": tempToken, "activateCode": actCode, "pushToken": "emailRegrjhjayegrkldfkhgdkfasd" } api.apiFunction(test_parameter['prefix'], head, url, 'post', body) sqlStr = "select id from identity where login_id = '*****@*****.**'" result = dbConnect.dbQuery(test_parameter['db'], sqlStr) print('email註冊的uid(%s)'%result[0][0]) return result[0][0]
def testUserInBlack(self): # 用戶在A直播主黑名單內;但不在B直播主名單內 header['X-Auth-Token'] = test_parameter['broadcaster_token'] header['X-Auth-Nonce'] = test_parameter['broadcaster_nonce'] apiName = '/api/v2/liveMaster/newUsersToSendIM' body = {'userId': idList[0]} api.add_block_user(test_parameter['prefix'], header, body) res = api.apiFunction(test_parameter['prefix'], header, apiName, 'get', None) restext = json.loads(res.text) if idList[0] in self.newlist: self.newlist.remove(idList[0]) for i in restext['data']: assert i['id'] in self.newlist assert res.status_code // 100 == 2 assert restext['totalCount'] == len(self.newlist) assert restext['sentCount'] == 0 api.delete_block_user(test_parameter['prefix'], header, idList[0]) self.newlist.append(idList[0]) header['X-Auth-Token'] = test_parameter['broadcaster1_token'] header['X-Auth-Nonce'] = test_parameter['broadcaster1_nonce'] apiName = '/api/v2/liveMaster/newUsersToSendIM' res = api.apiFunction(test_parameter['prefix'], header, apiName, 'get', None) restext = json.loads(res.text) for i in restext['data']: assert i['id'] in self.newlist assert res.status_code // 100 == 2 assert restext['totalCount'] == len(self.newlist) assert restext['sentCount'] == 0
def cancelTracking(self): uid = followList[lmList[1]][0] apiName = '/api/v2/identity/track/' + lmList[1] header['X-Auth-Token'] = fansList[uid][0] header['X-Auth-Nonce'] = fansList[uid][1] api.apiFunction(test_parameter['prefix'], header, apiName, 'delete', None) followList[lmList[1]].pop(0)
def testResetPassword(codition, token, nonce, PWD, expected): header['X-Auth-Token'] = test_parameter[token] header['X-Auth-Nonce'] = test_parameter[nonce] for i in range(len(PWD)): urlName = '/api/v2/identity/password/reset' if codition == 'pwdNotMatch': body = {"newPassword": PWD[i], "newPasswordConfirm": "Tl0214Hello"} else: body = {"newPassword": PWD[i], "newPasswordConfirm": PWD[i]} res = api.apiFunction(test_parameter['prefix'], header, urlName, 'patch', body) assert res.status_code // 100 == expected[i] if codition == 'happyCase': urlName = '/api/v2/identity/auth/login' body = { "account": test_parameter['user_acc'], "password": PWD[i], "pushToken": "pwdkusaoxcjfoiakfjosaidjf" } res = api.apiFunction(test_parameter['prefix'], {"Content-Type": "application/json"}, urlName, 'post', body) assert res.status_code // 100 == 2 restext = json.loads(res.text) header['X-Auth-Token'] = restext['data']['token'] header['X-Auth-Nonce'] = restext['data']['nonce']
def testLiveController(self): midlist = [] apilink = '/api/v2/identity/{{uid}}/role/liveController?item=20&page=1' header['X-Auth-Token'] = test_parameter['backend_token'] header['X-Auth-Nonce'] = test_parameter['backend_nonce'] #非任何人的場控 uid = api.search_user(test_parameter['prefix'], test_parameter['user_acc'], header) mid = api.search_user(test_parameter['prefix'], test_parameter['broadcaster_acc'], header) linkadd = apilink.replace('{{uid}}', uid) res = api.apiFunction(test_parameter['prefix'], header, linkadd, 'get', '') restext = json.loads(res.text) assert int(res.status_code / 100) == 4 assert restext['Message'] == "User's live controller is not existed." #設為場控 header['X-Auth-Token'] = test_parameter['broadcaster_token'] header['X-Auth-Nonce'] = test_parameter['broadcaster_nonce'] addController = '/api/v2/liveMaster/liveController' body = {"userId": uid} res = api.apiFunction(test_parameter['prefix'], header, addController, 'post', body) assert int(res.status_code / 100) == 2 res = api.apiFunction(test_parameter['prefix'], header, linkadd, 'get', '') restext = json.loads(res.text) assert int(res.status_code / 100) == 2 assert restext['data'][0]['userId'] == mid assert restext['totalCount'] == 1 #直播主變成一般用戶 header['X-Auth-Token'] = test_parameter['backend_token'] header['X-Auth-Nonce'] = test_parameter['backend_nonce'] midlist.append(mid) api.change_roles(test_parameter['prefix'], header, midlist, 5) res = api.apiFunction(test_parameter['prefix'], header, linkadd, 'get', '') restext = json.loads(res.text) assert int(res.status_code / 100) == 4 assert restext['Message'] == "User's live controller is not existed."
def sendMessage(original, repeats, timeList, today, yesterday, thisWeek, thisMonth, lastMonth): valuesList = [] header['X-Auth-Token'] = test_parameter['broadcaster_token'] header['X-Auth-Nonce'] = test_parameter['broadcaster_nonce'] apiName = '/api/v2/liveMaster/instantMessage' content = '哈囉,你好。😄😄😄 ' valuesList.extend([idList[0], original, 'text', content, '', '', '']) body = createBody(valuesList) api.apiFunction(test_parameter['prefix'], header, apiName, 'post', body) apiName = '/api/v2/identity/instantMessage' header['X-Auth-Token'] = test_parameter['user_token'] header['X-Auth-Nonce'] = test_parameter['user_nonce'] for i in range(repeats): valuesList.clear() content = '哈囉大主播,我是你的小粉1號;第' + str(i + 1) + '次傳訊息' valuesList.extend([idList[2], '', 'text', content, '', '', '']) body = createBody(valuesList) api.apiFunction(test_parameter['prefix'], header, apiName, 'post', body) #print(res.text) if idList[0] in today: today[idList[0]] += 20 else: today[idList[0]] = 20 if idList[0] in thisMonth: thisMonth[idList[0]] += 20 else: thisMonth[idList[0]] = 20 if idList[0] in thisWeek: thisWeek[idList[0]] += 20 else: thisWeek[idList[0]] = 20
def addForbidden(self): apiName = '/api/v2/backend/forbidden' header['X-Auth-Token'] = test_parameter['backend_token'] header['X-Auth-Nonce'] = test_parameter['backend_nonce'] body = {'word': ''} for i in self.words: body['word'] = i api.apiFunction(test_parameter['prefix'], header, apiName, 'post', body)
def sendMessage(self, uid, orignal): valuesList = [] apiName = '/api/v2/liveMaster/instantMessage' content = '哈囉,你好。😄😄😄 ' valuesList.extend([uid, orignal, 'text', content, '', '', '']) body = self.createBody(valuesList) api.apiFunction(test_parameter['prefix'], header, apiName, 'post', body)
def createMessage(recevier, sender, header, msgtype, content, photo_url, preview_url, video_url): valuesList = [] apiName = '/api/v2/backend/instantMessage' valuesList.extend([ recevier, sender, msgtype, content, photo_url, preview_url, video_url ]) body = createBody(valuesList) api.apiFunction(test_parameter['prefix'], header, apiName, 'post', body)
def testLiveMasterBlackUser(self): # 直播主封鎖該名user,該user仍可傳訊息 header['X-Auth-Token'] = test_parameter['broadcaster_token'] header['X-Auth-Nonce'] = test_parameter['broadcaster_nonce'] body = {'userId': idList[3]} api.add_block_user(test_parameter['prefix'], header, body) valuesList = [] sqlStr = "select experience, identity_id from user_experience where identity_id in ('" + idList[ 0] + "', '" + idList[3] + "') order by identity_id" bfExperience = self.getDBData(sqlStr) self.updatePoint(20, idList[3]) #直播主封鎖該名user;直播主聊天室無該名user,但該user卻可看到聊天室 apiName = '/api/v2/identity/instantMessage/roomList?item=20&page=1' res = api.apiFunction(test_parameter['prefix'], header, apiName, 'get', None) assert res.status_code // 100 == 2 restext = json.loads(res.text) assert idList[3] not in restext['data'] header['X-Auth-Token'] = test_parameter['user_token'] header['X-Auth-Nonce'] = test_parameter['user_nonce'] res = api.apiFunction(test_parameter['prefix'], header, apiName, 'get', None) assert res.status_code // 100 == 2 restext = json.loads(res.text) assert restext['data']['userId'] == idList[0] dialogId = restext['data']['dialogId'] apiName = '/api/v2/identity/instantMessage' header['X-Auth-Token'] = test_parameter['user_token'] header['X-Auth-Nonce'] = test_parameter['user_nonce'] content = '哈囉大主播,我是你的小粉1號' valuesList.extend([idList[0], '', 'text', content, '', '', '']) body = createBody(valuesList) res = api.apiFunction(test_parameter['prefix'], header, apiName, 'post', body) restest = json.loads(res.text) assert res.status_code // 100 == 2 assert restest['data']['pointLeft'] == 0 afExperience = self.getDBData(sqlStr) for i in range(2): if bfExperience[i][1] == idList[0]: assert afExperience[i][0] - bfExperience[i][0] == 20 else: assert afExperience[i][0] - bfExperience[i][0] == 60 #直播主無法取得黑名單聊天室的內容;但被黑的user卻仍可以看到 apiName = '/api/v2/identity/instantMessage/history?dialogId=' + dialogId res = api.apiFunction(test_parameter['prefix'], header, apiName, 'post', body) restest = json.loads(res.text) assert res.status_code // 100 == 2 assert restest['data']['receiver'] == idList[0] header['X-Auth-Token'] = test_parameter['broadcaster_token'] header['X-Auth-Nonce'] = test_parameter['broadcaster_nonce'] res = api.apiFunction(test_parameter['prefix'], header, apiName, 'post', body) restest = json.loads(res.text) assert res.status_code // 100 == 2 assert restest['data'] == []
def teardown_class(self): header['X-Auth-Token'] = test_parameter['cs_token'] header['X-Auth-Nonce'] = test_parameter['cs_nonce'] getLinkAddr = '/api/v2/backend/announcement/list?item=1000&page=1' delLinkaddr = '/api/v2/backend/announcement/{announcementid}' res = api.apiFunction(test_parameter['prefix'], header, getLinkAddr, 'get', '') restext = json.loads(res.text) for i in restext['data']: linkAddr = delLinkaddr.replace('{announcementid}', str(i['id'])) res = api.apiFunction(test_parameter['prefix'], header, linkAddr, 'delete', '')
def loginByLine(): url = '/api/v2/3rdParty/line/verify' idToken, accessToken = (lineLogin.line_login()) body = { 'accessToken': accessToken, 'idToken': idToken } api.apiFunction(test_parameter['prefix'], {}, url, 'post', body) sqlStr = "select identity_id from identity_third_party" result = dbConnect.dbQuery(test_parameter['db'], sqlStr) return result[0][0]
def setup_class(self): valuesList = [] apiName = '/api/v2/liveMaster/instantMessage' header['X-Auth-Token'] = test_parameter['broadcaster_token'] header['X-Auth-Nonce'] = test_parameter['broadcaster_nonce'] content = '哈囉,歡迎到Truelove新天地。來看看我的直播😄😄😄 ' valuesList.extend( [idList[3], 'giftGiversToSendIM', 'text', content, '', '', '']) body = createBody(valuesList) api.apiFunction(test_parameter['prefix'], header, apiName, 'post', body)
def testVerifyActive(self, scenario, expected): urlName = '/api/v2/identity/password/verify' body = {} if len(self.info) < 2: self.getActiveCode() if scenario == 'tokenWrong': body = { "tmpToken": "wJalrXUtnFEMI...", "activateCode": self.info[0]['activateCode'] } elif scenario == 'codeWrong': body = { "tmpToken": self.info[0]['tmpToken'], "activateCode": '214324' } elif scenario == 'notMatch': body = { "tmpToken": self.info[0]['tmpToken'], "activateCode": self.info[1]['activateCode'] } elif scenario == 'expired': sqlList = [ "update identity_pwd_reset_history set expires_in = 1 where token = '" + self.info[0]['tmpToken'] + "'" ] dbConnect.dbSetting(test_parameter['db'], sqlList) body = { "tmpToken": self.info[0]['tmpToken'], "activateCode": self.info[0]['activateCode'] } time.sleep(2) elif scenario == 'success': body = { "tmpToken": self.info[1]['tmpToken'], "activateCode": self.info[1]['activateCode'] } res = api.apiFunction(test_parameter['prefix'], {'Content-Type': 'application/json'}, urlName, 'post', body) assert res.status_code // 100 == expected if res.status_code // 100 == 2: head = { 'Content-Type': 'application/json', 'Connection': 'Keep-alive' } restext = json.loads(res.text) urlName = '/api/v2/identity/myInfo' head['X-Auth-Token'] = restext['data']['token'] head['X-Auth-Nonce'] = restext['data']['nonce'] res = api.apiFunction(test_parameter['prefix'], head, urlName, 'get', None) restext = json.loads(res.text) assert restext['data']['verifiedEmail'] == '*****@*****.**'
def getActiveCode(self, bindMail): url = '/api/v2/identity/binding/email/send' body = {'email': bindMail} api.apiFunction(test_parameter['prefix'], self.head, url, 'post', body) sqlStr = "select max(id) from identity_email_bind_history" result = dbConnect.dbQuery(test_parameter['db'], sqlStr) sqlStr = "select activate_code from identity_email_bind_history where id = " + str( result[0][0]) result = dbConnect.dbQuery(test_parameter['db'], sqlStr) #pprint(result) return result[0][0]
def runActiveCode(self, bindMail): sqlStr = "select activate_code from identity_email_bind_history where id = (select max(id) from identity_email_bind_history)" result = dbConnect.dbQuery(test_parameter['db'], sqlStr) actCode = result[0][0] url = '/api/v2/identity/binding/email/activate' body = { "source": "advance", "email": bindMail, "password": '******', "activateCode": actCode } api.apiFunction(test_parameter['prefix'], self.head, url, 'post', body)
def setup_class(self): apiName = '/api/v2/identity/track' header['X-Auth-Token'] = test_parameter['user_token'] header['X-Auth-Nonce'] = test_parameter['user_nonce'] body = {"liveMasterId": idlist[0]} api.apiFunction(test_parameter['prefix'], header, apiName, 'post', body) apiName = '/api/v2/identity/track/photoPost?item=10&page=1' res = api.apiFunction(test_parameter['prefix'], header, apiName, 'get', None) restext = json.loads(res.text) self.postId = restext['data'][0][ 'id'] if restext['totalCount'] > 0 else None