Skip to content

Commit

Permalink
Merge pull request SUSE#176 from SUSE/session-fix
Browse files Browse the repository at this point in the history
Fixed default value for CA path
  • Loading branch information
frozenIceage authored Aug 6, 2024
2 parents 1616298 + f4133ea commit acb3020
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 3 deletions.
28 changes: 27 additions & 1 deletion osctiny/tests/test_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
from io import StringIO
import os
from pathlib import Path
from ssl import get_default_verify_paths
import sys
from tempfile import mkstemp
import time
Expand All @@ -18,6 +19,7 @@
from dateutil.parser import parse
from pytz import _UTC, timezone
from requests import Response, HTTPError
from requests.auth import HTTPBasicAuth
import responses

from ..osc import Osc, THREAD_LOCAL
Expand All @@ -27,7 +29,7 @@
from ..utils.cookies import CookieManager
from ..utils.mapping import Mappable
from ..utils.errors import get_http_error_details
from ..utils.session import generate_session_id
from ..utils.session import generate_session_id, init_session

sys.path.append(os.path.dirname(__file__))

Expand Down Expand Up @@ -641,3 +643,27 @@ def test_get_cookie(self, *_):
jar = LWPCookieJar(filename=str(cookie_path))
jar.load()
self.assertEqual(cookie_str, CookieManager.get_cookie(jar=jar))


class TestSession(TestCase):
true_capath = get_default_verify_paths().capath

def test_verify(self):
auth = HTTPBasicAuth(username="nemo", password="secret")

with self.subTest("No verification"):
session = init_session(auth=auth, verify=False)
self.assertFalse(session.verify)

with self.subTest("Specific CA path"):
capath = "/tmp/no-such-ca.pem"
session = init_session(auth=auth, verify=capath)
self.assertEqual(session.verify, capath)

with self.subTest("None"):
session = init_session(auth=auth, verify=None)
self.assertEqual(session.verify, self.true_capath)

with self.subTest("No value provided"):
session = init_session(auth=auth)
self.assertEqual(session.verify, self.true_capath)
4 changes: 2 additions & 2 deletions osctiny/utils/session.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,14 +68,14 @@ def generate_retry_policy(policy: RetryPolicy) -> urllib3.Retry:


def init_session(auth: AuthBase, policy: typing.Optional[RetryPolicy] = None,
verify: typing.Union[str, bool] = get_default_verify_paths().capath) -> Session:
verify: typing.Union[str, bool, None] = None) -> Session:
"""
Factory to initialize a session object.
"""
session = Session()
session.auth = auth
session.cookies = CookieManager.get_jar()
session.verify = verify
session.verify = verify if verify is not None else get_default_verify_paths().capath

if policy:
retries = generate_retry_policy(policy=policy)
Expand Down

0 comments on commit acb3020

Please sign in to comment.