summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Clay <matt@mystile.com>2022-11-29 10:21:37 -0800
committerMatt Clay <matt@mystile.com>2022-11-29 13:40:04 -0800
commitf9715f436ce0590a5441fa7f13c1aa60cdeb6585 (patch)
tree62dff7df0056c63227d0157de37817294e123964
parentcda16cc5e9aa8703fb4e1ac0a0be6b631d9076cc (diff)
downloadansible-f9715f436ce0590a5441fa7f13c1aa60cdeb6585.tar.gz
ansible-test - Avoid direct use of `errno`.
Error handling on Python 3.x no longer requires the use of `errno` to identify specific errors.
-rw-r--r--changelogs/fragments/ansible-test-errno.yml2
-rw-r--r--test/lib/ansible_test/_internal/commands/coverage/__init__.py8
-rw-r--r--test/lib/ansible_test/_internal/core_ci.py11
-rw-r--r--test/lib/ansible_test/_internal/io.py7
-rw-r--r--test/lib/ansible_test/_internal/util.py14
-rw-r--r--test/lib/ansible_test/_util/controller/sanity/validate-modules/validate_modules/main.py10
6 files changed, 16 insertions, 36 deletions
diff --git a/changelogs/fragments/ansible-test-errno.yml b/changelogs/fragments/ansible-test-errno.yml
new file mode 100644
index 0000000000..b2a6a190c2
--- /dev/null
+++ b/changelogs/fragments/ansible-test-errno.yml
@@ -0,0 +1,2 @@
+minor_changes:
+ - ansible-test - Update error handling code to use Python 3.x constructs, avoiding direct use of ``errno``.
diff --git a/test/lib/ansible_test/_internal/commands/coverage/__init__.py b/test/lib/ansible_test/_internal/commands/coverage/__init__.py
index cdf2d544e9..6b063cf65d 100644
--- a/test/lib/ansible_test/_internal/commands/coverage/__init__.py
+++ b/test/lib/ansible_test/_internal/commands/coverage/__init__.py
@@ -2,7 +2,6 @@
from __future__ import annotations
import collections.abc as c
-import errno
import json
import os
import re
@@ -135,11 +134,8 @@ def get_coverage_files(language: str, path: t.Optional[str] = None) -> list[str]
try:
coverage_files = [os.path.join(coverage_dir, f) for f in os.listdir(coverage_dir)
if '=coverage.' in f and '=%s' % language in f]
- except IOError as ex:
- if ex.errno == errno.ENOENT:
- return []
-
- raise
+ except FileNotFoundError:
+ return []
return coverage_files
diff --git a/test/lib/ansible_test/_internal/core_ci.py b/test/lib/ansible_test/_internal/core_ci.py
index cc2a868ff7..15898ef8bf 100644
--- a/test/lib/ansible_test/_internal/core_ci.py
+++ b/test/lib/ansible_test/_internal/core_ci.py
@@ -8,7 +8,6 @@ import os
import re
import traceback
import uuid
-import errno
import time
import typing as t
@@ -347,18 +346,14 @@ class AnsibleCoreCI:
try:
self.connection = None
os.remove(self.path)
- except OSError as ex:
- if ex.errno != errno.ENOENT:
- raise
+ except FileNotFoundError:
+ pass
def _load(self):
"""Load instance information."""
try:
data = read_text_file(self.path)
- except IOError as ex:
- if ex.errno != errno.ENOENT:
- raise
-
+ except FileNotFoundError:
return False
if not data.startswith('{'):
diff --git a/test/lib/ansible_test/_internal/io.py b/test/lib/ansible_test/_internal/io.py
index a7e9f1b205..41f2ec03df 100644
--- a/test/lib/ansible_test/_internal/io.py
+++ b/test/lib/ansible_test/_internal/io.py
@@ -1,7 +1,6 @@
"""Functions for disk IO."""
from __future__ import annotations
-import errno
import io
import json
import os
@@ -32,11 +31,7 @@ def read_binary_file(path: str) -> bytes:
def make_dirs(path: str) -> None:
"""Create a directory at path, including any necessary parent directories."""
- try:
- os.makedirs(to_bytes(path))
- except OSError as ex:
- if ex.errno != errno.EEXIST:
- raise
+ os.makedirs(to_bytes(path), exist_ok=True)
def write_json_file(path: str,
diff --git a/test/lib/ansible_test/_internal/util.py b/test/lib/ansible_test/_internal/util.py
index 123162393f..95a8280f5c 100644
--- a/test/lib/ansible_test/_internal/util.py
+++ b/test/lib/ansible_test/_internal/util.py
@@ -3,7 +3,6 @@ from __future__ import annotations
import abc
import collections.abc as c
-import errno
import enum
import fcntl
import importlib.util
@@ -467,10 +466,8 @@ def raw_command(
cmd_bytes = [to_bytes(arg) for arg in cmd]
env_bytes = dict((to_bytes(k), to_bytes(v)) for k, v in env.items())
process = subprocess.Popen(cmd_bytes, env=env_bytes, stdin=stdin, stdout=stdout, stderr=stderr, cwd=cwd) # pylint: disable=consider-using-with
- except OSError as ex:
- if ex.errno == errno.ENOENT:
- raise ApplicationError('Required program "%s" not found.' % cmd[0])
- raise
+ except FileNotFoundError as ex:
+ raise ApplicationError('Required program "%s" not found.' % cmd[0]) from ex
if communicate:
data_bytes = to_optional_bytes(data)
@@ -694,12 +691,11 @@ def verified_chmod(path: str, mode: int) -> None:
def remove_tree(path: str) -> None:
- """Remove the specified directory, siliently continuing if the directory does not exist."""
+ """Remove the specified directory, silently continuing if the directory does not exist."""
try:
shutil.rmtree(to_bytes(path))
- except OSError as ex:
- if ex.errno != errno.ENOENT:
- raise
+ except FileNotFoundError:
+ pass
def is_binary_file(path: str) -> bool:
diff --git a/test/lib/ansible_test/_util/controller/sanity/validate-modules/validate_modules/main.py b/test/lib/ansible_test/_util/controller/sanity/validate-modules/validate_modules/main.py
index ce440bca1f..77c380c7aa 100644
--- a/test/lib/ansible_test/_util/controller/sanity/validate-modules/validate_modules/main.py
+++ b/test/lib/ansible_test/_util/controller/sanity/validate-modules/validate_modules/main.py
@@ -22,7 +22,6 @@ import argparse
import ast
import datetime
import json
-import errno
import os
import re
import subprocess
@@ -2467,12 +2466,9 @@ class GitCache:
self.head_tree = self._get_module_files()
else:
raise
- except OSError as ex:
- if ex.errno == errno.ENOENT:
- # fallback when git is not installed
- self.head_tree = self._get_module_files()
- else:
- raise
+ except FileNotFoundError:
+ # fallback when git is not installed
+ self.head_tree = self._get_module_files()
allowed_exts = ('.py', '.ps1')
if plugin_type != 'module':