@@ -335,6 +335,27 @@ def test_add_impressions_to_pipe(self, mocker):
335335 storage .add_impressions_to_pipe (impressions , adapter )
336336 assert adapter .rpush .mock_calls == [mocker .call ('SPLITIO.impressions' , * to_validate )]
337337
338+ def test_expire_key (self , mocker ):
339+ adapter = mocker .Mock (spec = RedisAdapter )
340+ metadata = get_metadata ({})
341+ storage = RedisImpressionsStorage (adapter , metadata )
342+
343+ self .key = None
344+ self .ttl = None
345+ def expire (key , ttl ):
346+ self .key = key
347+ self .ttl = ttl
348+ adapter .expire = expire
349+
350+ storage .expire_key (2 , 2 )
351+ assert self .key == 'SPLITIO.impressions'
352+ assert self .ttl == 3600
353+
354+ self .key = None
355+ storage .expire_key (2 , 1 )
356+ assert self .key == None
357+
358+
338359class RedisImpressionsStorageAsyncTests (object ): # pylint: disable=too-few-public-methods
339360 """Redis Impressions async storage test cases."""
340361
@@ -453,6 +474,28 @@ def test_add_impressions_to_pipe(self, mocker):
453474 storage .add_impressions_to_pipe (impressions , adapter )
454475 assert adapter .rpush .mock_calls == [mocker .call ('SPLITIO.impressions' , * to_validate )]
455476
477+ @pytest .mark .asyncio
478+ async def test_expire_key (self , mocker ):
479+ adapter = mocker .Mock (spec = RedisAdapterAsync )
480+ metadata = get_metadata ({})
481+ storage = RedisImpressionsStorageAsync (adapter , metadata )
482+
483+ self .key = None
484+ self .ttl = None
485+ async def expire (key , ttl ):
486+ self .key = key
487+ self .ttl = ttl
488+ adapter .expire = expire
489+
490+ await storage .expire_key (2 , 2 )
491+ assert self .key == 'SPLITIO.impressions'
492+ assert self .ttl == 3600
493+
494+ self .key = None
495+ await storage .expire_key (2 , 1 )
496+ assert self .key == None
497+
498+
456499
457500class RedisEventsStorageTests (object ): # pylint: disable=too-few-public-methods
458501 """Redis Impression storage test cases."""
0 commit comments