More basic-auth tests
authorIsaac Boukris <iboukris@gmail.com>
Sun, 2 Aug 2015 03:02:19 +0000 (06:02 +0300)
committerSimo Sorce <simo@redhat.com>
Thu, 6 Aug 2015 23:07:43 +0000 (19:07 -0400)
Add test for second user on the same connection with the password
of the first user and without auth at all.

Reviewed-by: Simo Sorce <simo@redhat.com>
Closes #48

tests/magtests.py
tests/t_basic_k5_fail_second.py [new file with mode: 0755]

index 1861f21..3e2f4fc 100755 (executable)
@@ -301,6 +301,16 @@ def test_basic_auth_krb5(testdir, testenv, testlog):
             sys.stderr.write('BASIC-AUTH Two Users: SUCCESS\n')
 
     with (open(testlog, 'a')) as logfile:
             sys.stderr.write('BASIC-AUTH Two Users: SUCCESS\n')
 
     with (open(testlog, 'a')) as logfile:
+        basick5 = subprocess.Popen(["tests/t_basic_k5_fail_second.py"],
+                                   stdout=logfile, stderr=logfile,
+                                   env=testenv, preexec_fn=os.setsid)
+        basick5.wait()
+        if basick5.returncode != 0:
+            sys.stderr.write('BASIC Fail Second User: FAILED\n')
+        else:
+            sys.stderr.write('BASIC Fail Second User: SUCCESS\n')
+
+    with (open(testlog, 'a')) as logfile:
         basick5 = subprocess.Popen(["tests/t_basic_proxy.py"],
                                    stdout=logfile, stderr=logfile,
                                    env=testenv, preexec_fn=os.setsid)
         basick5 = subprocess.Popen(["tests/t_basic_proxy.py"],
                                    stdout=logfile, stderr=logfile,
                                    env=testenv, preexec_fn=os.setsid)
diff --git a/tests/t_basic_k5_fail_second.py b/tests/t_basic_k5_fail_second.py
new file mode 100755 (executable)
index 0000000..15727b8
--- /dev/null
@@ -0,0 +1,36 @@
+#!/usr/bin/python
+# Copyright (C) 2015 - mod_auth_gssapi contributors, see COPYING for license.
+
+import os
+import requests
+from requests.auth import HTTPBasicAuth
+
+
+if __name__ == '__main__':
+    s = requests.Session()
+
+    url = 'http://%s:%s@%s/basic_auth_krb5/' % (os.environ['MAG_USER_NAME'],
+                                                os.environ['MAG_USER_PASSWORD'],
+                                                os.environ['NSS_WRAPPER_HOSTNAME'])
+    r = s.get(url)
+    if r.status_code != 200:
+        raise ValueError('Basic Auth: Failed Authentication')
+
+    url = 'http://%s:%s@%s/basic_auth_krb5/' % (os.environ['MAG_USER_NAME_2'],
+                                                os.environ['MAG_USER_PASSWORD'],
+                                                os.environ['NSS_WRAPPER_HOSTNAME'])
+    r = s.get(url)
+    if r.status_code == 200:
+        raise ValueError('Basic Auth: Got Success while expecting Error')
+
+    url = 'http://%s:%s@%s/basic_auth_krb5/' % (os.environ['MAG_USER_NAME_2'],
+                                                os.environ['MAG_USER_PASSWORD_2'],
+                                                os.environ['NSS_WRAPPER_HOSTNAME'])
+    r = s.get(url)
+    if r.status_code != 200:
+        raise ValueError('Basic Auth: Failed Authentication')
+
+    url = 'http://%s/basic_auth_krb5/' % os.environ['NSS_WRAPPER_HOSTNAME']
+    r = s.get(url)
+    if r.status_code == 200:
+        raise ValueError('Basic Auth: Got Success while expecting Error')