@@ -1106,6 +1106,43 @@ def test_expiretime(self, r):
1106
1106
r .expireat ("a" , 33177117420 )
1107
1107
assert r .expiretime ("a" ) == 33177117420
1108
1108
1109
+ @skip_if_server_version_lt ("7.0.0" )
1110
+ def test_expireat_option_nx (self , r ):
1111
+ assert r .set ("key" , "val" ) is True
1112
+ expire_at = redis_server_time (r ) + datetime .timedelta (minutes = 1 )
1113
+ assert r .expireat ("key" , expire_at , nx = True ) is True
1114
+ expire_at = redis_server_time (r ) + datetime .timedelta (minutes = 2 )
1115
+ assert r .expireat ("key" , expire_at , nx = True ) is False
1116
+
1117
+ @skip_if_server_version_lt ("7.0.0" )
1118
+ def test_expireat_option_xx (self , r ):
1119
+ assert r .set ("key" , "val" ) is True
1120
+ expire_at = redis_server_time (r ) + datetime .timedelta (minutes = 1 )
1121
+ assert r .expireat ("key" , expire_at , xx = True ) is False
1122
+ assert r .expireat ("key" , expire_at ) is True
1123
+ expire_at = redis_server_time (r ) + datetime .timedelta (minutes = 2 )
1124
+ assert r .expireat ("key" , expire_at , xx = True ) is True
1125
+
1126
+ @skip_if_server_version_lt ("7.0.0" )
1127
+ def test_expireat_option_gt (self , r ):
1128
+ expire_at = redis_server_time (r ) + datetime .timedelta (minutes = 2 )
1129
+ assert r .set ("key" , "val" ) is True
1130
+ assert r .expireat ("key" , expire_at ) is True
1131
+ expire_at = redis_server_time (r ) + datetime .timedelta (minutes = 1 )
1132
+ assert r .expireat ("key" , expire_at , gt = True ) is False
1133
+ expire_at = redis_server_time (r ) + datetime .timedelta (minutes = 3 )
1134
+ assert r .expireat ("key" , expire_at , gt = True ) is True
1135
+
1136
+ @skip_if_server_version_lt ("7.0.0" )
1137
+ def test_expireat_option_lt (self , r ):
1138
+ expire_at = redis_server_time (r ) + datetime .timedelta (minutes = 2 )
1139
+ assert r .set ("key" , "val" ) is True
1140
+ assert r .expireat ("key" , expire_at ) is True
1141
+ expire_at = redis_server_time (r ) + datetime .timedelta (minutes = 3 )
1142
+ assert r .expireat ("key" , expire_at , lt = True ) is False
1143
+ expire_at = redis_server_time (r ) + datetime .timedelta (minutes = 1 )
1144
+ assert r .expireat ("key" , expire_at , lt = True ) is True
1145
+
1109
1146
def test_get_and_set (self , r ):
1110
1147
# get and set can't be tested independently of each other
1111
1148
assert r .get ("a" ) is None
0 commit comments