summaryrefslogtreecommitdiffstats
path: root/test/integration/targets/ansible-galaxy-collection/tasks/fail_fast_resolvelib.yml
diff options
context:
space:
mode:
Diffstat (limited to 'test/integration/targets/ansible-galaxy-collection/tasks/fail_fast_resolvelib.yml')
-rw-r--r--test/integration/targets/ansible-galaxy-collection/tasks/fail_fast_resolvelib.yml45
1 files changed, 45 insertions, 0 deletions
diff --git a/test/integration/targets/ansible-galaxy-collection/tasks/fail_fast_resolvelib.yml b/test/integration/targets/ansible-galaxy-collection/tasks/fail_fast_resolvelib.yml
new file mode 100644
index 0000000..eb471f8
--- /dev/null
+++ b/test/integration/targets/ansible-galaxy-collection/tasks/fail_fast_resolvelib.yml
@@ -0,0 +1,45 @@
+# resolvelib>=0.6.0 added an 'incompatibilities' parameter to find_matches
+# If incompatibilities aren't removed from the viable candidates, this example causes infinite resursion
+- name: test resolvelib removes incompatibilites in find_matches and errors quickly (prevent infinite recursion)
+ block:
+ - name: create collection dir
+ file:
+ dest: "{{ galaxy_dir }}/resolvelib/ns/coll"
+ state: directory
+
+ - name: create galaxy.yml with a dependecy on a galaxy-sourced collection
+ copy:
+ dest: "{{ galaxy_dir }}/resolvelib/ns/coll/galaxy.yml"
+ content: |
+ namespace: ns
+ name: coll
+ authors:
+ - ansible-core
+ readme: README.md
+ version: "1.0.0"
+ dependencies:
+ namespace1.name1: "0.0.5"
+
+ - name: build the collection
+ command: ansible-galaxy collection build ns/coll
+ args:
+ chdir: "{{ galaxy_dir }}/resolvelib"
+
+ - name: install a conflicting version of the dep with the tarfile (expected failure)
+ command: ansible-galaxy collection install namespace1.name1:1.0.9 ns-coll-1.0.0.tar.gz -vvvvv -s {{ test_name }} -p collections/
+ args:
+ chdir: "{{ galaxy_dir }}/resolvelib"
+ timeout: 30
+ ignore_errors: yes
+ register: incompatible
+
+ - assert:
+ that:
+ - incompatible.failed
+ - not incompatible.msg.startswith("The command action failed to execute in the expected time frame")
+
+ always:
+ - name: cleanup resolvelib test
+ file:
+ dest: "{{ galaxy_dir }}/resolvelib"
+ state: absent