from test.helpers.syscmd import SysCommand import unittest import subprocess class Qwifi(unittest.TestCase): def __init__(self, testname, testfunc, signal): super(Qwifi, self).__init__(testfunc) self.__signal = signal self._testMethodDoc = testname # WiFi SERVERIP fixed at the moment. self._serverip = "192.168.5.1" def execute(self): # First check connection with the wifi server using ping command #str_cmd = "ping -c 1 {} > /dev/null".format(self._serverip) #wifi_ping = SysCommand("wifi_ping", str_cmd) #wifi_ping.execute() #res = subprocess.call(['ping', '-c', '1', self._serverip]) p = subprocess.Popen(['ping','-c','1',self._serverip,'-W','2'],stdout=subprocess.PIPE) p.wait() res=p.poll() if res == 0: str_cmd= "iw wlan0 link" wifi_stats = SysCommand("wifi_stats", str_cmd) if wifi_stats.execute() == 0: w_stats = wifi_stats.getOutput().decode('ascii').splitlines() #self._longMessage = str(self.__raw_out).replace("'", "") if not w_stats[0] == "Not connected.": signal_st = w_stats[5].split(" ")[1] try: int(signal_st) if -1*int(signal_st) > int(self.__signal): self.fail("failed: signal to server lower than expected") except ValueError: self.fail("failed: error output (Bad connection?)") else: self.fail("failed: error output (Bad connection?)") #tx_brate = float(w_stats[6].split(" ")[2]) else: self.fail("failed: couldn't execute iw command") else: self.fail("failed: ping to server {}".format(self._serverip))