66
77def test_call_with_freshness_threshold ():
88 from datetime import datetime
9+
910 @cachier .cachier ()
1011 def test_func (a , b ):
1112 return a + b
@@ -22,13 +23,16 @@ def test_func(a, b):
2223 val3 = test_func (1 , 2 , max_age = 0.5 )
2324 assert val3 == 3
2425
26+
2527def test_max_age_stricter_than_stale_after ():
26- from datetime import timedelta
27- import cachier
2828 import time
29+
30+ import cachier
31+
2932 @cachier .cachier (stale_after = timedelta (seconds = 2 ))
3033 def f (x ):
3134 return time .time ()
35+
3236 f .clear_cache ()
3337 v1 = f (1 )
3438 v2 = f (1 )
@@ -37,13 +41,16 @@ def f(x):
3741 v3 = f (1 , max_age = timedelta (seconds = 0.5 ))
3842 assert v3 != v1 # max_age stricter, triggers recalc
3943
44+
4045def test_max_age_looser_than_stale_after ():
41- from datetime import timedelta
42- import cachier
4346 import time
47+
48+ import cachier
49+
4450 @cachier .cachier (stale_after = timedelta (seconds = 1 ))
4551 def f (x ):
4652 return time .time ()
53+
4754 f .clear_cache ()
4855 v1 = f (1 )
4956 v2 = f (1 )
@@ -52,50 +59,62 @@ def f(x):
5259 v3 = f (1 , max_age = timedelta (seconds = 5 ))
5360 assert v3 == v1 # max_age looser, cache still valid
5461
62+
5563def test_max_age_none_defaults_to_stale_after ():
56- from datetime import timedelta
57- import cachier
5864 import time
65+
66+ import cachier
67+
5968 @cachier .cachier (stale_after = timedelta (seconds = 1 ))
6069 def f (x ):
6170 return time .time ()
71+
6272 f .clear_cache ()
6373 v1 = f (1 )
6474 time .sleep (1.1 )
6575 v2 = f (1 , max_age = None )
6676 assert v2 != v1 # Should trigger recalc (stale_after applies)
6777
78+
6879def test_negative_max_age_triggers_recalc ():
69- from datetime import timedelta
70- import cachier
7180 import time
81+
82+ import cachier
83+
7284 @cachier .cachier (stale_after = timedelta (seconds = 100 ))
7385 def f (x ):
7486 return time .time ()
87+
7588 f .clear_cache ()
7689 v1 = f (1 )
7790 v2 = f (1 , max_age = timedelta (seconds = - 1 ))
7891 assert v2 != v1 # Negative max_age always triggers recalc
7992
93+
8094def test_max_age_zero ():
81- from datetime import timedelta
82- import cachier
8395 import time
96+
97+ import cachier
98+
8499 @cachier .cachier (stale_after = timedelta (seconds = 100 ))
85100 def f (x ):
86101 return time .time ()
102+
87103 f .clear_cache ()
88104 v1 = f (1 )
89105 v2 = f (1 , max_age = timedelta (seconds = 0 ))
90106 assert v2 != v1 # Zero max_age always triggers recalc
91107
108+
92109def test_max_age_with_next_time ():
93- from datetime import timedelta
94- import cachier
95110 import time
111+
112+ import cachier
113+
96114 @cachier .cachier (stale_after = timedelta (seconds = 1 ), next_time = True )
97115 def f (x ):
98116 return time .time ()
117+
99118 f .clear_cache ()
100119 v1 = f (1 )
101120 time .sleep (1.1 )
0 commit comments