3
0
mirror of https://git.kernel.org/pub/scm/network/wireless/iwd.git synced 2024-11-02 10:09:23 +01:00
iwd/autotests/testAPRoam/connection_test.py

71 lines
2.0 KiB
Python
Raw Normal View History

2018-01-18 22:36:40 +01:00
#!/usr/bin/python3
import unittest
import sys
sys.path.append('../util')
import iwd
from iwd import IWD
from iwd import NetworkType
from hostapd import HostapdCLI
class Test(unittest.TestCase):
def test_connection_success(self):
bss_hostapd = [ HostapdCLI(config='ssid1.conf'),
HostapdCLI(config='ssid2.conf'),
HostapdCLI(config='ssid3.conf') ]
2018-01-18 22:36:40 +01:00
wd = IWD()
devices = wd.list_devices(1)
2018-01-18 22:36:40 +01:00
device = devices[0]
ordered_network = device.get_ordered_network('TestAPRoam')
2018-01-18 22:36:40 +01:00
self.assertEqual(ordered_network.type, NetworkType.psk)
condition = 'not obj.connected'
wd.wait_for_object_condition(ordered_network.network_object, condition)
device.connect_bssid(bss_hostapd[0].bssid)
2018-01-18 22:36:40 +01:00
condition = 'obj.state == DeviceState.connected'
wd.wait_for_object_condition(device, condition)
bss_hostapd[0].wait_for_event('AP-STA-CONNECTED')
2018-01-18 22:36:40 +01:00
self.assertTrue(bss_hostapd[0].list_sta())
self.assertFalse(bss_hostapd[1].list_sta())
bss_hostapd[0].send_bss_transition(device.address,
[(bss_hostapd[1].bssid, '8f0000005102060603000000')])
2018-01-18 22:36:40 +01:00
condition = 'obj.state == DeviceState.roaming'
wd.wait_for_object_condition(device, condition)
2018-01-18 22:36:40 +01:00
condition = 'obj.state != DeviceState.roaming'
wd.wait_for_object_condition(device, condition)
2018-01-18 22:36:40 +01:00
condition = 'obj.state == DeviceState.connected'
wd.wait_for_object_condition(device, condition)
2018-01-18 22:36:40 +01:00
self.assertEqual(device.state, iwd.DeviceState.connected)
self.assertTrue(bss_hostapd[1].list_sta())
device.disconnect()
condition = 'not obj.connected'
wd.wait_for_object_condition(ordered_network.network_object, condition)
@classmethod
def setUpClass(cls):
IWD.copy_to_storage('TestAPRoam.psk')
2018-01-18 22:36:40 +01:00
@classmethod
def tearDownClass(cls):
IWD.clear_storage()
if __name__ == '__main__':
unittest.main(exit=True)