Skip to content

Commit 3471e08

Browse files
authored
Add redis 8.4-M01-pre to tested redis versions. (#3790)
* Updating cicd tests to run against client tests image 8.2.2-pre * Print version validation details - tmp debug info to investigate why pipeline is not skipping a test * Skipping tests based on 8.2.2 version comparison. * Adding 8.4-M01-pre * Fix skip test condition
1 parent b96d29c commit 3471e08

File tree

5 files changed

+81
-5
lines changed

5 files changed

+81
-5
lines changed

.github/workflows/integration.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ env:
2727
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
2828
# this speeds up coverage with Python 3.12: https://github.com/nedbat/coveragepy/issues/1665
2929
COVERAGE_CORE: sysmon
30+
# patch releases get included in the base version image when they are published
31+
# for example after 8.2.1 is published, 8.2 image contains 8.2.1 content
3032
CURRENT_CLIENT_LIBS_TEST_STACK_IMAGE_TAG: '8.2'
3133
CURRENT_REDIS_VERSION: '8.2'
3234

@@ -74,7 +76,7 @@ jobs:
7476
max-parallel: 15
7577
fail-fast: false
7678
matrix:
77-
redis-version: ['8.2.1-pre', '${{ needs.redis_version.outputs.CURRENT }}', '8.0.2' ,'7.4.4', '7.2.9']
79+
redis-version: ['8.4-M01-pre', '${{ needs.redis_version.outputs.CURRENT }}', '8.0.2' ,'7.4.4', '7.2.9']
7880
python-version: ['3.9', '3.13']
7981
parser-backend: ['plain']
8082
event-loop: ['asyncio']

tests/test_asyncio/test_commands.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3158,6 +3158,7 @@ async def test_xgroup_destroy(self, r: redis.Redis):
31583158
assert await r.xgroup_destroy(stream, group)
31593159

31603160
@skip_if_server_version_lt("7.0.0")
3161+
@skip_if_server_version_gte("8.2.2")
31613162
async def test_xgroup_setid(self, r: redis.Redis):
31623163
stream = "stream"
31633164
group = "group"
@@ -3178,6 +3179,28 @@ async def test_xgroup_setid(self, r: redis.Redis):
31783179
]
31793180
assert await r.xinfo_groups(stream) == expected
31803181

3182+
@skip_if_server_version_lt("8.2.2")
3183+
async def test_xgroup_setid_fixed_max_entries_read(self, r):
3184+
stream = "stream"
3185+
group = "group"
3186+
message_id = await r.xadd(stream, {"foo": "bar"})
3187+
await r.xadd(stream, {"foo1": "bar1"})
3188+
3189+
await r.xgroup_create(stream, group, 0)
3190+
# advance the last_delivered_id to the message_id
3191+
await r.xgroup_setid(stream, group, message_id, entries_read=2)
3192+
expected = [
3193+
{
3194+
"name": group.encode(),
3195+
"consumers": 0,
3196+
"pending": 0,
3197+
"last-delivered-id": message_id,
3198+
"entries-read": 2,
3199+
"lag": 0,
3200+
}
3201+
]
3202+
assert await r.xinfo_groups(stream) == expected
3203+
31813204
@skip_if_server_version_lt("7.2.0")
31823205
async def test_xinfo_consumers(self, r: redis.Redis):
31833206
stream = "stream"

tests/test_asyncio/test_vsets.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -502,8 +502,8 @@ async def test_vsim_epsilon(d_client):
502502
await d_client.vset().vadd("myset", [2, 1, 1], "a")
503503
await d_client.vset().vadd("myset", [2, 0, 1], "b")
504504
await d_client.vset().vadd("myset", [2, 0, 0], "c")
505-
await d_client.vset().vadd("myset", [2, 0, -1], "d")
506-
await d_client.vset().vadd("myset", [2, -1, -1], "e")
505+
await d_client.vset().vadd("myset", [2, 0, 2], "d")
506+
await d_client.vset().vadd("myset", [-2, -1, -1], "e")
507507

508508
res1 = await d_client.vset().vsim("myset", [2, 1, 1])
509509
assert 5 == len(res1)

tests/test_commands.py

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4607,6 +4607,7 @@ def test_xgroup_create_mkstream(self, r):
46074607
assert r.xinfo_groups(stream) == expected
46084608

46094609
@skip_if_server_version_lt("7.0.0")
4610+
@skip_if_server_version_gte("8.2.2")
46104611
def test_xgroup_create_entriesread(self, r: redis.Redis):
46114612
stream = "stream"
46124613
group = "group"
@@ -4628,6 +4629,33 @@ def test_xgroup_create_entriesread(self, r: redis.Redis):
46284629
]
46294630
assert r.xinfo_groups(stream) == expected
46304631

4632+
@skip_if_server_version_lt("8.2.2")
4633+
def test_xgroup_create_entriesread_fixed_max_entries_read(self, r: redis.Redis):
4634+
stream = "stream"
4635+
group = "group"
4636+
r.xadd(stream, {"foo": "bar"})
4637+
r.xadd(stream, {"foo1": "bar1"})
4638+
r.xadd(stream, {"foo2": "bar2"})
4639+
4640+
# no group is setup yet, no info to obtain
4641+
assert r.xinfo_groups(stream) == []
4642+
4643+
assert r.xgroup_create(stream, group, 0, entries_read=7)
4644+
# validate the entries-read is max the number of entries
4645+
# in the stream and lag shows the entries between
4646+
# last_delivered_id and entries_added
4647+
expected = [
4648+
{
4649+
"name": group.encode(),
4650+
"consumers": 0,
4651+
"pending": 0,
4652+
"last-delivered-id": b"0-0",
4653+
"entries-read": 3,
4654+
"lag": 3,
4655+
}
4656+
]
4657+
assert r.xinfo_groups(stream) == expected
4658+
46314659
@skip_if_server_version_lt("5.0.0")
46324660
def test_xgroup_delconsumer(self, r):
46334661
stream = "stream"
@@ -4675,6 +4703,7 @@ def test_xgroup_destroy(self, r):
46754703
assert r.xgroup_destroy(stream, group)
46764704

46774705
@skip_if_server_version_lt("7.0.0")
4706+
@skip_if_server_version_gte("8.2.2")
46784707
def test_xgroup_setid(self, r):
46794708
stream = "stream"
46804709
group = "group"
@@ -4695,6 +4724,28 @@ def test_xgroup_setid(self, r):
46954724
]
46964725
assert r.xinfo_groups(stream) == expected
46974726

4727+
@skip_if_server_version_lt("8.2.2")
4728+
def test_xgroup_setid_fixed_max_entries_read(self, r):
4729+
stream = "stream"
4730+
group = "group"
4731+
message_id = r.xadd(stream, {"foo": "bar"})
4732+
r.xadd(stream, {"foo1": "bar1"})
4733+
4734+
r.xgroup_create(stream, group, 0)
4735+
# advance the last_delivered_id to the message_id
4736+
r.xgroup_setid(stream, group, message_id, entries_read=5)
4737+
expected = [
4738+
{
4739+
"name": group.encode(),
4740+
"consumers": 0,
4741+
"pending": 0,
4742+
"last-delivered-id": message_id,
4743+
"entries-read": 2,
4744+
"lag": 0,
4745+
}
4746+
]
4747+
assert r.xinfo_groups(stream) == expected
4748+
46984749
@skip_if_server_version_lt("7.2.0")
46994750
def test_xinfo_consumers(self, r):
47004751
stream = "stream"

tests/test_vsets.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -504,8 +504,8 @@ def test_vsim_epsilon(d_client):
504504
d_client.vset().vadd("myset", [2, 1, 1], "a")
505505
d_client.vset().vadd("myset", [2, 0, 1], "b")
506506
d_client.vset().vadd("myset", [2, 0, 0], "c")
507-
d_client.vset().vadd("myset", [2, 0, -1], "d")
508-
d_client.vset().vadd("myset", [2, -1, -1], "e")
507+
d_client.vset().vadd("myset", [2, 0, 2], "d")
508+
d_client.vset().vadd("myset", [-2, -1, -1], "e")
509509

510510
res1 = d_client.vset().vsim("myset", [2, 1, 1])
511511
assert 5 == len(res1)

0 commit comments

Comments
 (0)