diff --git a/autotests/testWPA2/failure_test.py b/autotests/testWPA2/failure_test.py index 61cf6ade..c8ecb33c 100644 --- a/autotests/testWPA2/failure_test.py +++ b/autotests/testWPA2/failure_test.py @@ -8,11 +8,12 @@ import iwd from iwd import IWD from iwd import PSKAgent from iwd import NetworkType +from hostapd import HostapdCLI import testutil class Test(unittest.TestCase): - def test_connection_success(self): + def test_incorrect_password(self): wd = IWD(True) psk_agent = PSKAgent("InvalidPassword") @@ -34,6 +35,35 @@ class Test(unittest.TestCase): wd.unregister_psk_agent(psk_agent) + def test_deauth_after_connection(self): + wd = IWD(True) + hostapd = HostapdCLI(config="ssidWPA2.conf") + + psk_agent = PSKAgent("secret123") + wd.register_psk_agent(psk_agent) + + devices = wd.list_devices(1) + self.assertIsNotNone(devices) + device = devices[0] + + ordered_network = device.get_ordered_network('ssidWPA2') + + self.assertEqual(ordered_network.type, NetworkType.psk) + + condition = 'not obj.connected' + wd.wait_for_object_condition(ordered_network.network_object, condition) + + ordered_network.network_object.connect(wait=False) + + device.wait_for_event("authenticating") + + # Trigger a deauth just after authenticating + hostapd.deauthenticate(device.address) + + device.wait_for_event("disconnected") + + wd.unregister_psk_agent(psk_agent) + @classmethod def setUpClass(cls): pass