[FIX] tests: ensure that previous user is logged off in authenticate
In some case, a browser_js test with login "None" following a browser_js test with a defined login could result in the second test being executed with the previous user. This was caused by a race condition, a request response comming back to chrome just after browser clear, restoring the old cookie. (All odoo request have the set_cookie flag set in order to refresh cookie timeout) The solution here is to check one more time for cookie in authenticate, but also to remove HTTPCase session from session_store. This will only be effective when calling browser_js without login in the same HTTPCase . closes odoo/odoo#39525 X-original-commit: 218db53b9da1573dc18610678de3b7f763531c60 Signed-off-by: Xavier Dollé (xdo) <xdo@odoo.com>
This commit is contained in:
@@ -811,7 +811,7 @@ class ChromeBrowser():
|
||||
params = {kw:kwargs[kw] for kw in kwargs if kw in ['url', 'domain', 'path']}
|
||||
params.update({'name': name})
|
||||
_id = self._websocket_send('Network.deleteCookies', params=params)
|
||||
return self._websocket_wait_id(_id)
|
||||
return self._websocket_wait_id(_id)
|
||||
|
||||
def _wait_ready(self, ready_code, timeout=60):
|
||||
self._logger.info('Evaluate ready code "%s"', ready_code)
|
||||
@@ -1000,6 +1000,9 @@ class HttpCase(TransactionCase):
|
||||
def authenticate(self, user, password):
|
||||
# stay non-authenticated
|
||||
if user is None:
|
||||
if self.session:
|
||||
odoo.http.root.session_store.delete(self.session)
|
||||
self.browser.delete_cookie('session_id', domain=HOST)
|
||||
return
|
||||
|
||||
db = get_db_name()
|
||||
|
||||
Reference in New Issue
Block a user