#39 Add __str__ method to CachedSession
diff --git a/requests_cache/core.py b/requests_cache/core.py
index a4748c5..89149e0 100644
--- a/requests_cache/core.py
+++ b/requests_cache/core.py
@@ -66,6 +66,7 @@
backend_options)
else:
self.cache = backend
+ self._cache_name = cache_name
if expire_after is not None and not isinstance(expire_after, timedelta):
expire_after = timedelta(seconds=expire_after)
@@ -139,6 +140,15 @@
finally:
self._is_cache_disabled = False
+ def __repr__(self):
+ return (
+ "<CachedSession(%s('%s', ...), expire_after=%s, "
+ "allowable_methods=%s)>" % (
+ self.cache.__class__.__name__, self._cache_name,
+ self._cache_expire_after, self._cache_allowable_methods
+ )
+ )
+
def install_cache(cache_name='cache', backend=None, expire_after=None,
allowable_codes=(200,), allowable_methods=('GET',),
diff --git a/tests/test_cache.py b/tests/test_cache.py
index fc84bf7..2ed2b7f 100644
--- a/tests/test_cache.py
+++ b/tests/test_cache.py
@@ -319,6 +319,11 @@
self.assertFalse(s.get(url).from_cache)
self.assertTrue(s.get(url).from_cache)
+ def test_str_and_repr(self):
+ s = repr(CachedSession(CACHE_NAME, CACHE_BACKEND, expire_after=10))
+ self.assertIn(CACHE_NAME, s)
+ self.assertIn("10", s)
+
if __name__ == '__main__':
unittest.main()