76 lines
2.2 KiB
Python
76 lines
2.2 KiB
Python
# Copyright 2016-2017 Versada <https://versada.eu/>
|
|
# 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__))
|