1# Test code for the postgresql_info module
2# Copyright: (c) 2019, Andrew Klychkov (@Andersson007) <aaklychkov@mail.ru>
3# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
4
5- name: postgresql_info - create role to check session_role
6  become_user: "{{ pg_user }}"
7  become: yes
8  postgresql_user:
9    db: "{{ db_default }}"
10    login_user: "{{ pg_user }}"
11    name: session_superuser
12    role_attr_flags: SUPERUSER
13
14- name: postgresql_info - test return values and session_role param
15  become_user: "{{ pg_user }}"
16  become: yes
17  postgresql_info:
18    db: "{{ db_default }}"
19    login_user: "{{ pg_user }}"
20    session_role: session_superuser
21  register: result
22  ignore_errors: yes
23
24- assert:
25    that:
26      - result.version != {}
27      - result.databases.{{ db_default }}.collate
28      - result.databases.{{ db_default }}.languages
29      - result.databases.{{ db_default }}.namespaces
30      - result.databases.{{ db_default }}.extensions
31      - result.settings
32      - result.tablespaces
33      - result.roles
34
35- name: postgresql_info - check filter param passed by list
36  become_user: "{{ pg_user }}"
37  become: yes
38  postgresql_info:
39    db: "{{ db_default }}"
40    login_user: "{{ pg_user }}"
41    filter:
42      - ver*
43      - rol*
44  register: result
45  ignore_errors: yes
46
47- assert:
48    that:
49      - result.version != {}
50      - result.roles
51      - result.databases == {}
52      - result.repl_slots == {}
53      - result.replications == {}
54      - result.settings == {}
55      - result.tablespaces == {}
56
57- name: postgresql_info - check filter param passed by string
58  become_user: "{{ pg_user }}"
59  become: yes
60  postgresql_info:
61    db: "{{ db_default }}"
62    filter: ver*,role*
63    login_user: "{{ pg_user }}"
64  register: result
65  ignore_errors: yes
66
67- assert:
68    that:
69      - result.version != {}
70      - result.roles
71      - result.databases == {}
72      - result.repl_slots == {}
73      - result.replications == {}
74      - result.settings == {}
75      - result.tablespaces == {}
76
77- name: postgresql_info - check filter param passed by string
78  become_user: "{{ pg_user }}"
79  become: yes
80  postgresql_info:
81    db: "{{ db_default }}"
82    filter: ver*
83    login_user: "{{ pg_user }}"
84  register: result
85  ignore_errors: yes
86
87- assert:
88    that:
89      - result.version
90      - result.roles == {}
91
92- name: postgresql_info - check excluding filter param passed by list
93  become_user: "{{ pg_user }}"
94  become: yes
95  postgresql_info:
96    db: "{{ db_default }}"
97    filter:
98      - "!ver*"
99      - "!rol*"
100    login_user: "{{ pg_user }}"
101  register: result
102  ignore_errors: yes
103
104- assert:
105    that:
106      - result.version == {}
107      - result.roles == {}
108      - result.databases
109