mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2024-12-21 03:32:42 +01:00
60e165095a
In order to support identifiers the test profiles needed to be reworked due to hostapd allowing multiple password entires. You cannot just call set_value() with a new entry as the old ones still exist. Instead use a unique password for the identifier and non-identifier use cases. After adding this test the failure_test started failing due to hostapd not starting up. This was due to the group being unsupported but oddly only when hostapd was reloaded (running the test individually worked). To fix this the group number was changed to 21 which hostapd does support but IWD does not.
60 lines
1.4 KiB
Python
60 lines
1.4 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
|
|
from hostapd import HostapdCLI
|
|
|
|
class Test(unittest.TestCase):
|
|
|
|
def validate_connection(self, wd, passphrase):
|
|
psk_agent = PSKAgent(passphrase)
|
|
wd.register_psk_agent(psk_agent)
|
|
|
|
devices = wd.list_devices(1)
|
|
self.assertIsNotNone(devices)
|
|
device = devices[0]
|
|
|
|
network = device.get_ordered_network('ssidSAE')
|
|
|
|
self.assertEqual(network.type, NetworkType.psk)
|
|
|
|
condition = 'not obj.connected'
|
|
wd.wait_for_object_condition(network.network_object, condition)
|
|
|
|
with self.assertRaises(iwd.FailedEx):
|
|
network.network_object.connect()
|
|
|
|
wd.unregister_psk_agent(psk_agent)
|
|
|
|
def test_connection_success(self):
|
|
wd = IWD(True)
|
|
self.validate_connection(wd, 'InvalidSecret')
|
|
|
|
def test_no_supported_groups(self):
|
|
self.hostapd.set_value('sae_groups', '21')
|
|
self.hostapd.reload()
|
|
|
|
wd = IWD(True)
|
|
self.validate_connection(wd, 'secret123')
|
|
|
|
def setUp(self):
|
|
self.hostapd = HostapdCLI(config='ssidSAE.conf')
|
|
self.hostapd.default()
|
|
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
pass
|
|
|
|
@classmethod
|
|
def tearDownClass(cls):
|
|
IWD.clear_storage()
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main(exit=True)
|