(self, r, request)
| 282 | @skip_if_server_version_lt("7.0.0") |
| 283 | @skip_if_redis_enterprise() |
| 284 | def test_acl_getuser_setuser(self, r, request): |
| 285 | r.flushall() |
| 286 | username = "redis-py-user" |
| 287 | |
| 288 | def teardown(): |
| 289 | r.acl_deluser(username) |
| 290 | |
| 291 | request.addfinalizer(teardown) |
| 292 | |
| 293 | # test enabled=False |
| 294 | assert r.acl_setuser(username, enabled=False, reset=True) |
| 295 | acl = r.acl_getuser(username) |
| 296 | assert acl["categories"] == ["-@all"] |
| 297 | assert acl["commands"] == [] |
| 298 | assert acl["keys"] == [] |
| 299 | assert acl["passwords"] == [] |
| 300 | assert "off" in acl["flags"] |
| 301 | assert acl["enabled"] is False |
| 302 | |
| 303 | # test nopass=True |
| 304 | assert r.acl_setuser(username, enabled=True, reset=True, nopass=True) |
| 305 | acl = r.acl_getuser(username) |
| 306 | assert acl["categories"] == ["-@all"] |
| 307 | assert acl["commands"] == [] |
| 308 | assert acl["keys"] == [] |
| 309 | assert acl["passwords"] == [] |
| 310 | assert "on" in acl["flags"] |
| 311 | assert "nopass" in acl["flags"] |
| 312 | assert acl["enabled"] is True |
| 313 | |
| 314 | # test all args |
| 315 | assert r.acl_setuser( |
| 316 | username, |
| 317 | enabled=True, |
| 318 | reset=True, |
| 319 | passwords=["+pass1", "+pass2"], |
| 320 | categories=["+set", "+@hash", "-@geo"], |
| 321 | commands=["+get", "+mget", "-hset"], |
| 322 | keys=["cache:*", "objects:*"], |
| 323 | ) |
| 324 | acl = r.acl_getuser(username) |
| 325 | assert set(acl["categories"]) == {"+@hash", "+@set", "-@all", "-@geo"} |
| 326 | assert set(acl["commands"]) == {"+get", "+mget", "-hset"} |
| 327 | assert acl["enabled"] is True |
| 328 | assert "on" in acl["flags"] |
| 329 | assert set(acl["keys"]) == {"~cache:*", "~objects:*"} |
| 330 | assert len(acl["passwords"]) == 2 |
| 331 | |
| 332 | # # test reset=False keeps existing ACL and applies new ACL on top |
| 333 | assert r.acl_setuser( |
| 334 | username, |
| 335 | enabled=True, |
| 336 | reset=True, |
| 337 | passwords=["+pass1"], |
| 338 | categories=["+@set"], |
| 339 | commands=["+get"], |
| 340 | keys=["cache:*"], |
| 341 | ) |
nothing calls this directly
no test coverage detected