def test_insert_retrieve_permission(bot_test_database): perm1 = CommandPermission(guild_id=3, command_name="test", permission_filter="filter1") perm2 = CommandPermission(guild_id=4, command_name="test", permission_filter="filter2") bot_test_database.insert_permission(perm1) bot_test_database.insert_permission(perm2) retrieved_perm = bot_test_database.retrieve_permission( "guild_id=%s AND command_name=%s", (3, "test")) assert retrieved_perm == perm1
def test_insert_retrieve_permissions(bot_test_database): perm1 = CommandPermission(guild_id=3, command_name="test", permission_filter="filter1") perm2 = CommandPermission(guild_id=4, command_name="test", permission_filter="filter2") bot_test_database.insert_permission(perm1) bot_test_database.insert_permission(perm2) retrieved_perms = bot_test_database.retrieve_permissions() assert next(retrieved_perms, None) == perm1 assert next(retrieved_perms, None) == perm2 assert next(retrieved_perms, None) is None
def test_load(): permissions.load() assert not permissions.cache Database(BOT_TEST_DB_NAME).insert_permission( CommandPermission(guild_id=3, command_name="test1", permission_filter="filter")) permissions.load() assert permissions.cache assert permissions.cache[3]["test1"] == "filter"
def set_permission_filter(guild_id: int, command_wrapper: FunctionWrapper, permission_filter: str) -> None: """Updates the permission filter in this guild for this command to the given value. If given `None`, the permission entry is deleted.""" if permission_filter is None: Database(DEFAULT_DB_NAME).delete_permission(guild_id, command_wrapper.names[0]) else: Database(DEFAULT_DB_NAME).insert_permission( CommandPermission(guild_id, command_wrapper.names[0], permission_filter)) load()
def retrieve_permissions(self, where: str=None, where_values: tuple=None) -> Generator[CommandPermission, None, None]: """Returns a generator of all command permissions from the database matching the given WHERE clause.""" fetched_rows = self.retrieve_table_data( table = "permissions", where = where, where_values = where_values, selection = "guild_id, command_name, permission_filter" ) for row in (fetched_rows or []): guild_id = row[0] command_name = row[1] permission_filter = row[2] yield CommandPermission(guild_id, command_name, permission_filter)
def test_permission_hash(): permission = CommandPermission(guild_id=1, command_name="test", permission_filter="filter") assert permission.__hash__()
def test_permission_eq_type_mismatch(): permission = CommandPermission(guild_id=1, command_name="test", permission_filter="filter") assert permission != "not a sub"
def test_permission_eq(): permission1 = CommandPermission(guild_id=1, command_name="test", permission_filter="filter") permission2 = CommandPermission(guild_id=1, command_name="test", permission_filter="filter") permission3 = CommandPermission(guild_id=3, command_name="test", permission_filter="filter") assert permission1 == permission2 assert permission1 != permission3
def test_permission_init_str_id(): permission = CommandPermission(guild_id="1", command_name="test", permission_filter="filter") assert permission.guild_id == 1