mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-25 00:52:02 +00:00
95 lines
2.9 KiB
Python
95 lines
2.9 KiB
Python
import pytest
|
|
from helpers.cluster import ClickHouseCluster
|
|
from helpers.test_tools import TSV
|
|
|
|
cluster = ClickHouseCluster(__file__)
|
|
instance = cluster.add_instance("instance")
|
|
|
|
|
|
@pytest.fixture(scope="module", autouse=True)
|
|
def started_cluster():
|
|
try:
|
|
cluster.start()
|
|
|
|
instance.query("CREATE USER john")
|
|
instance.query("CREATE ROLE rx")
|
|
instance.query("CREATE ROLE ry")
|
|
|
|
yield cluster
|
|
|
|
finally:
|
|
cluster.shutdown()
|
|
|
|
|
|
@pytest.fixture(autouse=True)
|
|
def reset_users_and_roles():
|
|
instance.query("CREATE USER OR REPLACE john")
|
|
yield
|
|
|
|
|
|
def test_set_default_roles():
|
|
assert instance.query("SHOW CURRENT ROLES", user="john") == ""
|
|
|
|
instance.query("GRANT rx, ry TO john")
|
|
assert instance.query("SHOW CURRENT ROLES", user="john") == TSV(
|
|
[["rx", 0, 1], ["ry", 0, 1]]
|
|
)
|
|
|
|
instance.query("SET DEFAULT ROLE NONE TO john")
|
|
assert instance.query("SHOW CURRENT ROLES", user="john") == ""
|
|
|
|
instance.query("SET DEFAULT ROLE rx TO john")
|
|
assert instance.query("SHOW CURRENT ROLES", user="john") == TSV([["rx", 0, 1]])
|
|
|
|
instance.query("SET DEFAULT ROLE ry TO john")
|
|
assert instance.query("SHOW CURRENT ROLES", user="john") == TSV([["ry", 0, 1]])
|
|
|
|
instance.query("SET DEFAULT ROLE ALL TO john")
|
|
assert instance.query("SHOW CURRENT ROLES", user="john") == TSV(
|
|
[["rx", 0, 1], ["ry", 0, 1]]
|
|
)
|
|
|
|
instance.query("SET DEFAULT ROLE ALL EXCEPT rx TO john")
|
|
assert instance.query("SHOW CURRENT ROLES", user="john") == TSV([["ry", 0, 1]])
|
|
|
|
|
|
def test_alter_user():
|
|
assert instance.query("SHOW CURRENT ROLES", user="john") == ""
|
|
|
|
instance.query("GRANT rx, ry TO john")
|
|
assert instance.query("SHOW CURRENT ROLES", user="john") == TSV(
|
|
[["rx", 0, 1], ["ry", 0, 1]]
|
|
)
|
|
|
|
instance.query("ALTER USER john DEFAULT ROLE NONE")
|
|
assert instance.query("SHOW CURRENT ROLES", user="john") == ""
|
|
|
|
instance.query("ALTER USER john DEFAULT ROLE rx")
|
|
assert instance.query("SHOW CURRENT ROLES", user="john") == TSV([["rx", 0, 1]])
|
|
|
|
instance.query("ALTER USER john DEFAULT ROLE ALL")
|
|
assert instance.query("SHOW CURRENT ROLES", user="john") == TSV(
|
|
[["rx", 0, 1], ["ry", 0, 1]]
|
|
)
|
|
|
|
instance.query("ALTER USER john DEFAULT ROLE ALL EXCEPT rx")
|
|
assert instance.query("SHOW CURRENT ROLES", user="john") == TSV([["ry", 0, 1]])
|
|
|
|
|
|
def test_wrong_set_default_role():
|
|
assert "There is no user `rx`" in instance.query_and_get_error(
|
|
"SET DEFAULT ROLE NONE TO rx"
|
|
)
|
|
assert "There is no user `ry`" in instance.query_and_get_error(
|
|
"SET DEFAULT ROLE rx TO ry"
|
|
)
|
|
assert "There is no role `john`" in instance.query_and_get_error(
|
|
"SET DEFAULT ROLE john TO john"
|
|
)
|
|
assert "There is no role `john`" in instance.query_and_get_error(
|
|
"ALTER USER john DEFAULT ROLE john"
|
|
)
|
|
assert "There is no role `john`" in instance.query_and_get_error(
|
|
"ALTER USER john DEFAULT ROLE ALL EXCEPT john"
|
|
)
|