tests: Fix radius_das_disconnect match + non-match case
authorJouni Malinen <jouni@qca.qualcomm.com>
Fri, 16 Jan 2015 10:14:07 +0000 (12:14 +0200)
committerJouni Malinen <j@w1.fi>
Fri, 16 Jan 2015 10:50:16 +0000 (12:50 +0200)
If Calling-Station-Id matches, but CUI does not, NAS is expected to
reject the request instead of accepting it. Verify that Disconnect-NAK
is returned for this.

Signed-off-by: Jouni Malinen <j@w1.fi>
tests/hwsim/test_radius.py

index af42a84..8215f08 100644 (file)
@@ -469,11 +469,12 @@ def test_radius_das_disconnect(dev, apdev):
     logger.debug("RADIUS response from hostapd")
     for i in reply.keys():
         logger.debug("%s: %s" % (i, reply[i]))
-    if reply.code != pyrad.packet.DisconnectACK:
+    if reply.code != pyrad.packet.DisconnectNAK:
         raise Exception("Unexpected response code")
-
-    dev[0].wait_disconnected(timeout=10)
-    dev[0].wait_connected(timeout=10, error="Re-connection timed out")
+    if 'Error-Cause' not in reply:
+        raise Exception("Missing Error-Cause")
+    if reply['Error-Cause'][0] != 503:
+        raise Exception("Unexpected Error-Cause: {}".format(reply['Error-Cause']))
 
     logger.info("Disconnect-Request with matching CUI")
     dev[1].connect("radius-das", key_mgmt="WPA-EAP",