diff options
author | Jordan Cook <jordan.cook.git@proton.me> | 2023-01-13 13:59:44 -0600 |
---|---|---|
committer | Jordan Cook <jordan.cook.git@proton.me> | 2023-02-18 15:55:25 -0600 |
commit | d5baa7ff923f58a1464a3a4375e14e274f8eca13 (patch) | |
tree | 1d98b777233f7d94df71925ec518ca429a282678 /tests | |
parent | 7b60ab73b727bb19c842426ee0225c5333059e9e (diff) | |
download | requests-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.py | 4 | ||||
-rw-r--r-- | tests/unit/test_session.py | 15 |
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' |