summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJordan Cook <jordan.cook.git@proton.me>2023-01-13 13:59:44 -0600
committerJordan Cook <jordan.cook.git@proton.me>2023-02-18 15:55:25 -0600
commitd5baa7ff923f58a1464a3a4375e14e274f8eca13 (patch)
tree1d98b777233f7d94df71925ec518ca429a282678 /tests
parent7b60ab73b727bb19c842426ee0225c5333059e9e (diff)
downloadrequests-cache-d5baa7ff923f58a1464a3a4375e14e274f8eca13.tar.gz
Raise an error for invalid expiration string values (except for headers containing httpdates)
Diffstat (limited to 'tests')
-rw-r--r--tests/unit/policy/test_expiration.py4
-rw-r--r--tests/unit/test_session.py15
2 files changed, 18 insertions, 1 deletions
diff --git a/tests/unit/policy/test_expiration.py b/tests/unit/policy/test_expiration.py
index d248fa7..54eb2a2 100644
--- a/tests/unit/policy/test_expiration.py
+++ b/tests/unit/policy/test_expiration.py
@@ -41,7 +41,9 @@ def test_get_expiration_datetime__tzinfo():
def test_get_expiration_datetime__httpdate():
assert get_expiration_datetime(HTTPDATE_STR) == HTTPDATE_DATETIME
- assert get_expiration_datetime('P12Y34M56DT78H90M12.345S') is None
+ assert get_expiration_datetime('P12Y34M56DT78H90M12.345S', ignore_invalid_httpdate=True) is None
+ with pytest.raises(ValueError):
+ get_expiration_datetime('P12Y34M56DT78H90M12.345S')
@pytest.mark.parametrize(
diff --git a/tests/unit/test_session.py b/tests/unit/test_session.py
index e8ec72d..72c6977 100644
--- a/tests/unit/test_session.py
+++ b/tests/unit/test_session.py
@@ -660,6 +660,21 @@ def test_url_allowlist(mock_session):
assert not mock_session.cache.contains(url=MOCKED_URL)
+def test_invalid_expiration(mock_session):
+ mock_session.settings.expire_after = 'tomorrow'
+ with pytest.raises(ValueError):
+ mock_session.get(MOCKED_URL)
+
+ mock_session.settings.expire_after = object()
+ with pytest.raises(TypeError):
+ mock_session.get(MOCKED_URL)
+
+ mock_session.settings.expire_after = None
+ mock_session.settings.urls_expire_after = {'*': 'tomorrow'}
+ with pytest.raises(ValueError):
+ mock_session.get(MOCKED_URL)
+
+
def test_stale_while_revalidate(mock_session):
# Start with expired responses
mocked_url_2 = f'{MOCKED_URL_ETAG}?k=v'