Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package ansible-variables for openSUSE:Factory checked in at 2023-09-08 21:15:51 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ansible-variables (Old) and /work/SRC/openSUSE:Factory/.ansible-variables.new.1766 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ansible-variables" Fri Sep 8 21:15:51 2023 rev:2 rq:1109654 version:0.5.1 Changes: -------- --- /work/SRC/openSUSE:Factory/ansible-variables/ansible-variables.changes 2023-05-26 20:15:43.700353809 +0200 +++ /work/SRC/openSUSE:Factory/.ansible-variables.new.1766/ansible-variables.changes 2023-09-08 21:16:48.601191766 +0200 @@ -1,0 +2,8 @@ +Fri Sep 8 04:40:19 UTC 2023 - Johannes Kastl <ka...@b1-systems.de> + +- update to 0.5.1: + Bug Fixes + * passing undefined variable to --var will lead to Exception + ([#30](https://github.com/hille721/ansible-variables/issues/30)) + +------------------------------------------------------------------- Old: ---- ansible-variables-0.5.0.tar.gz New: ---- ansible-variables-0.5.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ansible-variables.spec ++++++ --- /var/tmp/diff_new_pack.0afHHx/_old 2023-09-08 21:16:50.301252526 +0200 +++ /var/tmp/diff_new_pack.0afHHx/_new 2023-09-08 21:16:50.317253098 +0200 @@ -1,5 +1,5 @@ # -# spec file for package python-ansible-variables +# spec file for package ansible-variables # # Copyright (c) 2023 SUSE LLC # @@ -38,27 +38,27 @@ %endif Name: ansible-variables -Version: 0.5.0 +Version: 0.5.1 Release: 0 Summary: Tool to show origin of Ansible host context variables -License: GPL-3.0+ +License: GPL-3.0-or-later URL: https://github.com/hille721/ansible-variables # the PyPI tarball does not contain all files required for the tests Source: https://github.com/hille721/ansible-variables/archive/v%{version}/ansible-variables-%{version}.tar.gz#/ansible-variables-%{version}.tar.gz -BuildRequires: python-rpm-macros BuildRequires: %{ansible_python}-pip BuildRequires: %{ansible_python}-setuptools BuildRequires: %{ansible_python}-wheel +BuildRequires: python-rpm-macros # SECTION test requirements BuildRequires: ansible-core >= 2.11.0 BuildRequires: %{ansible_python}-pytest BuildRequires: %{ansible_python}-rich # /SECTION BuildRequires: fdupes -Requires: ansible-core >= 2.11.0 Requires: %{ansible_python}-rich +Requires: ansible-core >= 2.11.0 Requires(post): update-alternatives -Requires(postun): update-alternatives +Requires(postun):update-alternatives BuildArch: noarch %description ++++++ _service ++++++ --- /var/tmp/diff_new_pack.0afHHx/_old 2023-09-08 21:16:50.585262676 +0200 +++ /var/tmp/diff_new_pack.0afHHx/_new 2023-09-08 21:16:50.589262819 +0200 @@ -1,5 +1,5 @@ <services> - <service name="download_files" mode="disabled"> + <service name="download_files" mode="manual"> </service> </services> ++++++ ansible-variables-0.5.0.tar.gz -> ansible-variables-0.5.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible-variables-0.5.0/.github/dependabot.yml new/ansible-variables-0.5.1/.github/dependabot.yml --- old/ansible-variables-0.5.0/.github/dependabot.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/ansible-variables-0.5.1/.github/dependabot.yml 2023-09-07 22:25:33.000000000 +0200 @@ -0,0 +1,17 @@ +--- +version: 2 +updates: + - package-ecosystem: pip + directory: / + schedule: + day: saturday + interval: weekly + labels: + - "dependencies" + - package-ecosystem: "github-actions" + directory: "/" + schedule: + day: saturday + interval: weekly + labels: + - "dependencies" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible-variables-0.5.0/.github/workflows/publish.yml new/ansible-variables-0.5.1/.github/workflows/publish.yml --- old/ansible-variables-0.5.0/.github/workflows/publish.yml 2023-05-18 17:08:46.000000000 +0200 +++ new/ansible-variables-0.5.1/.github/workflows/publish.yml 2023-09-07 22:25:33.000000000 +0200 @@ -22,10 +22,10 @@ package-name: ansible-variables # build & publish to PyPI - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 if: ${{ steps.release.outputs.release_created }} - name: Set up Python - uses: actions/setup-python@v3 + uses: actions/setup-python@v4 with: python-version: "3.9" if: ${{ steps.release.outputs.release_created }} @@ -38,7 +38,7 @@ run: python -m build if: ${{ steps.release.outputs.release_created }} - name: Publish package - uses: pypa/gh-action-pypi-publish@27b31702a0e7fc50959f5ad993c78deac1bdfc29 + uses: pypa/gh-action-pypi-publish@b7f401de30cb6434a1e19f805ff006643653240e with: user: __token__ password: ${{ secrets.PYPI_PASSWORD }} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible-variables-0.5.0/.github/workflows/tox.yml new/ansible-variables-0.5.1/.github/workflows/tox.yml --- old/ansible-variables-0.5.0/.github/workflows/tox.yml 2023-05-18 17:08:46.000000000 +0200 +++ new/ansible-variables-0.5.1/.github/workflows/tox.yml 2023-09-07 22:25:33.000000000 +0200 @@ -1,28 +1,69 @@ -# This will run tox with https://github.com/ymyzk/tox-gh-actions -name: Tox +# This will run tox with https://github.com/coactions/dynamic-matrix +name: tox on: push: - branches: ["*"] + branches: ["main"] pull_request: branches: ["main"] +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} + cancel-in-progress: true + +env: + FORCE_COLOR: 1 # tox, pytest, ansible-lint + PY_COLORS: 1 + jobs: - test: + pre: + name: pre runs-on: ubuntu-latest + outputs: + matrix: ${{ steps.generate_matrix.outputs.matrix }} + steps: + - name: Determine matrix + id: generate_matrix + uses: coactions/dynamic-matrix@v1 + with: + other_names: | + py38-2.11 + py38-2.12 + py38-2.13 + py39-2.11 + py39-2.12 + py39-2.13 + py39-2.14 + py39-2.15 + py310-2.12 + py310-2.13 + py310-2.14 + py310-2.15 + py310-devel + py311-2.14 + py311-2.15 + py311-devel + + build: + name: ${{ matrix.name }} + runs-on: ${{ matrix.os || 'ubuntu-22.04' }} + needs: pre strategy: - matrix: - python-version: ["3.8", "3.9", "3.10", "3.11"] + matrix: ${{ fromJson(needs.pre.outputs.matrix) }} steps: - - uses: actions/checkout@v3 - - name: Set up Python ${{ matrix.python-version }} + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Set up python ${{ matrix.python_version }} uses: actions/setup-python@v4 with: - python-version: ${{ matrix.python-version }} - - name: Install dependencies + python-version: ${{ matrix.python_version }} + + - name: Install tox run: | - python -m pip install --upgrade pip - python -m pip install tox tox-gh-actions - - name: Test with tox - run: tox + python -m pip install -U pip + pip install tox + + - run: tox run -e ${{ matrix.passed_name }} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible-variables-0.5.0/.gitignore new/ansible-variables-0.5.1/.gitignore --- old/ansible-variables-0.5.0/.gitignore 2023-05-18 17:08:46.000000000 +0200 +++ new/ansible-variables-0.5.1/.gitignore 2023-09-07 22:25:33.000000000 +0200 @@ -33,6 +33,7 @@ .tox .cache .pytest_cache +.ruff_cache results.xml coverage.xml # Development diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible-variables-0.5.0/.pre-commit-config.yaml new/ansible-variables-0.5.1/.pre-commit-config.yaml --- old/ansible-variables-0.5.0/.pre-commit-config.yaml 2023-05-18 17:08:46.000000000 +0200 +++ new/ansible-variables-0.5.1/.pre-commit-config.yaml 2023-09-07 22:25:33.000000000 +0200 @@ -1,5 +1,6 @@ --- ci: + autoupdate_schedule: monthly # format compatible with release-please autoupdate_commit_msg: "chore: pre-commit autoupdate" autofix_commit_msg: | @@ -20,40 +21,44 @@ language_version: python3 - repo: https://github.com/crate-ci/typos - rev: v1.14.9 + rev: v1.16.10 hooks: - id: typos - repo: https://github.com/psf/black - rev: 23.3.0 + rev: 23.7.0 hooks: - id: black exclude: ".ci/hack" - - repo: https://github.com/pycqa/flake8.git - rev: 6.0.0 + - repo: https://github.com/astral-sh/ruff-pre-commit + rev: 'v0.0.287' hooks: - - id: flake8 + - id: ruff + args: + - --fix + - --exit-non-zero-on-fix - - repo: https://github.com/pycqa/doc8 - rev: v1.1.1 + - repo: https://github.com/jackdewinter/pymarkdown + rev: v0.9.13.3 hooks: - - id: doc8 + - id: pymarkdown + args: + - -c + - .pymarkdown.json + - scan + exclude: CHANGELOG.md # is autogenerated - repo: https://github.com/pycqa/pylint - rev: v3.0.0a6 + rev: v3.0.0a7 hooks: - id: pylint + pass_filenames: false + entry: pylint lib tests args: - --output-format=colorized additional_dependencies: + - . - ansible-core>=2.11.0 - rich - pytest - stages: [manual] # not working if only single files are passed - - - repo: https://github.com/pycqa/isort - rev: 5.12.0 - hooks: - - id: isort - name: isort diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible-variables-0.5.0/.pymarkdown.json new/ansible-variables-0.5.1/.pymarkdown.json --- old/ansible-variables-0.5.0/.pymarkdown.json 1970-01-01 01:00:00.000000000 +0100 +++ new/ansible-variables-0.5.1/.pymarkdown.json 2023-09-07 22:25:33.000000000 +0200 @@ -0,0 +1,13 @@ +{ + "plugins": { + "line-length": { + "enabled": true, + "line_length": 120, + "heading_line_length": 80, + "code_block_line_length": 80 + }, + "ul-indent": { + "indent": 4 + } + } +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible-variables-0.5.0/CHANGELOG.md new/ansible-variables-0.5.1/CHANGELOG.md --- old/ansible-variables-0.5.0/CHANGELOG.md 2023-05-18 17:08:46.000000000 +0200 +++ new/ansible-variables-0.5.1/CHANGELOG.md 2023-09-07 22:25:33.000000000 +0200 @@ -1,5 +1,12 @@ # Changelog +## [0.5.1](https://github.com/hille721/ansible-variables/compare/v0.5.0...v0.5.1) (2023-09-07) + + +### Bug Fixes + +* passing undefined variable to --var will lead to Exception ([#30](https://github.com/hille721/ansible-variables/issues/30)) ([dfbb736](https://github.com/hille721/ansible-variables/commit/dfbb7365d7834ae2275172d2e9465a042f41e5e0)) + ## [0.5.0](https://github.com/hille721/ansible-variables/compare/v0.4.3...v0.5.0) (2023-05-18) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible-variables-0.5.0/README.md new/ansible-variables-0.5.1/README.md --- old/ansible-variables-0.5.0/README.md 2023-05-18 17:08:46.000000000 +0200 +++ new/ansible-variables-0.5.1/README.md 2023-09-07 22:25:33.000000000 +0200 @@ -5,7 +5,9 @@ [![pre-commit][pre-commit-badge]][pre-commit-link] The Ansible inventory provides a very powerful framework to declare variables in a hierarchical manner. -There a lof of different places where a variable can be defined (inventory, host_vars, groups_vars, ...) and Ansible will merge them in a specific order ([variable precedence](https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_variables.html#understanding-variable-precedence)). +There a lof of different places where a variable can be defined (inventory, host_vars, groups_vars, ...) +and Ansible will merge them in a specific order +([variable precedence](https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_variables.html#understanding-variable-precedence)). `ansible-variables` will help to keep track of your host context variables: @@ -27,7 +29,8 @@ ## Usage -The command line usage is similar to the official Ansible CLI tools, especially like ansible-inventory, thus to see all possible commands and options run +The command line usage is similar to the official Ansible CLI tools, especially like ansible-inventory, +thus to see all possible commands and options run ```plain ansible-variables --help @@ -73,15 +76,20 @@ ## Implementation This tool is tightly coupled to the Ansible library (`ansible-core`) and simple reuses what is already there. -The whole structure and implementation was inspired and oriented by the implementation of [`ansible-inventory`](https://github.com/ansible/ansible/blob/devel/lib/ansible/cli/inventory.py). +The whole structure and implementation was inspired and oriented by the implementation of +[`ansible-inventory`](https://github.com/ansible/ansible/blob/devel/lib/ansible/cli/inventory.py). -To get the source and the inventory files in which Ansible will look for a variable, we are using a [debug flag](https://github.com/ansible/ansible/blob/devel/lib/ansible/vars/manager.py#L187) in Ansible's `get_vars` method. +To get the source and the inventory files in which Ansible will look for a variable, +we are using a [debug flag](https://github.com/ansible/ansible/blob/devel/lib/ansible/vars/manager.py#L187) +in Ansible's `get_vars` method. -As as result, the output of `ansible-variables` can be fully trusted as it uses the same methods as Ansible to get the variable precedence. +As as result, the output of `ansible-variables` can be fully trusted +as it uses the same methods as Ansible to get the variable precedence. ## Limitations -* as written in the description, this tool only shows host context variables and does not know anything about playbook or role variables or command line options. +* as written in the description, this tool only shows host context variables and +does not know anything about playbook or role variables or command line options. ## Credits diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible-variables-0.5.0/lib/ansible_variables/cli/__init__.py new/ansible-variables-0.5.1/lib/ansible_variables/cli/__init__.py --- old/ansible-variables-0.5.0/lib/ansible_variables/cli/__init__.py 2023-05-18 17:08:46.000000000 +0200 +++ new/ansible-variables-0.5.1/lib/ansible_variables/cli/__init__.py 2023-09-07 22:25:33.000000000 +0200 @@ -23,82 +23,81 @@ """ @classmethod - def cli_executor(cls, args=None): + def cli_executor(cls, args=None): # pylint: disable=too-many-branches,too-many-statements # no change for ansible-core >= 2.13 if hasattr(super(), "cli_executor"): return super().cli_executor(args=args) # backporting code from https://github.com/ansible/ansible/blob/v2.13.9/lib/ansible/cli/__init__.py#L574 - else: - if args is None: - args = sys.argv + if args is None: + args = sys.argv - try: - display.debug("starting run") + try: + display.debug("starting run") - ansible_dir = Path("~/.ansible").expanduser() - try: - ansible_dir.mkdir(mode=0o700) - except OSError as exc: - if exc.errno != errno.EEXIST: - display.warning( - "Failed to create the directory '%s': %s" - % (ansible_dir, to_text(exc, errors="surrogate_or_replace")) - ) - else: - display.debug("Created the '%s' directory" % ansible_dir) - - try: - args = [to_text(a, errors="surrogate_or_strict") for a in args] - except UnicodeError: - display.error( - """Command line args are not in utf-8, unable to continue. - Ansible currently only understands utf-8""" + ansible_dir = Path("~/.ansible").expanduser() + try: + ansible_dir.mkdir(mode=0o700) + except OSError as exc: + if exc.errno != errno.EEXIST: + display.warning( + "Failed to create the directory '%s': %s" + % (ansible_dir, to_text(exc, errors="surrogate_or_replace")) ) - display.display("The full traceback was:\n\n%s" % to_text(traceback.format_exc())) - exit_code = 6 - else: - cli = cls(args) - exit_code = cli.run() - - except AnsibleOptionsError as exc: - cli.parser.print_help() - display.error(to_text(exc), wrap_text=False) - exit_code = 5 - except AnsibleParserError as exc: - display.error(to_text(exc), wrap_text=False) - exit_code = 4 - # TQM takes care of these, but leaving comment to reserve the exit codes - # except AnsibleHostUnreachable as e: - # display.error(str(e)) - # exit_code = 3 - # except AnsibleHostFailed as e: - # display.error(str(e)) - # exit_code = 2 - except AnsibleError as e: - display.error(to_text(e), wrap_text=False) - exit_code = 1 - except KeyboardInterrupt: - display.error("User interrupted execution") - exit_code = 99 - except Exception as e: - if C.DEFAULT_DEBUG: - # Show raw stacktraces in debug mode, It also allow pdb to - # enter post mortem mode. - raise - have_cli_options = bool(context.CLIARGS) - display.error("Unexpected Exception, this is probably a bug: %s" % to_text(e), wrap_text=False) - if not have_cli_options or have_cli_options and context.CLIARGS["verbosity"] > 2: - log_only = False - if hasattr(e, "orig_exc"): - display.vvv("\nexception type: %s" % to_text(type(e.orig_exc))) - why = to_text(e.orig_exc) - if to_text(e) != why: - display.vvv("\noriginal msg: %s" % why) - else: - display.display("to see the full traceback, use -vvv") - log_only = True - display.display("the full traceback was:\n\n%s" % to_text(traceback.format_exc()), log_only=log_only) - exit_code = 250 + else: + display.debug("Created the '%s' directory" % ansible_dir) + + try: + args = [to_text(a, errors="surrogate_or_strict") for a in args] + except UnicodeError: + display.error( + """Command line args are not in utf-8, unable to continue. + Ansible currently only understands utf-8""" + ) + display.display("The full traceback was:\n\n%s" % to_text(traceback.format_exc())) + exit_code = 6 + else: + cli = cls(args) + exit_code = cli.run() + + except AnsibleOptionsError as exc: + cli.parser.print_help() + display.error(to_text(exc), wrap_text=False) + exit_code = 5 + except AnsibleParserError as exc: + display.error(to_text(exc), wrap_text=False) + exit_code = 4 + # TQM takes care of these, but leaving comment to reserve the exit codes + # except AnsibleHostUnreachable as exc: + # display.error(str(exc)) + # exit_code = 3 + # except AnsibleHostFailed as exc: + # display.error(str(exc)) + # exit_code = 2 + except AnsibleError as exc: + display.error(to_text(exc), wrap_text=False) + exit_code = 1 + except KeyboardInterrupt: + display.error("User interrupted execution") + exit_code = 99 + except Exception as exc: # pylint: disable=broad-exception-caught + if C.DEFAULT_DEBUG: + # Show raw stacktraces in debug mode, It also allow pdb to + # enter post mortem mode. + raise + have_cli_options = bool(context.CLIARGS) + display.error("Unexpected Exception, this is probably a bug: %s" % to_text(exc), wrap_text=False) + if not have_cli_options or have_cli_options and context.CLIARGS["verbosity"] > 2: + log_only = False + if hasattr(exc, "orig_exc"): + display.vvv("\nexception type: %s" % to_text(type(exc.orig_exc))) + why = to_text(exc.orig_exc) + if to_text(exc) != why: + display.vvv("\noriginal msg: %s" % why) + else: + display.display("to see the full traceback, use -vvv") + log_only = True + display.display("the full traceback was:\n\n%s" % to_text(traceback.format_exc()), log_only=log_only) + exit_code = 250 - sys.exit(exit_code) + sys.exit(exit_code) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible-variables-0.5.0/lib/ansible_variables/cli/variables.py new/ansible-variables-0.5.1/lib/ansible_variables/cli/variables.py --- old/ansible-variables-0.5.0/lib/ansible_variables/cli/variables.py 2023-05-18 17:08:46.000000000 +0200 +++ new/ansible-variables-0.5.1/lib/ansible_variables/cli/variables.py 2023-09-07 22:25:33.000000000 +0200 @@ -3,7 +3,7 @@ import rich from ansible import context from ansible.cli.arguments import option_helpers as opt_help -from ansible.errors import AnsibleOptionsError +from ansible.errors import AnsibleOptionsError, AnsibleUndefinedVariable from ansible.module_utils._text import to_native from ansible.utils.display import Display @@ -126,6 +126,9 @@ var=context.CLIARGS["variable"], ): if variable.name not in INTERNAL_VARS: + if context.CLIARGS["variable"] and not variable.value: + # variable as options passed which is not defined + raise AnsibleUndefinedVariable("Variable %s is not defined" % variable.name) rich.print( f"[bold]{variable.name}[/bold]: {variable.value} - [italic]{variable.source_mapped}[/italic]" ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible-variables-0.5.0/lib/ansible_variables/utils/vars.py new/ansible-variables-0.5.1/lib/ansible_variables/utils/vars.py --- old/ansible-variables-0.5.0/lib/ansible_variables/utils/vars.py 2023-05-18 17:08:46.000000000 +0200 +++ new/ansible-variables-0.5.1/lib/ansible_variables/utils/vars.py 2023-09-07 22:25:33.000000000 +0200 @@ -42,7 +42,7 @@ } for key, value in source_map.items(): - if self.source.startswith(key): + if self.source and self.source.startswith(key): return value return self.source diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible-variables-0.5.0/pyproject.toml new/ansible-variables-0.5.1/pyproject.toml --- old/ansible-variables-0.5.0/pyproject.toml 2023-05-18 17:08:46.000000000 +0200 +++ new/ansible-variables-0.5.1/pyproject.toml 2023-09-07 22:25:33.000000000 +0200 @@ -1,10 +1,19 @@ -# for now only be used for black config +# for now only be used for black and ruff config # maybe in the future we will use it instead of setup.py / setup.cfg [tool.black] line-length = 120 -[tool.isort] -profile = "black" -known_first_party = "ansible_variables" -known_third_party = "ansible,pytest,pkg_resources,setuptools,rich" -line_length = 120 +[tool.ruff] +line-length = 120 +select = [ + # Pyflakes + "F", + # Pycodestyle + "E", + "W", + # isort + "I001" + ] + +[tool.ruff.isort] +known-first-party = ["ansible_variables"] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible-variables-0.5.0/requirements-dev.txt new/ansible-variables-0.5.1/requirements-dev.txt --- old/ansible-variables-0.5.0/requirements-dev.txt 2023-05-18 17:08:46.000000000 +0200 +++ new/ansible-variables-0.5.1/requirements-dev.txt 2023-09-07 22:25:33.000000000 +0200 @@ -3,6 +3,6 @@ tox black pylint -flake8 +ruff pytest pre-commit diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible-variables-0.5.0/setup.cfg new/ansible-variables-0.5.1/setup.cfg --- old/ansible-variables-0.5.0/setup.cfg 2023-05-18 17:08:46.000000000 +0200 +++ new/ansible-variables-0.5.1/setup.cfg 2023-09-07 22:25:33.000000000 +0200 @@ -1,6 +1,6 @@ [metadata] name = ansible-variables -version = 0.5.0 +version = 0.5.1 description = Keep track of Ansible host context variables long_description = file: README.md long_description_content_type = text/markdown @@ -52,11 +52,8 @@ console_scripts = ansible-variables = ansible_variables.cli.variables:main -[flake8] -max-line-length = 120 - [pylint.format] max-line-length = 120 [pylint."message control"] -disable = missing-module-docstring, missing-function-docstring, consider-using-f-string +disable = missing-module-docstring, missing-function-docstring, consider-using-f-string, fixme diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible-variables-0.5.0/tests/test_cli.py new/ansible-variables-0.5.1/tests/test_cli.py --- old/ansible-variables-0.5.0/tests/test_cli.py 2023-05-18 17:08:46.000000000 +0200 +++ new/ansible-variables-0.5.1/tests/test_cli.py 2023-09-07 22:25:33.000000000 +0200 @@ -6,6 +6,9 @@ C.set_constant("CONFIG_FILE", "tests/test_data/ansible.cfg") C.set_constant("DEFAULT_HOST_LIST", "tests/test_data/inventory") +# FIXME: we should not invoke the test with main() or VariablesCLI() as this will lead to context.CLIArgs set +# which will not be cleared between the tests and so could lead to unexpected results + def test_main(capsys): with pytest.raises(SystemExit) as pytest_wrapped_e: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible-variables-0.5.0/tests/test_utils.py new/ansible-variables-0.5.1/tests/test_utils.py --- old/ansible-variables-0.5.0/tests/test_utils.py 2023-05-18 17:08:46.000000000 +0200 +++ new/ansible-variables-0.5.1/tests/test_utils.py 2023-09-07 22:25:33.000000000 +0200 @@ -84,3 +84,13 @@ "group vars, precedence entry 'all_inventory'", ) ] == [(source.name, source.value, source.source) for source in sources] + + +def test_undefined_variable(): + sources = variable_sources( + variable_manager=variable_manager, host=inventory.get_host("server1"), var="undefined_variable_blablabla_1234" + ) + for variable in sources: + assert variable.name + assert not variable.value # should have None value + assert not variable.source_mapped # should have None source diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible-variables-0.5.0/tox.ini new/ansible-variables-0.5.1/tox.ini --- old/ansible-variables-0.5.0/tox.ini 2023-05-18 17:08:46.000000000 +0200 +++ new/ansible-variables-0.5.1/tox.ini 2023-09-07 22:25:33.000000000 +0200 @@ -1,30 +1,24 @@ [tox] env_list = linters - py39-ansible{211,212,213,214,215,devel} - py310 - py311 + py38-{2.11,2.12,2.13} + py39-{2.11,2.12,2.13,2.14,2.15} + py310-{2.12,2.13,2.14,2.15,devel} + py311-{2.14,2.15,devel} minversion = 4.4.11 -[gh-actions] -python = - 3.8: py38 - 3.9: py39 - 3.10: py310 - 3.11: py311 - [testenv] description = run the tests with pytest package = wheel wheel_build_env = .pkg deps = pytest>=6 - ansible211: ansible-core==2.11.* - ansible212: ansible-core==2.12.* - ansible213: ansible-core==2.13.* - ansible214: ansible-core==2.14.* - ansible215: ansible-core==2.15.* - ansibledevel: git+https://github.com/ansible/ansible + 2.11: ansible-core==2.11.* + 2.12: ansible-core==2.12.* + 2.13: ansible-core==2.13.* + 2.14: ansible-core==2.14.* + 2.15: ansible-core==2.15.* + devel: git+https://github.com/ansible/ansible commands = pytest {tty:--color=yes} -v {posargs}