From 02587fcbfdb199eecb6d5670f506d35f6f2dcae7 Mon Sep 17 00:00:00 2001 From: dvora-h Date: Wed, 5 Jan 2022 12:44:52 +0200 Subject: [PATCH 1/2] add pexpiretime --- redis/commands/core.py | 9 +++++++++ tests/test_commands.py | 6 ++++++ 2 files changed, 15 insertions(+) diff --git a/redis/commands/core.py b/redis/commands/core.py index 4f0accd957..4543a0228e 100644 --- a/redis/commands/core.py +++ b/redis/commands/core.py @@ -1489,6 +1489,15 @@ def pexpireat(self, name, when): when = int(time.mktime(when.timetuple())) * 1000 + ms return self.execute_command("PEXPIREAT", name, when) + def pexpiretime(self, key: str) -> int: + """ + Returns the absolute Unix timestamp (since January 1, 1970) in milliseconds + at which the given key will expire. + + For more information check https://redis.io/commands/pexpiretime + """ + return self.execute_command("PEXPIRETIME", key) + def psetex(self, name, time_ms, value): """ Set the value of key ``name`` to ``value`` that expires in ``time_ms`` diff --git a/tests/test_commands.py b/tests/test_commands.py index b28b63ea6e..ae38165b1c 100644 --- a/tests/test_commands.py +++ b/tests/test_commands.py @@ -1187,6 +1187,12 @@ def test_pexpireat_unixtime(self, r): assert r.pexpireat("a", expire_at_seconds) is True assert 0 < r.pttl("a") <= 61000 + # @skip_if_server_version_lt("7.0.0") turn on after redis 7 release + def test_pexpiretime(self, unstable_r): + unstable_r.set("a", "foo") + unstable_r.pexpireat("a", 33177117420000) + assert unstable_r.pexpiretime("a") == 33177117420000 + @skip_if_server_version_lt("2.6.0") def test_psetex(self, r): assert r.psetex("a", 1000, "value") From cb5c965018897a7635783839d17027e5a8d8184c Mon Sep 17 00:00:00 2001 From: dvora-h Date: Mon, 7 Mar 2022 00:56:30 +0200 Subject: [PATCH 2/2] skip test --- tests/test_commands.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/test_commands.py b/tests/test_commands.py index dcb27eb2f1..0d3d9e2082 100644 --- a/tests/test_commands.py +++ b/tests/test_commands.py @@ -1248,11 +1248,11 @@ def test_pexpireat_unixtime(self, r): assert r.pexpireat("a", expire_at_seconds) is True assert 0 < r.pttl("a") <= 61000 - # @skip_if_server_version_lt("7.0.0") turn on after redis 7 release - def test_pexpiretime(self, unstable_r): - unstable_r.set("a", "foo") - unstable_r.pexpireat("a", 33177117420000) - assert unstable_r.pexpiretime("a") == 33177117420000 + @skip_if_server_version_lt("7.0.0") + def test_pexpiretime(self, r): + r.set("a", "foo") + r.pexpireat("a", 33177117420000) + assert r.pexpiretime("a") == 33177117420000 @skip_if_server_version_lt("2.6.0") def test_psetex(self, r):