1import pytest
2import salt.config
3import salt.version
4
5pytestmark = [
6    pytest.mark.slow_test,
7]
8
9
10def test_ping(
11    mm_master_1_salt_cli, salt_mm_minion_1, mm_master_2_salt_cli, salt_mm_minion_2
12):
13    """
14    test.ping
15    """
16    ret = mm_master_1_salt_cli.run("test.ping", minion_tgt=salt_mm_minion_1.id)
17    assert ret.exitcode == 0
18    assert ret.json is True
19
20    ret = mm_master_2_salt_cli.run("test.ping", minion_tgt=salt_mm_minion_1.id)
21    assert ret.exitcode == 0
22    assert ret.json is True
23
24    ret = mm_master_1_salt_cli.run("test.ping", minion_tgt=salt_mm_minion_2.id)
25    assert ret.exitcode == 0
26    assert ret.json is True
27
28    ret = mm_master_2_salt_cli.run("test.ping", minion_tgt=salt_mm_minion_2.id)
29    assert ret.exitcode == 0
30    assert ret.json is True
31
32
33def test_echo(
34    mm_master_1_salt_cli, salt_mm_minion_1, mm_master_2_salt_cli, salt_mm_minion_2
35):
36    """
37    test.echo
38    """
39    ret = mm_master_1_salt_cli.run("test.echo", "text", minion_tgt=salt_mm_minion_1.id)
40    assert ret.exitcode == 0
41    assert ret.json == "text"
42
43    ret = mm_master_2_salt_cli.run("test.echo", "text", minion_tgt=salt_mm_minion_1.id)
44    assert ret.exitcode == 0
45    assert ret.json == "text"
46
47    ret = mm_master_1_salt_cli.run("test.echo", "text", minion_tgt=salt_mm_minion_2.id)
48    assert ret.exitcode == 0
49    assert ret.json == "text"
50
51    ret = mm_master_2_salt_cli.run("test.echo", "text", minion_tgt=salt_mm_minion_2.id)
52    assert ret.exitcode == 0
53    assert ret.json == "text"
54
55
56def test_version(
57    mm_master_1_salt_cli, salt_mm_minion_1, mm_master_2_salt_cli, salt_mm_minion_2
58):
59    """
60    test.version
61    """
62    ret = mm_master_1_salt_cli.run("test.version", minion_tgt=salt_mm_minion_1.id)
63    assert ret.exitcode == 0
64    assert ret.json == salt.version.__saltstack_version__.string
65
66    ret = mm_master_2_salt_cli.run("test.version", minion_tgt=salt_mm_minion_1.id)
67    assert ret.exitcode == 0
68    assert ret.json == salt.version.__saltstack_version__.string
69
70    ret = mm_master_1_salt_cli.run("test.version", minion_tgt=salt_mm_minion_2.id)
71    assert ret.exitcode == 0
72    assert ret.json == salt.version.__saltstack_version__.string
73
74    ret = mm_master_2_salt_cli.run("test.version", minion_tgt=salt_mm_minion_2.id)
75    assert ret.exitcode == 0
76    assert ret.json == salt.version.__saltstack_version__.string
77
78
79def test_conf_test(
80    mm_master_1_salt_cli, salt_mm_minion_1, mm_master_2_salt_cli, salt_mm_minion_2
81):
82    """
83    test.conf_text
84    """
85    ret = mm_master_1_salt_cli.run("test.conf_test", minion_tgt=salt_mm_minion_1.id)
86    assert ret.exitcode == 0
87    assert ret.json == "baz"
88
89    ret = mm_master_2_salt_cli.run("test.conf_test", minion_tgt=salt_mm_minion_1.id)
90    assert ret.exitcode == 0
91    assert ret.json == "baz"
92
93    ret = mm_master_1_salt_cli.run("test.conf_test", minion_tgt=salt_mm_minion_2.id)
94    assert ret.exitcode == 0
95    assert ret.json == "baz"
96
97    ret = mm_master_2_salt_cli.run("test.conf_test", minion_tgt=salt_mm_minion_2.id)
98    assert ret.exitcode == 0
99    assert ret.json == "baz"
100
101
102def test_cross_test(
103    mm_master_1_salt_cli, salt_mm_minion_1, mm_master_2_salt_cli, salt_mm_minion_2
104):
105    """
106    test.cross_text
107    """
108    ret = mm_master_1_salt_cli.run(
109        "test.cross_test", "test.ping", minion_tgt=salt_mm_minion_1.id
110    )
111    assert ret.exitcode == 0
112    assert ret.json is True
113
114    ret = mm_master_2_salt_cli.run(
115        "test.cross_test", "test.ping", minion_tgt=salt_mm_minion_1.id
116    )
117    assert ret.exitcode == 0
118    assert ret.json is True
119
120    ret = mm_master_1_salt_cli.run(
121        "test.cross_test", "test.ping", minion_tgt=salt_mm_minion_2.id
122    )
123    assert ret.exitcode == 0
124    assert ret.json is True
125
126    ret = mm_master_2_salt_cli.run(
127        "test.cross_test", "test.ping", minion_tgt=salt_mm_minion_2.id
128    )
129    assert ret.exitcode == 0
130    assert ret.json is True
131
132
133def test_outputter(
134    mm_master_1_salt_cli, salt_mm_minion_1, mm_master_2_salt_cli, salt_mm_minion_2
135):
136    """
137    test.outputter
138    """
139    ret = mm_master_1_salt_cli.run(
140        "test.outputter", "text", minion_tgt=salt_mm_minion_1.id
141    )
142    assert ret.exitcode == 0
143    assert ret.json == "text"
144
145    ret = mm_master_2_salt_cli.run(
146        "test.outputter", "text", minion_tgt=salt_mm_minion_1.id
147    )
148    assert ret.exitcode == 0
149    assert ret.json == "text"
150
151    ret = mm_master_1_salt_cli.run(
152        "test.outputter", "text", minion_tgt=salt_mm_minion_2.id
153    )
154    assert ret.exitcode == 0
155    assert ret.json == "text"
156
157    ret = mm_master_2_salt_cli.run(
158        "test.outputter", "text", minion_tgt=salt_mm_minion_2.id
159    )
160    assert ret.exitcode == 0
161    assert ret.json == "text"
162
163
164def test_fib(
165    mm_master_1_salt_cli, salt_mm_minion_1, mm_master_2_salt_cli, salt_mm_minion_2
166):
167    """
168    test.fib
169    """
170    ret = mm_master_1_salt_cli.run("test.fib", "20", minion_tgt=salt_mm_minion_1.id)
171    assert ret.exitcode == 0
172    assert ret.json[0] == 6765
173
174    ret = mm_master_2_salt_cli.run("test.fib", "20", minion_tgt=salt_mm_minion_1.id)
175    assert ret.exitcode == 0
176    assert ret.json[0] == 6765
177
178    ret = mm_master_1_salt_cli.run("test.fib", "20", minion_tgt=salt_mm_minion_2.id)
179    assert ret.exitcode == 0
180    assert ret.json[0] == 6765
181
182    ret = mm_master_2_salt_cli.run("test.fib", "20", minion_tgt=salt_mm_minion_2.id)
183    assert ret.exitcode == 0
184    assert ret.json[0] == 6765
185
186
187def test_collatz(
188    mm_master_1_salt_cli, salt_mm_minion_1, mm_master_2_salt_cli, salt_mm_minion_2
189):
190    """
191    test.fib
192    """
193    ret = mm_master_1_salt_cli.run("test.collatz", "40", minion_tgt=salt_mm_minion_1.id)
194    assert ret.exitcode == 0
195    assert ret.json[0][-1] == 2
196
197    ret = mm_master_2_salt_cli.run("test.collatz", "40", minion_tgt=salt_mm_minion_1.id)
198    assert ret.exitcode == 0
199    assert ret.json[0][-1] == 2
200
201    ret = mm_master_1_salt_cli.run("test.collatz", "40", minion_tgt=salt_mm_minion_2.id)
202    assert ret.exitcode == 0
203    assert ret.json[0][-1] == 2
204
205    ret = mm_master_2_salt_cli.run("test.collatz", "40", minion_tgt=salt_mm_minion_2.id)
206    assert ret.exitcode == 0
207    assert ret.json[0][-1] == 2
208
209
210def test_get_opts(
211    mm_master_1_salt_cli, salt_mm_minion_1, mm_master_2_salt_cli, salt_mm_minion_2
212):
213    """
214    test.conf_text
215    """
216    ret = mm_master_1_salt_cli.run("test.get_opts", minion_tgt=salt_mm_minion_1.id)
217    assert ret.exitcode == 0
218    assert ret.json["cachedir"] == salt_mm_minion_1.config["cachedir"]
219
220    ret = mm_master_2_salt_cli.run("test.get_opts", minion_tgt=salt_mm_minion_1.id)
221    assert ret.exitcode == 0
222    assert ret.json["cachedir"] == salt_mm_minion_1.config["cachedir"]
223
224    ret = mm_master_1_salt_cli.run("test.get_opts", minion_tgt=salt_mm_minion_2.id)
225    assert ret.exitcode == 0
226    assert ret.json["cachedir"] == salt_mm_minion_2.config["cachedir"]
227
228    ret = mm_master_2_salt_cli.run("test.get_opts", minion_tgt=salt_mm_minion_2.id)
229    assert ret.exitcode == 0
230    assert ret.json["cachedir"] == salt_mm_minion_2.config["cachedir"]
231