def test_a_get_user(self): '''获取用户信息''' self.udp(self.getParam().get_all_user) self.assertEqual(self.res['status'], 200) self.assertEqual(self.res['id'], self.in_param['id']) data = self.res['result']['data'] if data: for i in data: umac = i['umac'] self.assertEqual(len(umac), 12) self.assertNotIn(umac, '000000000000') self.assertTrue(self.misc().isValidMac(umac)) # 校验mac是否合法 onway = i['onway'] # 连接路由器方式:wlan:1 lan口:2 usingstate = i['usingstate'] # 连接路由器方式:wlan:1 lan口:2 uip = i['uip'] self.assertTrue(self.misc().judge_legal_ip(uip)) # 校验ip是否合法 self.assertIn(onway, [1, 2]) self.assertIn(usingstate, [1, 2, 3]) if onway == 1: widx = i['widx'] # ssid self.assertIn(widx, [0, 1, 2, 3, 4]) log.debug('assert ok') else: log.debug('data is null')
def compareDict(self, a='', b=''): """ 更新字典 :param parm_temp: 模板字典 :param new_parm: 更新模板字典 :return: """ try: if isinstance(a, dict) and b: for x in range(len(a)): temp_key = a.keys()[x] temp_value = a[temp_key] if isinstance(b, dict) and temp_value: for y in range(len(b)): temp_key_b = b.keys()[y] temp_value_b = b[temp_key_b] if not isinstance(temp_value, (list, dict)) and not isinstance( temp_value_b, (list, dict)): if temp_key == temp_key_b: if temp_value != temp_value_b: log.debug( 'recv:{{{0}:{1}}} != expect:{{{2}:{3}}}' .format(temp_key, temp_value, temp_key_b, temp_value_b)) self.compareDict(temp_value, temp_value_b) except BaseException as msg: raise msg
def test_a_get_wifi(self): '''获取wifi配置''' self.udp(self.getParam().get_wifi) self.assertEqual(self.res['status'], 200) data = self.res['result']['data'] if data: for i in data: txpower = i['txpower'] type = i['type'] biisolation = i['biisolation'] channel = i['channel'] self.assertLessEqual(txpower, 100) self.assertIn(type, [2, 5]) self.assertIn(biisolation, [0, 1]) self.assertLessEqual(channel, 13) self.assertNotEqual(channel, 0) ssidlist = i['ssidlist'] for j in ssidlist: enable = j['enable'] encrypt = j['encrypt'] isolation = j['isolation'] widx = j['widx'] self.assertIn(enable, [0, 1]) self.assertIn(encrypt, [0, 1]) self.assertIn(isolation, [0, 1]) self.assertIn(widx, [0, 1, 2, 3, 4]) log.debug('assert is ok') else: log.debug('data is null')
def _conn(self): try: self.client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) self.address = (self.addr, self.port) self.client_socket.settimeout(30) log.debug('_conn succ:{}'.format(self.address)) except: log.error('_conn fail')
def send(self,send_data): send_data = Misc.jsonToStr(send_data) try: log.debug("send data:{}".format(send_data)) # 发送成功响应值是发送数据的长度 send_len = self.client_socket.sendto(send_data, self.address) # res = self.client_socket.sendto('sdfasfd', ('172.16.16.1',2048)) log.debug('send succ [len:{}]'.format(send_len)) return send_len except: log.error('send error') return 0
def copy_file(cls, filepath, newpath): """ 复制指定文件到目标目录; :param filepath: :param newpath: :return: """ try: shutil.copy(filepath, newpath) log.debug(u'copy=>ok') except BaseException as msg: print msg
def recv(self): self.receive_data, self.sender_address = self.client_socket.recvfrom(2048) try: res = Misc.strtojson(self.receive_data) log.debug("recv data: {}".format(res)) if not isinstance(res,dict): log.error('res is not dict:500') return res except BaseException as msg: log.error('recv data:{}'.format(self.receive_data)) raise msg except: msg = 'recv timeout' log.error(msg)
def del_file_the_earliest(cls, dir, maxFileNum): """ 当删除指定目录dir中文件总数>500,删除最早的一个文件 :param dir: :param filename: :return: """ log.debug(dir) cls.dir = str(dir) if not os.listdir(dir): log.debug(u'目录中没有文件') while len(os.listdir(dir)) > int(maxFileNum): try: lists = os.listdir(dir) lists.sort(key=lambda fn: os.path.getmtime(dir + '/' + fn)) file_old0 = os.path.join(lists[0]) file_old1 = os.path.join(lists[1]) # 返回最早生成的文件名称 log.debug('remove report file:%s' % file_old0) log.debug('remove report file:%s' % file_old1) os.remove(cls.dir + file_old0) os.remove(cls.dir + file_old1) except Exception as msg: log.error(msg) raise msg
def del_file(cls, dir, filename): """ 删除指定目录dir中与filename不同的文件 :param dir: :param filename: :return: """ cls.dir = str(dir) try: if os.listdir(dir): for file in os.listdir(cls.dir): if file != filename: os.remove(cls.dir + file) log.debug('del_file => ok') except Exception as msg: log.error('del_file => error') raise msg
def move_screenshot(cls, tarpath="Fail||Pass"): """ 移动截图到指定dirname目录中 :return:tarpath = Fail||Pass """ try: dirname = datetime.datetime.now().strftime("%Y%m%d.%H%M%S.%f")[:-3] old_path = Misc.ABSpath() + "/Output/Screenshot/" + tarpath + "/" path = Misc.ABSpath() + "/Output/Screenshot/" new_path_screen = path + dirname for root, dirs, files in os.walk(old_path): if len(files) != 0: Misc.mkdir(old_path, new_path_screen) log.debug(u'创建新路径') else: log.debug(u'当前目录无文件,不创建新目录') if len(dirs) == 0: for i in range(len(files)): log.debug(u'查找file') if files[i][-3:] == 'png': log.debug(u'查找.png图片') old_path_file = old_path + "/" + files[i] new_path_screen_file = new_path_screen + "/" + files[ i] shutil.move(old_path_file, new_path_screen_file) log.debug(u'执行移动') else: log.debug(u'当前路径无.png图片') log.debug(u'移动截图成功') except Exception as msg: log.error(u'移动截图失败') print msg raise
def send(self, send_data): log.debug('send_data:{}'.format(send_data)) self.server_socket.sendto(self.receive_data, self.client_address)
def recv(self): self.receive_data, self.client_address = self.server_socket.recvfrom( 1024) log.debug("接收到了客户端 %s 传来的数据: %s" % (self.client_address, self.receive_data.decode())) return self.receive_data