# Copyright 2016-2017 Versada # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). import os from odoo.tests import TransactionCase from .. import logutils class TestOdooCookieSanitizer(TransactionCase): def test_cookie_as_string(self): data = { "request": { "cookies": "website_lang=en_us;" "session_id=hello;" "Session_ID=hello;" "foo=bar" } } proc = logutils.SanitizeOdooCookiesProcessor() result = proc.process(data) self.assertTrue("request" in result) http = result["request"] self.assertEqual( http["cookies"], "website_lang=en_us;" f"session_id={proc.MASK};" f"Session_ID={proc.MASK};" "foo=bar", ) def test_cookie_as_string_with_partials(self): data = {"request": {"cookies": "website_lang=en_us;session_id;foo=bar"}} proc = logutils.SanitizeOdooCookiesProcessor() result = proc.process(data) self.assertTrue("request" in result) http = result["request"] self.assertEqual( http["cookies"], "website_lang=en_us;session_id;foo=bar", ) def test_cookie_header(self): data = { "request": { "headers": { "Cookie": "foo=bar;" "session_id=hello;" "Session_ID=hello;" "a_session_id_here=hello" } } } proc = logutils.SanitizeOdooCookiesProcessor() result = proc.process(data) self.assertTrue("request" in result) http = result["request"] self.assertEqual( http["headers"]["Cookie"], "foo=bar;" f"session_id={proc.MASK};" f"Session_ID={proc.MASK};" f"a_session_id_here={proc.MASK}", ) def test_git_sha_failure(self): with self.assertRaises(logutils.InvalidGitRepository): # Assume this test file is not in the repo root logutils.fetch_git_sha(os.path.dirname(__file__))