Skip to content

Commit f16c1a8

Browse files
Add more directory fallbacks Loader session
1 parent 50d0361 commit f16c1a8

File tree

2 files changed

+60
-6
lines changed

2 files changed

+60
-6
lines changed

schema_salad/ref_resolver.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -204,9 +204,19 @@ def __init__(self,
204204
else:
205205
self.cache = {}
206206

207-
if (session is None) and ("HOME" in os.environ):
208-
self.session = CacheControl(requests.Session(),
209-
cache=FileCache(os.path.join(os.environ["HOME"], ".cache", "salad")))
207+
if session is None:
208+
if "HOME" in os.environ:
209+
self.session = CacheControl(
210+
requests.Session(),
211+
cache=FileCache(os.path.join(os.environ["HOME"], ".cache", "salad")))
212+
elif "TMP" in os.environ:
213+
self.session = CacheControl(
214+
requests.Session(),
215+
cache=FileCache(os.path.join(os.environ["TMP"], ".cache", "salad")))
216+
else:
217+
self.session = CacheControl(
218+
requests.Session(),
219+
cache=FileCache("/tmp", ".cache", "salad"))
210220
else:
211221
self.session = session
212222

Lines changed: 47 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,54 @@
11
"""Test the ref_resolver module."""
22

3-
def test_Loader_initialisation_when_HOME_env_is_missing():
3+
import shutil
4+
import tempfile
5+
6+
import pytest # type: ignore
7+
8+
@pytest.fixture
9+
def tmp_dir_fixture(request):
10+
d = tempfile.mkdtemp()
11+
12+
@request.addfinalizer
13+
def teardown():
14+
shutil.rmtree(d)
15+
return d
16+
17+
def test_Loader_initialisation_for_HOME_env_var(tmp_dir_fixture):
18+
import os
419
from schema_salad.ref_resolver import Loader
20+
from requests import Session
21+
22+
# Ensure HOME is set.
23+
os.environ["HOME"] = tmp_dir_fixture
24+
25+
loader = Loader(ctx={})
26+
assert isinstance(loader.session, Session)
27+
28+
def test_Loader_initialisation_for_TMP_env_var(tmp_dir_fixture):
529
import os
30+
from schema_salad.ref_resolver import Loader
31+
from requests import Session
632

7-
# Simulate missing HOME environment variable.
33+
# Ensure HOME is missing.
834
if "HOME" in os.environ:
935
del os.environ["HOME"]
10-
Loader(ctx={})
36+
# Ensure TMP is present.
37+
os.environ["TMP"] = tmp_dir_fixture
38+
39+
loader = Loader(ctx={})
40+
assert isinstance(loader.session, Session)
41+
42+
def test_Loader_initialisation_with_neither_TMP_HOME_set(tmp_dir_fixture):
43+
import os
44+
from schema_salad.ref_resolver import Loader
45+
from requests import Session
46+
47+
# Ensure HOME is missing.
48+
if "HOME" in os.environ:
49+
del os.environ["HOME"]
50+
if "TMP" in os.environ:
51+
del os.environ["TMP"]
52+
53+
loader = Loader(ctx={})
54+
assert isinstance(loader.session, Session)

0 commit comments

Comments
 (0)