diff test/test_cgi.py @ 7164:5487882ff17a

Fix test failure when run alone. testPasswordMigration was failing when run pytest -k testPasswordMigration. Was always failing on third test. When run as part of whole FormTestCase class it worked. Fixed it by: Using cl.db after call to actions.LoginAction. Make sure to set cl.db.Otk = self.db.Otk before calling LoginAction. Add real Otk database and not a mock to a couple of db's. Without this the third element in the loop (crypt at this point) still has the old vale when eading from db. I think this is due to the original cl.db being closed inside LoginAction (to re-open db using new user's credentials cl.db.ptimize is not set). I think the old self.db is returning the cached values. At least that's my guess.
author John Rouillard <rouilj@ieee.org>
date Fri, 24 Feb 2023 17:15:29 -0500
parents ed63b6d35838
children 1549c7e74ef8
line wrap: on
line diff
--- a/test/test_cgi.py	Fri Feb 24 00:37:37 2023 -0500
+++ b/test/test_cgi.py	Fri Feb 24 17:15:29 2023 -0500
@@ -575,16 +575,17 @@
             self.db.user.set(chef, password=pw1)
             self.db.commit()
             actions.LoginAction(cl).handle()
-            pw = self.db.user.get(chef, 'password')
+            pw = cl.db.user.get(chef, 'password')
             print(pw)
             self.assertEqual(pw, 'foo')
             self.assertEqual(pw.needs_migration(), False)
+        cl.db.Otk = self.db.Otk
         pw1 = pw
         self.assertEqual(pw1.needs_migration(), False)
         scheme = password.Password.known_schemes[0]
         self.assertEqual(scheme, pw1.scheme)
         actions.LoginAction(cl).handle()
-        pw = self.db.user.get(chef, 'password')
+        pw = cl.db.user.get(chef, 'password')
         self.assertEqual(pw, 'foo')
         self.assertEqual(pw, pw1)
         cl.db.close()
@@ -1888,6 +1889,7 @@
         if nodeid is not None:
             cl.nodeid = nodeid
         cl.db = self.db
+        cl.db.Otk =  cl.db.getOTKManager()
         #cl.db.Otk = MockNull()
         #cl.db.Otk.data = {}
         #cl.db.Otk.getall = self.data_get
@@ -3056,6 +3058,7 @@
         if nodeid is not None:
             cl.nodeid = nodeid
         cl.db = self.db
+        cl.db.Otk =  cl.db.getOTKManager()
         #cl.db.Otk = MockNull()
         #cl.db.Otk.data = {}
         #cl.db.Otk.getall = self.data_get

Roundup Issue Tracker: http://roundup-tracker.org/