3
0
mirror of https://git.kernel.org/pub/scm/network/wireless/iwd.git synced 2024-11-25 17:59:25 +01:00
iwd/autotests/testHiddenNetworks/validation.py
James Prestwood 72fac7f1b8 auto-t: rename testHiddenNetwork's test class
This was copy pasted from the autoconnect test, and depending on
how the python module cache is ordered can incorrectly use the
wrong test class. This should nothappen because we insert
the paths to the head of the list but for consistency the class
should be named something that reflects what the test is doing.
2022-06-22 18:37:15 -05:00

74 lines
2.5 KiB
Python

#!/usr/bin/python3
import unittest
import sys
sys.path.append('../util')
import iwd
from iwd import IWD
from iwd import PSKAgent
from iwd import NetworkType
class TestHiddenNetworks(unittest.TestCase):
def check_connect_hidden_network(self, wd, device, ssid, throws):
if not throws is None:
with self.assertRaises(throws):
device.connect_hidden_network(ssid)
return
else:
device.connect_hidden_network(ssid)
condition = 'obj.state == DeviceState.connected'
wd.wait_for_object_condition(device, condition)
def check_autoconnect_hidden_network(self, wd, device, ssid, throws):
if throws is None:
condition = 'obj.state == DeviceState.connected'
wd.wait_for_object_condition(device, condition)
condition = 'obj.connected_network is not None'
wd.wait_for_object_condition(device, condition)
ordered_network = device.get_ordered_network(ssid)
self.assertTrue(ordered_network.network_object.connected)
device.disconnect()
condition = 'obj.state == DeviceState.disconnected'
wd.wait_for_object_condition(device, condition)
def validate_connection(self, wd, ssid, autoconnect, throws, use_agent,
wait_periodic_scan):
if use_agent:
psk_agent = PSKAgent(["secret123"], ('domain\\User', 'Password'))
wd.register_psk_agent(psk_agent)
devices = wd.list_devices(1)
self.assertIsNotNone(devices)
device = devices[0]
device.autoconnect = autoconnect
if autoconnect:
self.check_autoconnect_hidden_network(wd, device, ssid, throws)
else:
if wait_periodic_scan:
device.autoconnect = True
condition = 'obj.scanning'
wd.wait_for_object_condition(device, condition)
condition = 'not obj.scanning'
wd.wait_for_object_condition(device, condition)
self.check_connect_hidden_network(wd, device, ssid, throws)
if use_agent:
wd.unregister_psk_agent(psk_agent)
def validate(self, ssid, autoconnect, throws = None, use_agent = False,
wait_periodic_scan = False):
wd = IWD(True)
self.validate_connection(wd, ssid, autoconnect, throws, use_agent,
wait_periodic_scan)