MCPcopy
hub / github.com/redis/redis-py / test_acl_log

Method test_acl_log

tests/test_asyncio/test_cluster.py:2587–2630  ·  view source on GitHub ↗
(
        self, r: RedisCluster, create_redis: Callable[..., RedisCluster]
    )

Source from the content-addressed store, hash-verified

2585 @skip_if_server_version_lt("6.0.0")
2586 @skip_if_redis_enterprise()
2587 async def test_acl_log(
2588 self, r: RedisCluster, create_redis: Callable[..., RedisCluster]
2589 ) -> None:
2590 key = "{cache}:"
2591 node = r.get_node_from_key(key)
2592 username = "redis-py-user"
2593
2594 await r.acl_setuser(
2595 username,
2596 enabled=True,
2597 reset=True,
2598 commands=["+get", "+set", "+select", "+cluster", "+command", "+info"],
2599 keys=["{cache}:*"],
2600 nopass=True,
2601 target_nodes="primaries",
2602 )
2603 await r.acl_log_reset(target_nodes=node)
2604
2605 user_client = await create_redis(
2606 cls=RedisCluster, flushdb=False, username=username
2607 )
2608
2609 # Valid operation and key
2610 assert await user_client.set("{cache}:0", 1)
2611 assert await user_client.get("{cache}:0") == b"1"
2612
2613 # Invalid key
2614 with pytest.raises(NoPermissionError):
2615 await user_client.get("{cache}violated_cache:0")
2616
2617 # Invalid operation
2618 with pytest.raises(NoPermissionError):
2619 await user_client.hset("{cache}:0", "hkey", "hval")
2620
2621 assert isinstance(await r.acl_log(target_nodes=node), list)
2622 assert len(await r.acl_log(target_nodes=node)) == 3
2623 assert len(await r.acl_log(count=1, target_nodes=node)) == 1
2624 assert isinstance((await r.acl_log(target_nodes=node))[0], dict)
2625 assert "client-info" in (await r.acl_log(count=1, target_nodes=node))[0]
2626 assert await r.acl_log_reset(target_nodes=node)
2627
2628 await r.acl_deluser(username, target_nodes="primaries")
2629
2630 await user_client.aclose()
2631
2632 @skip_if_server_version_lt("8.5.240")
2633 async def test_hotkeys_cluster(self, r: RedisCluster) -> None:

Callers

nothing calls this directly

Calls 10

create_redisFunction · 0.85
acl_setuserMethod · 0.80
acl_log_resetMethod · 0.80
hsetMethod · 0.80
acl_logMethod · 0.80
acl_deluserMethod · 0.80
get_node_from_keyMethod · 0.45
setMethod · 0.45
getMethod · 0.45
acloseMethod · 0.45

Tested by

no test coverage detected