Mercurial > p > roundup > code
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
