(self, r, val)
| 3051 | @skip_if_server_version_lt("8.3.224") |
| 3052 | @pytest.mark.parametrize("val", [b"", b"abc", b"The quick brown fox"]) |
| 3053 | def test_set_ifdeq_and_ifdne(self, r, val): |
| 3054 | r.delete("k") |
| 3055 | r.set("k", val) |
| 3056 | d = self._server_xxh3_digest(r, "k") |
| 3057 | assert d is not None |
| 3058 | |
| 3059 | # sanity check: local digest matches server's |
| 3060 | assert d == self._ensure_str(r.digest_local(val)) |
| 3061 | |
| 3062 | # IFDEQ must match to set; if key missing => won't create |
| 3063 | assert r.set("k", b"X", ifdeq=d) is True |
| 3064 | assert r.get("k") == b"X" |
| 3065 | |
| 3066 | r.delete("k") |
| 3067 | # key missing + IFDEQ => not created |
| 3068 | assert r.set("k", b"Y", ifdeq=d) is None |
| 3069 | assert r.exists("k") == 0 |
| 3070 | |
| 3071 | # IFDNE: create when missing, and set when digest differs |
| 3072 | assert r.set("k", b"bar", ifdne=d) is True |
| 3073 | prev_d = self._server_xxh3_digest(r, "k") |
| 3074 | assert prev_d is not None |
| 3075 | # If digest equal → do not set |
| 3076 | assert r.set("k", b"zzz", ifdne=prev_d) is None |
| 3077 | assert r.get("k") == b"bar" |
| 3078 | |
| 3079 | @skip_if_server_version_lt("8.3.224") |
| 3080 | def test_set_with_get_returns_previous_value(self, r): |
nothing calls this directly
no test coverage detected