summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Clay <matt@mystile.com>2022-11-28 13:29:32 -0800
committerMatt Clay <matt@mystile.com>2022-11-28 19:41:47 -0800
commit38fe34244ca166418a882cc6e191ccff3a8fc9d1 (patch)
tree9517e86190fa35fdaef262d91bd503d7fc994ecb
parent3723c426d2f12b8ba6adde6c06302a4dc8851126 (diff)
downloadansible-38fe34244ca166418a882cc6e191ccff3a8fc9d1.tar.gz
ansible-test - Fix completion error in Python 3.11.
-rw-r--r--changelogs/fragments/ansible-test-fix-python-3.11-traceback.yml2
-rw-r--r--test/lib/ansible_test/_internal/cli/argparsing/parsers.py10
2 files changed, 8 insertions, 4 deletions
diff --git a/changelogs/fragments/ansible-test-fix-python-3.11-traceback.yml b/changelogs/fragments/ansible-test-fix-python-3.11-traceback.yml
new file mode 100644
index 0000000000..717b917b79
--- /dev/null
+++ b/changelogs/fragments/ansible-test-fix-python-3.11-traceback.yml
@@ -0,0 +1,2 @@
+bugfixes:
+ - ansible-test - Added a work-around for a traceback under Python 3.11 when completing certain command line options.
diff --git a/test/lib/ansible_test/_internal/cli/argparsing/parsers.py b/test/lib/ansible_test/_internal/cli/argparsing/parsers.py
index a2e40475ab..a6a45e9e39 100644
--- a/test/lib/ansible_test/_internal/cli/argparsing/parsers.py
+++ b/test/lib/ansible_test/_internal/cli/argparsing/parsers.py
@@ -22,24 +22,26 @@ ASSIGNMENT_DELIMITER = '='
PATH_DELIMITER = '/'
-@dataclasses.dataclass(frozen=True)
+# This class was originally frozen. However, that causes issues when running under Python 3.11.
+# See: https://github.com/python/cpython/issues/99856
+@dataclasses.dataclass
class Completion(Exception):
"""Base class for argument completion results."""
-@dataclasses.dataclass(frozen=True)
+@dataclasses.dataclass
class CompletionUnavailable(Completion):
"""Argument completion unavailable."""
message: str = 'No completions available.'
-@dataclasses.dataclass(frozen=True)
+@dataclasses.dataclass
class CompletionError(Completion):
"""Argument completion error."""
message: t.Optional[str] = None
-@dataclasses.dataclass(frozen=True)
+@dataclasses.dataclass
class CompletionSuccess(Completion):
"""Successful argument completion result."""
list_mode: bool