From 4a1632444b5b3816a3a3aa71f52715d9854abc82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Moser?= Date: Sat, 12 May 2018 11:25:03 +0200 Subject: [PATCH] tests, patch: init integration tests (#40045) * patch: init integration tests * skip install for macos --- test/integration/targets/patch/aliases | 2 + .../targets/patch/files/origin.txt | 19 ++++ .../targets/patch/files/result.patch | 24 ++++ .../targets/patch/files/result.txt | 13 +++ test/integration/targets/patch/meta/main.yml | 3 + test/integration/targets/patch/tasks/main.yml | 107 ++++++++++++++++++ 6 files changed, 168 insertions(+) create mode 100644 test/integration/targets/patch/aliases create mode 100644 test/integration/targets/patch/files/origin.txt create mode 100644 test/integration/targets/patch/files/result.patch create mode 100644 test/integration/targets/patch/files/result.txt create mode 100644 test/integration/targets/patch/meta/main.yml create mode 100644 test/integration/targets/patch/tasks/main.yml diff --git a/test/integration/targets/patch/aliases b/test/integration/targets/patch/aliases new file mode 100644 index 00000000000..1d5cf63fba3 --- /dev/null +++ b/test/integration/targets/patch/aliases @@ -0,0 +1,2 @@ +destructive +posix/ci/group2 diff --git a/test/integration/targets/patch/files/origin.txt b/test/integration/targets/patch/files/origin.txt new file mode 100644 index 00000000000..0ef3d73958d --- /dev/null +++ b/test/integration/targets/patch/files/origin.txt @@ -0,0 +1,19 @@ +Stet clita kasd gubergren,no sea takimata sanctus est Lorem ipsum dolor +sit amet. + +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod +tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At +vero eos et accusam et justo duo dolores et ea rebum. + +Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor +sit amet. + +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod +tempor invidunt ut labore et dolore magna aliquyam erat. + +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod +tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At +vero eos et accusam et justo duo dolores et ea rebum. + +Stet clita kasd gubergren,no sea takimata sanctus est Lorem ipsum dolor +sit amet. diff --git a/test/integration/targets/patch/files/result.patch b/test/integration/targets/patch/files/result.patch new file mode 100644 index 00000000000..d672b1e463c --- /dev/null +++ b/test/integration/targets/patch/files/result.patch @@ -0,0 +1,24 @@ +--- origin.txt 2018-05-12 10:22:14.155109584 +0200 ++++ result.txt 2018-05-12 10:18:07.230811204 +0200 +@@ -2,18 +2,12 @@ + sit amet. + + Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod +-tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At +-vero eos et accusam et justo duo dolores et ea rebum. +- +-Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor +-sit amet. +- +-Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod +-tempor invidunt ut labore et dolore magna aliquyam erat. ++tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. ++At vero eos et accusam et justo duo dolores et ea rebum. + + Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod + tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At + vero eos et accusam et justo duo dolores et ea rebum. + +-Stet clita kasd gubergren,no sea takimata sanctus est Lorem ipsum dolor ++Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor + sit amet. diff --git a/test/integration/targets/patch/files/result.txt b/test/integration/targets/patch/files/result.txt new file mode 100644 index 00000000000..ec40e3b1e53 --- /dev/null +++ b/test/integration/targets/patch/files/result.txt @@ -0,0 +1,13 @@ +Stet clita kasd gubergren,no sea takimata sanctus est Lorem ipsum dolor +sit amet. + +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod +tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. +At vero eos et accusam et justo duo dolores et ea rebum. + +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod +tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At +vero eos et accusam et justo duo dolores et ea rebum. + +Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor +sit amet. diff --git a/test/integration/targets/patch/meta/main.yml b/test/integration/targets/patch/meta/main.yml new file mode 100644 index 00000000000..8828391177b --- /dev/null +++ b/test/integration/targets/patch/meta/main.yml @@ -0,0 +1,3 @@ +--- +dependencies: + - prepare_tests diff --git a/test/integration/targets/patch/tasks/main.yml b/test/integration/targets/patch/tasks/main.yml new file mode 100644 index 00000000000..1fbe1a5d79f --- /dev/null +++ b/test/integration/targets/patch/tasks/main.yml @@ -0,0 +1,107 @@ +--- +- name: ensure idempotency installed + package: + name: patch + when: ansible_distribution != "MacOSX" + +- name: create a directory for the result + file: + dest: "{{ output_dir }}/patch" + state: directory + register: result + +- name: assert the directory was created + assert: + that: + - "result.state == 'directory'" + +- name: copy the origin file + copy: + src: "./origin.txt" + dest: "{{ output_dir }}/patch/workfile.txt" + register: result + +- name: patch the origin file in check mode + patch: + src: result.patch + dest: "{{ output_dir }}/patch/workfile.txt" + check_mode: yes + register: result + +- name: verify patch the origin file in check mode + assert: + that: + - result is changed + +- name: patch the origin file + patch: + src: result.patch + dest: "{{ output_dir }}/patch/workfile.txt" + register: result + +- name: verify patch the origin file + assert: + that: + - result is changed + +- name: test patch the origin file idempotency + patch: + src: result.patch + dest: "{{ output_dir }}/patch/workfile.txt" + register: result + +- name: verify test patch the origin file idempotency + assert: + that: + - result is not changed + +- name: verify the resulted file matches expectations + copy: + src: "./result.txt" + dest: "{{ output_dir }}/patch/workfile.txt" + register: result + failed_when: result is changed + +- name: patch the workfile file in check mode state absent + patch: + src: result.patch + dest: "{{ output_dir }}/patch/workfile.txt" + state: absent + check_mode: yes + register: result + +- name: verify patch the workfile file in check mode state absent + assert: + that: + - result is changed + +- name: patch the workfile file state absent + patch: + src: result.patch + dest: "{{ output_dir }}/patch/workfile.txt" + state: absent + register: result + +- name: verify patch the workfile file state absent + assert: + that: + - result is changed + +- name: patch the workfile file state absent idempotency + patch: + src: result.patch + dest: "{{ output_dir }}/patch/workfile.txt" + state: absent + register: result + +- name: verify patch the workfile file state absent idempotency + assert: + that: + - result is not changed + +- name: verify the resulted file matches expectations + copy: + src: "./origin.txt" + dest: "{{ output_dir }}/patch/workfile.txt" + register: result + failed_when: result is changed