3
0
mirror of https://git.kernel.org/pub/scm/network/wireless/iwd.git synced 2024-11-09 05:29:23 +01:00
iwd/autotests/testHotspot/roaming_test.py
James Prestwood 07fc7905ca auto-t: fix error handling in testHotspot
testHotspot suffered from improper cleanup and if a single test failed
all subsequent tests would fail due to IWD still running since IWD()
was never cleaned up.

In addition the PSK agent and hwsim rules are now set onto the cls
object and removed in tearDownClass()
2021-08-18 16:57:34 -05:00

64 lines
1.7 KiB
Python

#!/usr/bin/python3
import unittest
import sys
import os
sys.path.append('../util')
from iwd import IWD
from iwd import IWD_CONFIG_DIR
from iwd import PSKAgent
from iwd import NetworkType
from hostapd import HostapdCLI
import testutil
class Test(unittest.TestCase):
def test_connection_success(self):
wd = self.wd
hapd = HostapdCLI(config='ssidHotspot.conf')
devices = wd.list_devices(1)
device = devices[0]
ordered_network = device.get_ordered_network('Hotspot')
self.assertEqual(ordered_network.type, NetworkType.eap)
condition = 'not obj.connected'
wd.wait_for_object_condition(ordered_network.network_object, condition)
ordered_network.network_object.connect()
condition = 'obj.state == DeviceState.connected'
wd.wait_for_object_condition(device, condition)
testutil.test_iface_operstate()
testutil.test_ifaces_connected(device.name, hapd.ifname)
device.disconnect()
condition = 'not obj.connected'
wd.wait_for_object_condition(ordered_network.network_object, condition)
@classmethod
def setUpClass(cls):
IWD.copy_to_hotspot('roaming.conf')
IWD.copy_to_storage('anqp_disabled.conf', storage_dir=IWD_CONFIG_DIR, name='main.conf')
cls.wd = IWD(True)
cls.psk_agent = PSKAgent('abc', ('domain\\user', 'testpasswd'))
cls.wd.register_psk_agent(cls.psk_agent)
@classmethod
def tearDownClass(cls):
IWD.clear_storage()
os.remove('/tmp/main.conf')
cls.wd.unregister_psk_agent(cls.psk_agent)
cls.wd = None
if __name__ == '__main__':
unittest.main(exit=True)