@@ -60,8 +60,9 @@ def test_init_no_token_given(self):
6060 self .assertEqual (t .current_time , now )
6161 self .assertIsNone (t .token )
6262
63- self .assertEqual (len (t .payload ), 3 )
64- self .assertEqual (t .payload ['exp' ], datetime_to_epoch (now + MyToken .lifetime ))
63+ self .assertEqual (len (t .payload ), 4 )
64+ self .assertEqual (t .payload ['exp' ], datetime_to_epoch (now + MyToken .lifetime ))
65+ self .assertEqual (t .payload ['iat' ], datetime_to_epoch (now ))
6566 self .assertIn ('jti' , t .payload )
6667 self .assertEqual (t .payload [api_settings .TOKEN_TYPE_CLAIM ], MyToken .token_type )
6768
@@ -88,9 +89,10 @@ def test_init_token_given(self):
8889 self .assertEqual (t .current_time , now )
8990 self .assertEqual (t .token , encoded_good_token )
9091
91- self .assertEqual (len (t .payload ), 4 )
92+ self .assertEqual (len (t .payload ), 5 )
9293 self .assertEqual (t ['some_value' ], 'arst' )
9394 self .assertEqual (t ['exp' ], datetime_to_epoch (original_now + MyToken .lifetime ))
95+ self .assertEqual (t ['iat' ], datetime_to_epoch (original_now ))
9496 self .assertEqual (t [api_settings .TOKEN_TYPE_CLAIM ], MyToken .token_type )
9597 self .assertIn ('jti' , t .payload )
9698
@@ -169,6 +171,7 @@ def test_str(self):
169171 # content.
170172 del token [api_settings .TOKEN_TYPE_CLAIM ]
171173 del token ['jti' ]
174+ del token ['iat' ]
172175
173176 # Should encode the given token
174177 encoded_token = str (token )
@@ -236,6 +239,21 @@ def test_set_exp(self):
236239 self .assertIn ('refresh_exp' , token )
237240 self .assertEqual (token ['refresh_exp' ], datetime_to_epoch (now + timedelta (days = 1 )))
238241
242+ def test_set_iat (self ):
243+ now = make_utc (datetime (year = 2000 , month = 1 , day = 1 ))
244+
245+ token = MyToken ()
246+ token .current_time = now
247+
248+ # By default, should add 'iat' claim to token using `self.current_time`
249+ token .set_iat ()
250+ self .assertEqual (token ['iat' ], datetime_to_epoch (now ))
251+
252+ # Should allow overriding of time and claim name
253+ token .set_iat (claim = 'refresh_iat' , at_time = now + timedelta (days = 1 ))
254+ self .assertIn ('refresh_iat' , token )
255+ self .assertEqual (token ['refresh_iat' ], datetime_to_epoch (now + timedelta (days = 1 )))
256+
239257 def test_check_exp (self ):
240258 token = MyToken ()
241259
0 commit comments