From 90666c833350d30638ea3a4ec5abfdb290394519 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Fri, 27 Oct 2023 08:34:36 +0100 Subject: [PATCH] Run `pyupgrade` against the changes from the merge-forward Signed-off-by: Pedro Algarvio --- salt/utils/win_dacl.py | 88 ++++++++----------- tests/pytests/functional/states/test_reg.py | 20 ++--- tests/pytests/functional/test_payload.py | 4 +- .../functional/utils/win_dacl/test_reg.py | 2 +- .../modules/file/test_file_block_replace.py | 22 ++--- tests/unit/modules/test_heat.py | 2 +- 6 files changed, 56 insertions(+), 82 deletions(-) diff --git a/salt/utils/win_dacl.py b/salt/utils/win_dacl.py index 2e9fe87b811..346dac41de5 100644 --- a/salt/utils/win_dacl.py +++ b/salt/utils/win_dacl.py @@ -496,9 +496,7 @@ def dacl(obj_name=None, obj_type="file"): """ # Validate obj_type if obj_type.lower() not in self.obj_type: - raise SaltInvocationError( - 'Invalid "obj_type" passed: {}'.format(obj_type) - ) + raise SaltInvocationError(f'Invalid "obj_type" passed: {obj_type}') self.dacl_type = obj_type.lower() @@ -514,7 +512,7 @@ def dacl(obj_name=None, obj_type="file"): ) except pywintypes.error as exc: if "The system cannot find" in exc.strerror: - msg = "System cannot find {}".format(obj_name) + msg = f"System cannot find {obj_name}" log.exception(msg) raise CommandExecutionError(msg) raise @@ -588,9 +586,7 @@ def dacl(obj_name=None, obj_type="file"): valid_hive = hives[passed_hive.upper()] except KeyError: log.exception("Invalid Registry Hive: %s", passed_hive) - raise CommandExecutionError( - "Invalid Registry Hive: {}".format(passed_hive) - ) + raise CommandExecutionError(f"Invalid Registry Hive: {passed_hive}") reg.insert(0, valid_hive) @@ -632,7 +628,7 @@ def dacl(obj_name=None, obj_type="file"): if applies_to not in self.ace_prop[self.dacl_type]: raise SaltInvocationError( - "Invalid 'applies_to' for type {}".format(self.dacl_type) + f"Invalid 'applies_to' for type {self.dacl_type}" ) if self.dacl is None: @@ -644,7 +640,7 @@ def dacl(obj_name=None, obj_type="file"): try: perm_flag = self.ace_perms[self.dacl_type]["basic"][permissions] except KeyError as exc: - msg = "Invalid permission specified: {}".format(permissions) + msg = f"Invalid permission specified: {permissions}" log.exception(msg) raise CommandExecutionError(msg, exc) else: @@ -652,12 +648,12 @@ def dacl(obj_name=None, obj_type="file"): try: perm_flag |= self.ace_perms[self.dacl_type]["advanced"][perm] except KeyError as exc: - msg = "Invalid permission specified: {}".format(perm) + msg = f"Invalid permission specified: {perm}" log.exception(msg) raise CommandExecutionError(msg, exc) if access_mode.lower() not in ["grant", "deny"]: - raise SaltInvocationError("Invalid Access Mode: {}".format(access_mode)) + raise SaltInvocationError(f"Invalid Access Mode: {access_mode}") # Add ACE to the DACL # Grant or Deny @@ -686,11 +682,9 @@ def dacl(obj_name=None, obj_type="file"): ) else: log.exception("Invalid access mode: %s", access_mode) - raise SaltInvocationError( - "Invalid access mode: {}".format(access_mode) - ) + raise SaltInvocationError(f"Invalid access mode: {access_mode}") except Exception as exc: # pylint: disable=broad-except - return False, "Error: {}".format(exc) + return False, f"Error: {exc}" return True @@ -945,7 +939,7 @@ def dacl(obj_name=None, obj_type="file"): # If still nothing, it must be undefined if not ace_perms: - ace_perms = ["Undefined Permission: {}".format(ace[1])] + ace_perms = [f"Undefined Permission: {ace[1]}"] return ( principal, @@ -1001,7 +995,7 @@ def dacl(obj_name=None, obj_type="file"): offset += 1 if not ret: - ret = ["ACE not found for {}".format(principal)] + ret = [f"ACE not found for {principal}"] return ret @@ -1100,7 +1094,7 @@ def dacl(obj_name=None, obj_type="file"): ) except pywintypes.error as exc: raise CommandExecutionError( - "Failed to set permissions: {}".format(obj_name), exc.strerror + f"Failed to set permissions: {obj_name}", exc.strerror ) return True @@ -1146,7 +1140,7 @@ def get_sid(principal): sid = win32security.ConvertStringSidToSid(sid) except pywintypes.error: log.exception("Invalid user/group or sid: %s", principal) - raise CommandExecutionError("Invalid user/group or sid: {}".format(principal)) + raise CommandExecutionError(f"Invalid user/group or sid: {principal}") except TypeError: raise CommandExecutionError @@ -1189,7 +1183,7 @@ def get_sid_string(principal): return win32security.ConvertSidToStringSid(principal) except pywintypes.error: log.exception("Invalid principal %s", principal) - raise CommandExecutionError("Invalid principal {}".format(principal)) + raise CommandExecutionError(f"Invalid principal {principal}") def get_name(principal): @@ -1249,7 +1243,7 @@ def get_name(principal): # https://docs.microsoft.com/en-us/previous-versions/technet-magazine/cc138011(v=msdn.10) # https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/dd548356(v=ws.10) if str_sid.startswith("S-1-5-80"): - name = "NT Service\\{}".format(name) + name = f"NT Service\\{name}" return name except (pywintypes.error, TypeError) as exc: @@ -1261,10 +1255,10 @@ def get_name(principal): # All capability SIDs begin with `S-1-15-3`, so we'll only throw an # error when the sid does not begin with `S-1-15-3` if not str_sid.startswith("S-1-15-3"): - message = 'Error resolving "{}"'.format(principal) + message = f'Error resolving "{principal}"' if type(exc) == pywintypes.error: win_error = win32api.FormatMessage(exc.winerror).rstrip("\n") - message = "{}: {}".format(message, win_error) + message = f"{message}: {win_error}" log.exception(message) raise CommandExecutionError(message, exc) @@ -1326,7 +1320,7 @@ def get_owner(obj_name, obj_type="file"): try: obj_type_flag = flags().obj_type[obj_type.lower()] except KeyError: - raise SaltInvocationError('Invalid "obj_type" passed: {}'.format(obj_type)) + raise SaltInvocationError(f'Invalid "obj_type" passed: {obj_type}') if obj_type in ["registry", "registry32"]: obj_name = dacl().get_reg_name(obj_name) @@ -1348,7 +1342,7 @@ def get_owner(obj_name, obj_type="file"): else: log.exception("Failed to get the owner: %s", obj_name) raise CommandExecutionError( - "Failed to get owner: {}".format(obj_name), exc.strerror + f"Failed to get owner: {obj_name}", exc.strerror ) return get_name(owner_sid) @@ -1411,7 +1405,7 @@ def get_primary_group(obj_name, obj_type="file"): try: obj_type_flag = flags().obj_type[obj_type.lower()] except KeyError: - raise SaltInvocationError('Invalid "obj_type" passed: {}'.format(obj_type)) + raise SaltInvocationError(f'Invalid "obj_type" passed: {obj_type}') if "registry" in obj_type.lower(): obj_name = dacl().get_reg_name(obj_name) @@ -1434,7 +1428,7 @@ def get_primary_group(obj_name, obj_type="file"): else: log.exception("Failed to get the primary group: %s", obj_name) raise CommandExecutionError( - "Failed to get primary group: {}".format(obj_name), exc.strerror + f"Failed to get primary group: {obj_name}", exc.strerror ) return get_name(win32security.ConvertSidToStringSid(primary_group_gid)) @@ -1476,7 +1470,7 @@ def set_owner(obj_name, principal, obj_type="file"): # Validate obj_type if obj_type.lower() not in obj_flags.obj_type: - raise SaltInvocationError('Invalid "obj_type" passed: {}'.format(obj_type)) + raise SaltInvocationError(f'Invalid "obj_type" passed: {obj_type}') if "registry" in obj_type.lower(): obj_name = dacl().get_reg_name(obj_name) @@ -1513,9 +1507,7 @@ def set_owner(obj_name, principal, obj_type="file"): ) except pywintypes.error as exc: log.exception("Failed to make %s the owner: %s", principal, exc) - raise CommandExecutionError( - "Failed to set owner: {}".format(obj_name), exc.strerror - ) + raise CommandExecutionError(f"Failed to set owner: {obj_name}", exc.strerror) return True @@ -1561,7 +1553,7 @@ def set_primary_group(obj_name, principal, obj_type="file"): # Validate obj_type if obj_type.lower() not in obj_flags.obj_type: - raise SaltInvocationError('Invalid "obj_type" passed: {}'.format(obj_type)) + raise SaltInvocationError(f'Invalid "obj_type" passed: {obj_type}') if "registry" in obj_type.lower(): obj_name = dacl().get_reg_name(obj_name) @@ -1599,7 +1591,7 @@ def set_primary_group(obj_name, principal, obj_type="file"): except pywintypes.error as exc: log.exception("Failed to make %s the primary group: %s", principal, exc) raise CommandExecutionError( - "Failed to set primary group: {}".format(obj_name), exc.strerror + f"Failed to set primary group: {obj_name}", exc.strerror ) return True @@ -1819,9 +1811,7 @@ def has_permission( """ # Validate access_mode if access_mode.lower() not in ["grant", "deny"]: - raise SaltInvocationError( - 'Invalid "access_mode" passed: {}'.format(access_mode) - ) + raise SaltInvocationError(f'Invalid "access_mode" passed: {access_mode}') access_mode = access_mode.lower() # Get the DACL @@ -1838,7 +1828,7 @@ def has_permission( obj_dacl.ace_perms[obj_type]["advanced"].get(permission.lower(), False), ) if not chk_flag: - raise SaltInvocationError('Invalid "permission" passed: {}'.format(permission)) + raise SaltInvocationError(f'Invalid "permission" passed: {permission}') # Check each ace for sid and type cur_flag = None @@ -1919,9 +1909,7 @@ def has_permissions( # Validate access_mode if access_mode.lower() not in ["grant", "deny"]: - raise SaltInvocationError( - 'Invalid "access_mode" passed: {}'.format(access_mode) - ) + raise SaltInvocationError(f'Invalid "access_mode" passed: {access_mode}') access_mode = access_mode.lower() # Get the DACL @@ -1940,9 +1928,7 @@ def has_permissions( obj_dacl.ace_perms[obj_type]["advanced"].get(permission.lower(), False), ) if not chk_flag: - raise SaltInvocationError( - 'Invalid "permission" passed: {}'.format(permission) - ) + raise SaltInvocationError(f'Invalid "permission" passed: {permission}') # Check each ace for sid and type cur_flag = None @@ -1998,7 +1984,7 @@ def set_inheritance(obj_name, enabled, obj_type="file", clear=False): """ if obj_type not in ["file", "registry", "registry32"]: raise SaltInvocationError( - "obj_type called with incorrect parameter: {}".format(obj_name) + f"obj_type called with incorrect parameter: {obj_name}" ) if clear: @@ -2161,7 +2147,7 @@ def copy_security( try: obj_type_flag = flags().obj_type[obj_type.lower()] except KeyError: - raise SaltInvocationError('Invalid "obj_type" passed: {}'.format(obj_type)) + raise SaltInvocationError(f'Invalid "obj_type" passed: {obj_type}') security_flags = 0 if copy_owner: @@ -2214,9 +2200,7 @@ def copy_security( target, obj_type_flag, security_flags, sd_sid, sd_gid, sd_dacl, sd_sacl ) except pywintypes.error as exc: - raise CommandExecutionError( - "Failed to set security info: {}".format(exc.strerror) - ) + raise CommandExecutionError(f"Failed to set security info: {exc.strerror}") return True @@ -2254,7 +2238,7 @@ def _check_perms(obj_name, obj_type, new_perms, access_mode, ret, test_mode=Fals dict: A dictionary of return data as expected by the state system """ access_mode = access_mode.lower() - perms_label = "{}_perms".format(access_mode) + perms_label = f"{access_mode}_perms" cur_perms = get_permissions(obj_name=obj_name, obj_type=obj_type) changes = {} for user in new_perms: @@ -2431,7 +2415,7 @@ def check_perms( """ # Validate obj_type if obj_type.lower() not in flags().obj_type: - raise SaltInvocationError('Invalid "obj_type" passed: {}'.format(obj_type)) + raise SaltInvocationError(f'Invalid "obj_type" passed: {obj_type}') obj_type = obj_type.lower() @@ -2457,9 +2441,7 @@ def check_perms( ret["changes"]["owner"] = owner except CommandExecutionError: ret["result"] = False - ret["comment"].append( - 'Failed to change owner to "{}"'.format(owner) - ) + ret["comment"].append(f'Failed to change owner to "{owner}"') # Check inheritance if inheritance is not None: diff --git a/tests/pytests/functional/states/test_reg.py b/tests/pytests/functional/states/test_reg.py index def550f55ac..61d5792746a 100644 --- a/tests/pytests/functional/states/test_reg.py +++ b/tests/pytests/functional/states/test_reg.py @@ -29,7 +29,7 @@ class RegVars: self.key = "SOFTWARE\\Salt-Testing" self.hive = self.hive self.key = self.key - self.name = "{}\\{}".format(self.hive, self.key) + self.name = f"{self.hive}\\{self.key}" self.vname = "version" self.vdata = "0.15.3" self.current_user = win_functions.get_current_user(with_domain=False) @@ -97,7 +97,7 @@ def test_present(reg_vars): Test reg.present """ expected = { - "comment": "Added {} to {}".format(reg_vars.vname, reg_vars.name), + "comment": f"Added {reg_vars.vname} to {reg_vars.name}", "changes": { "reg": { "Added": { @@ -234,7 +234,7 @@ def test_present_string_dword(reg_vars, clean): vtype = "REG_DWORD" expected_vdata = 1 expected = { - "comment": "Added {} to {}".format(vname, reg_vars.name), + "comment": f"Added {vname} to {reg_vars.name}", "changes": { "reg": { "Added": { @@ -268,7 +268,7 @@ def test_present_string_dword_existing(reg_vars, clean): hive=reg_vars.hive, key=reg_vars.key, vname=vname, vdata=vdata, vtype=vtype ) expected = { - "comment": "{} in {} is already present".format(vname, reg_vars.name), + "comment": f"{vname} in {reg_vars.name} is already present", "changes": {}, "name": reg_vars.name, "result": True, @@ -304,7 +304,7 @@ def test_present_test_true(reg_vars, clean): def test_present_existing(reg_vars, reset): expected = { - "comment": "{} in {} is already present".format(reg_vars.vname, reg_vars.name), + "comment": f"{reg_vars.vname} in {reg_vars.name} is already present", "changes": {}, "name": reg_vars.name, "result": True, @@ -323,7 +323,7 @@ def test_present_existing_key_only(reg_vars, clean): reg_util.set_value(hive=reg_vars.hive, key=reg_vars.key) expected = { - "comment": "(Default) in {} is already present".format(reg_vars.name), + "comment": f"(Default) in {reg_vars.name} is already present", "changes": {}, "name": reg_vars.name, "result": True, @@ -333,7 +333,7 @@ def test_present_existing_key_only(reg_vars, clean): def test_present_existing_test_true(reg_vars, reset): expected = { - "comment": "{} in {} is already present".format(reg_vars.vname, reg_vars.name), + "comment": f"{reg_vars.vname} in {reg_vars.name} is already present", "changes": {}, "name": reg_vars.name, "result": True, @@ -350,7 +350,7 @@ def test_absent(reg_vars, reset): Test to remove a registry entry. """ expected = { - "comment": "Removed {} from {}".format(reg_vars.key, reg_vars.hive), + "comment": f"Removed {reg_vars.key} from {reg_vars.hive}", "changes": { "reg": {"Removed": {"Entry": reg_vars.vname, "Key": reg_vars.name}} }, @@ -379,7 +379,7 @@ def test_absent_already_absent(reg_vars, clean): Test to remove a registry entry. """ expected = { - "comment": "{} is already absent".format(reg_vars.name), + "comment": f"{reg_vars.name} is already absent", "changes": {}, "name": reg_vars.name, "result": True, @@ -392,7 +392,7 @@ def test_absent_already_absent_test_true(reg_vars, clean): Test to remove a registry entry. """ expected = { - "comment": "{} is already absent".format(reg_vars.name), + "comment": f"{reg_vars.name} is already absent", "changes": {}, "name": reg_vars.name, "result": True, diff --git a/tests/pytests/functional/test_payload.py b/tests/pytests/functional/test_payload.py index 8dcd3fa1a56..1b76227e0e5 100644 --- a/tests/pytests/functional/test_payload.py +++ b/tests/pytests/functional/test_payload.py @@ -43,7 +43,7 @@ class EchoServer: """ context = zmq.Context() socket = context.socket(zmq.REP) - socket.bind("tcp://*:{}".format(port)) + socket.bind(f"tcp://*:{port}") while event.is_set(): try: # Wait for next request from client @@ -77,7 +77,7 @@ def echo_server(echo_port): @pytest.fixture def sreq(echo_port): - yield salt.payload.SREQ("tcp://127.0.0.1:{}".format(echo_port)) + yield salt.payload.SREQ(f"tcp://127.0.0.1:{echo_port}") @pytest.mark.slow_test diff --git a/tests/pytests/functional/utils/win_dacl/test_reg.py b/tests/pytests/functional/utils/win_dacl/test_reg.py index 870b9765ad6..14a8383f1ec 100644 --- a/tests/pytests/functional/utils/win_dacl/test_reg.py +++ b/tests/pytests/functional/utils/win_dacl/test_reg.py @@ -19,7 +19,7 @@ def fake_key(): @pytest.fixture(scope="function") def reg_key(fake_key): win_reg.set_value(hive="HKLM", key=fake_key, vname="fake_name", vdata="fake_data") - yield "HKLM\\{}".format(fake_key) + yield f"HKLM\\{fake_key}" win_reg.delete_key_recursive(hive="HKLM", key=fake_key) diff --git a/tests/pytests/unit/modules/file/test_file_block_replace.py b/tests/pytests/unit/modules/file/test_file_block_replace.py index 71e2d970895..8a05154f41c 100644 --- a/tests/pytests/unit/modules/file/test_file_block_replace.py +++ b/tests/pytests/unit/modules/file/test_file_block_replace.py @@ -206,9 +206,7 @@ def test_replace_append(multiline_file): with salt.utils.files.fopen(multiline_file, "rb") as fp: assert ( salt.utils.stringutils.to_bytes( - os.linesep.join( - ["#-- START BLOCK 2", "{}#-- END BLOCK 2".format(new_content)] - ) + os.linesep.join(["#-- START BLOCK 2", f"{new_content}#-- END BLOCK 2"]) ) in fp.read() ) @@ -249,9 +247,7 @@ def test_replace_insert_after(multiline_file): with salt.utils.files.fopen(multiline_file, "rb") as fp: assert ( salt.utils.stringutils.to_bytes( - os.linesep.join( - ["#-- START BLOCK 2", "{}#-- END BLOCK 2".format(new_content)] - ) + os.linesep.join(["#-- START BLOCK 2", f"{new_content}#-- END BLOCK 2"]) ) in fp.read() ) @@ -328,9 +324,7 @@ def test_replace_prepend(multiline_file): with salt.utils.files.fopen(multiline_file, "rb") as fp: assert ( salt.utils.stringutils.to_bytes( - os.linesep.join( - ["#-- START BLOCK 2", "{}#-- END BLOCK 2".format(new_content)] - ) + os.linesep.join(["#-- START BLOCK 2", f"{new_content}#-- END BLOCK 2"]) ) not in fp.read() ) @@ -355,7 +349,7 @@ def test_replace_prepend(multiline_file): os.linesep.join( [ "#-- START BLOCK 2", - "{}#-- END BLOCK 2".format(new_content), + f"{new_content}#-- END BLOCK 2", ] ) ) @@ -397,9 +391,7 @@ def test_replace_insert_before(multiline_file): with salt.utils.files.fopen(multiline_file, "rb") as fp: assert ( salt.utils.stringutils.to_bytes( - os.linesep.join( - ["#-- START BLOCK 2", "{}#-- END BLOCK 2".format(new_content)] - ) + os.linesep.join(["#-- START BLOCK 2", f"{new_content}#-- END BLOCK 2"]) ) in fp.read() ) @@ -431,7 +423,7 @@ def test_replace_partial_marked_lines(multiline_file): def test_backup(multiline_file): fext = ".bak" - bak_file = "{}{}".format(multiline_file, fext) + bak_file = f"{multiline_file}{fext}" if salt.utils.platform.is_windows(): check_perms_patch = win_file.check_perms @@ -451,7 +443,7 @@ def test_backup(multiline_file): assert not os.path.exists(bak_file) fext = ".bak" - bak_file = "{}{}".format(multiline_file, fext) + bak_file = f"{multiline_file}{fext}" if salt.utils.platform.is_windows(): check_perms_patch = win_file.check_perms diff --git a/tests/unit/modules/test_heat.py b/tests/unit/modules/test_heat.py index 4aaec60eecd..5419913268d 100644 --- a/tests/unit/modules/test_heat.py +++ b/tests/unit/modules/test_heat.py @@ -162,7 +162,7 @@ class HeatTestCase(TestCase, LoaderModuleMockMixin): ) assert ret == { "result": False, - "comment": "Can not open environment: {}, ".format(env_file), + "comment": f"Can not open environment: {env_file}, ", } def test_heat_update_stack(self):