summaryrefslogtreecommitdiff
path: root/test-cli/test/tests/qwifi.py
blob: d08149b184c731eff584ecae2ce88a649dc549ac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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))