selftest: Add tests for samba.auth.admin_session()
authorAndrew Bartlett <abartlet@samba.org>
Wed, 11 Jul 2018 04:48:07 +0000 (16:48 +1200)
committerAndrew Bartlett <abartlet@samba.org>
Thu, 12 Jul 2018 02:32:05 +0000 (04:32 +0200)
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Signed-off-by: Joe Guo <joeg@catalyst.net.nz>
Pair-programmed-with: Joe Guo <joeg@catalyst.net.nz>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
python/samba/tests/auth.py
selftest/tests.py

index a1b8115dba1a9fae46ed2c187d09ff1a4f884316..6318bec40a085ef79090de2df75645323bbaf129 100644 (file)
@@ -24,11 +24,12 @@ the functionality, that's already done in other tests.
 from samba import auth
 import samba.tests
 
-class AuthTests(samba.tests.TestCase):
+class AuthSystemSessionTests(samba.tests.TestCase):
 
     def setUp(self):
-        super(AuthTests, self).setUp()
+        super(AuthSystemSessionTests, self).setUp()
         self.system_session = auth.system_session()
+        self.lp = samba.tests.env_loadparm()
 
     def test_system_session_attrs(self):
         self.assertTrue(hasattr(self.system_session, 'credentials'))
@@ -39,8 +40,9 @@ class AuthTests(samba.tests.TestCase):
 
     def test_system_session_credentials(self):
         self.assertIsNone(self.system_session.credentials.get_bind_dn())
-        self.assertIsNone(self.system_session.credentials.get_password())
-        self.assertEqual(self.system_session.credentials.get_username(), '')
+        self.assertIsNotNone(self.system_session.credentials.get_password())
+        self.assertEqual(self.system_session.credentials.get_username(),
+                         self.lp.get('netbios name').upper() + "$")
 
     def test_system_session_info(self):
         self.assertEqual(self.system_session.info.full_name, 'System')
@@ -54,3 +56,34 @@ class AuthTests(samba.tests.TestCase):
     def test_system_session_security_token(self):
         self.assertTrue(self.system_session.security_token.is_system())
         self.assertFalse(self.system_session.security_token.is_anonymous())
+
+class AuthAdminSessionTests(samba.tests.TestCase):
+
+    def setUp(self):
+        super(AuthAdminSessionTests, self).setUp()
+        self.lp = samba.tests.env_loadparm()
+        self.admin_session = auth.admin_session(self.lp,
+                                                "S-1-5-21-2212615479-2695158682-2101375467")
+
+    def test_admin_session_attrs(self):
+        self.assertTrue(hasattr(self.admin_session, 'credentials'))
+        self.assertTrue(hasattr(self.admin_session, 'info'))
+        self.assertTrue(hasattr(self.admin_session, 'security_token'))
+        self.assertTrue(hasattr(self.admin_session, 'session_key'))
+        self.assertTrue(hasattr(self.admin_session, 'torture'))
+
+    def test_admin_session_credentials(self):
+        self.assertIsNone(self.admin_session.credentials)
+
+    def test_session_info_details(self):
+        self.assertEqual(self.admin_session.info.full_name,
+                         'Administrator')
+        self.assertEqual(self.admin_session.info.domain_name,
+                         self.lp.get('workgroup'))
+        self.assertEqual(self.admin_session.info.account_name,
+                         'Administrator')
+
+    def test_security_token(self):
+        self.assertFalse(self.admin_session.security_token.is_system())
+        self.assertFalse(self.admin_session.security_token.is_anonymous())
+        self.assertTrue(self.admin_session.security_token.has_builtin_administrators())
index f354bb57ef5d54ead876e230fca92ca29090ce2e..6808925ffde7cfded84d5435baf3bcba085515fb 100644 (file)
@@ -56,7 +56,7 @@ planpythontestsuite("none", "samba.tests.blackbox.check_output", py3_compatible=
 planpythontestsuite("none", "api", name="ldb.python", extra_path=['lib/ldb/tests/python'])
 planpythontestsuite("none", "samba.tests.credentials", py3_compatible=True)
 planpythontestsuite("none", "samba.tests.registry", py3_compatible=True)
-planpythontestsuite("none", "samba.tests.auth", py3_compatible=True)
+planpythontestsuite("ad_dc_ntvfs:local", "samba.tests.auth", py3_compatible=True)
 planpythontestsuite("none", "samba.tests.get_opt", py3_compatible=True)
 planpythontestsuite("none", "samba.tests.security", py3_compatible=True)
 planpythontestsuite("none", "samba.tests.dcerpc.misc", py3_compatible=True)