Skip to content

Commit 6ce4efa

Browse files
- Automated testing uses docker compose where available.
1 parent d309e31 commit 6ce4efa

File tree

3 files changed

+332
-4
lines changed

3 files changed

+332
-4
lines changed

docker-compose-testing.yml

Lines changed: 317 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,12 @@ services:
1818
openssl req -x509 -keyout /opt/stackql/srv/credentials/pg_server_key.pem -out /opt/stackql/srv/credentials/pg_server_cert.pem -config /opt/test/stackql/test/server/mtls/openssl.cnf -days 365 \
1919
&& openssl req -x509 -keyout /opt/stackql/srv/credentials/pg_client_key.pem -out /opt/stackql/srv/credentials/pg_client_cert.pem -config /opt/test/stackql/test/server/mtls/openssl.cnf -days 365 \
2020
&& openssl req -x509 -keyout /opt/stackql/srv/credentials/pg_rubbish_key.pem -out /opt/stackql/srv/credentials/pg_rubbish_cert.pem -config /opt/test/stackql/test/server/mtls/openssl.cnf -days 365
21-
google_mockserver:
21+
github_mockserver:
2222
networks:
2323
testing-network:
2424
aliases:
25-
- googleapis.com
25+
- github.com
2626
image: stackql/testlib
27-
hostname: google_mock_server
2827
build:
2928
context: .
3029
dockerfile: testLib.Dockerfile
@@ -48,6 +47,321 @@ services:
4847
--host 0.0.0.0 \
4948
--port \
5049
1093
50+
google_mockserver:
51+
networks:
52+
testing-network:
53+
aliases:
54+
- googleapis.com
55+
image: stackql/testlib
56+
build:
57+
context: .
58+
dockerfile: testLib.Dockerfile
59+
# cache_from:
60+
# - stackql/testlib
61+
volumes:
62+
- ./test/server/mtls/credentials:/opt/testlib/test/server/mtls/credentials:ro
63+
ports:
64+
- "1080:1080/tcp"
65+
depends_on:
66+
- credentialsgen
67+
command:
68+
- bash
69+
- -c
70+
- |
71+
flask \
72+
--app=/opt/testlib/test/python/stackql_test_tooling/flask/gcp/app \
73+
run \
74+
--cert=/opt/testlib/test/server/mtls/credentials/pg_server_cert.pem \
75+
--key=/opt/testlib/test/server/mtls/credentials/pg_server_key.pem \
76+
--host 0.0.0.0 \
77+
--port \
78+
1080
79+
azure_mockserver:
80+
networks:
81+
testing-network:
82+
aliases:
83+
- azure.com
84+
image: stackql/testlib
85+
build:
86+
context: .
87+
dockerfile: testLib.Dockerfile
88+
# cache_from:
89+
# - stackql/testlib
90+
volumes:
91+
- ./test/server/mtls/credentials:/opt/testlib/test/server/mtls/credentials:ro
92+
ports:
93+
- "1095:1095/tcp"
94+
depends_on:
95+
- credentialsgen
96+
command:
97+
- bash
98+
- -c
99+
- |
100+
flask \
101+
--app=/opt/testlib/test/python/stackql_test_tooling/flask/azure/app \
102+
run \
103+
--cert=/opt/testlib/test/server/mtls/credentials/pg_server_cert.pem \
104+
--key=/opt/testlib/test/server/mtls/credentials/pg_server_key.pem \
105+
--host 0.0.0.0 \
106+
--port \
107+
1095
108+
okta_mockserver:
109+
networks:
110+
testing-network:
111+
aliases:
112+
- okta.com
113+
image: stackql/testlib
114+
build:
115+
context: .
116+
dockerfile: testLib.Dockerfile
117+
# cache_from:
118+
# - stackql/testlib
119+
volumes:
120+
- ./test/server/mtls/credentials:/opt/testlib/test/server/mtls/credentials:ro
121+
ports:
122+
- "1090:1090/tcp"
123+
depends_on:
124+
- credentialsgen
125+
command:
126+
- bash
127+
- -c
128+
- |
129+
flask \
130+
--app=/opt/testlib/test/python/stackql_test_tooling/flask/okta/app \
131+
run \
132+
--cert=/opt/testlib/test/server/mtls/credentials/pg_server_cert.pem \
133+
--key=/opt/testlib/test/server/mtls/credentials/pg_server_key.pem \
134+
--host 0.0.0.0 \
135+
--port \
136+
1090
137+
aws_mockserver:
138+
networks:
139+
testing-network:
140+
aliases:
141+
- aws.com
142+
image: stackql/testlib
143+
build:
144+
context: .
145+
dockerfile: testLib.Dockerfile
146+
# cache_from:
147+
# - stackql/testlib
148+
volumes:
149+
- ./test/server/mtls/credentials:/opt/testlib/test/server/mtls/credentials:ro
150+
ports:
151+
- "1091:1091/tcp"
152+
depends_on:
153+
- credentialsgen
154+
command:
155+
- bash
156+
- -c
157+
- |
158+
flask \
159+
--app=/opt/testlib/test/python/stackql_test_tooling/flask/aws/app \
160+
run \
161+
--cert=/opt/testlib/test/server/mtls/credentials/pg_server_cert.pem \
162+
--key=/opt/testlib/test/server/mtls/credentials/pg_server_key.pem \
163+
--host 0.0.0.0 \
164+
--port \
165+
1091
166+
sumologic_mockserver:
167+
networks:
168+
testing-network:
169+
aliases:
170+
- sumologic.com
171+
image: stackql/testlib
172+
build:
173+
context: .
174+
dockerfile: testLib.Dockerfile
175+
# cache_from:
176+
# - stackql/testlib
177+
volumes:
178+
- ./test/server/mtls/credentials:/opt/testlib/test/server/mtls/credentials:ro
179+
ports:
180+
- "1096:1096/tcp"
181+
depends_on:
182+
- credentialsgen
183+
command:
184+
- bash
185+
- -c
186+
- |
187+
flask \
188+
--app=/opt/testlib/test/python/stackql_test_tooling/flask/sumologic/app \
189+
run \
190+
--cert=/opt/testlib/test/server/mtls/credentials/pg_server_cert.pem \
191+
--key=/opt/testlib/test/server/mtls/credentials/pg_server_key.pem \
192+
--host 0.0.0.0 \
193+
--port \
194+
1096
195+
digitalocean_mockserver:
196+
networks:
197+
testing-network:
198+
aliases:
199+
- digitalocean.com
200+
image: stackql/testlib
201+
build:
202+
context: .
203+
dockerfile: testLib.Dockerfile
204+
# cache_from:
205+
# - stackql/testlib
206+
volumes:
207+
- ./test/server/mtls/credentials:/opt/testlib/test/server/mtls/credentials:ro
208+
ports:
209+
- "1097:1097/tcp"
210+
depends_on:
211+
- credentialsgen
212+
command:
213+
- bash
214+
- -c
215+
- |
216+
flask \
217+
--app=/opt/testlib/test/python/stackql_test_tooling/flask/digitalocean/app \
218+
run \
219+
--cert=/opt/testlib/test/server/mtls/credentials/pg_server_cert.pem \
220+
--key=/opt/testlib/test/server/mtls/credentials/pg_server_key.pem \
221+
--host 0.0.0.0 \
222+
--port \
223+
1097
224+
googleadmin_mockserver:
225+
networks:
226+
testing-network:
227+
aliases:
228+
- googleadmin.com
229+
image: stackql/testlib
230+
build:
231+
context: .
232+
dockerfile: testLib.Dockerfile
233+
# cache_from:
234+
# - stackql/testlib
235+
volumes:
236+
- ./test/server/mtls/credentials:/opt/testlib/test/server/mtls/credentials:ro
237+
ports:
238+
- "1098:1098/tcp"
239+
depends_on:
240+
- credentialsgen
241+
command:
242+
- bash
243+
- -c
244+
- |
245+
flask \
246+
--app=/opt/testlib/test/python/stackql_test_tooling/flask/googleadmin/app \
247+
run \
248+
--cert=/opt/testlib/test/server/mtls/credentials/pg_server_cert.pem \
249+
--key=/opt/testlib/test/server/mtls/credentials/pg_server_key.pem \
250+
--host 0.0.0.0 \
251+
--port \
252+
1098
253+
static_auth_mockserver:
254+
networks:
255+
testing-network:
256+
aliases:
257+
- staticauth.com
258+
image: stackql/testlib
259+
build:
260+
context: .
261+
dockerfile: testLib.Dockerfile
262+
# cache_from:
263+
# - stackql/testlib
264+
volumes:
265+
- ./test/server/mtls/credentials:/opt/testlib/test/server/mtls/credentials:ro
266+
ports:
267+
- "1170:1170/tcp"
268+
depends_on:
269+
- credentialsgen
270+
command:
271+
- bash
272+
- -c
273+
- |
274+
flask \
275+
--app=/opt/testlib/test/python/stackql_test_tooling/flask/static_auth/app \
276+
run \
277+
--cert=/opt/testlib/test/server/mtls/credentials/pg_server_cert.pem \
278+
--key=/opt/testlib/test/server/mtls/credentials/pg_server_key.pem \
279+
--host 0.0.0.0 \
280+
--port \
281+
1170
282+
token_srv_mockserver:
283+
networks:
284+
testing-network:
285+
aliases:
286+
- staticauth.com
287+
image: stackql/testlib
288+
build:
289+
context: .
290+
dockerfile: testLib.Dockerfile
291+
# cache_from:
292+
# - stackql/testlib
293+
volumes:
294+
- ./test/server/mtls/credentials:/opt/testlib/test/server/mtls/credentials:ro
295+
ports:
296+
- "2091:2091/tcp"
297+
depends_on:
298+
- credentialsgen
299+
command:
300+
- bash
301+
- -c
302+
- |
303+
flask \
304+
--app=/opt/testlib/test/python/stackql_test_tooling/flask/oauth2/token_srv \
305+
run \
306+
--cert=/opt/testlib/test/server/mtls/credentials/pg_server_cert.pem \
307+
--key=/opt/testlib/test/server/mtls/credentials/pg_server_key.pem \
308+
--host 0.0.0.0 \
309+
--port \
310+
2091
311+
k8s_mockserver:
312+
networks:
313+
testing-network:
314+
aliases:
315+
- k8s.com
316+
image: stackql/testlib
317+
build:
318+
context: .
319+
dockerfile: testLib.Dockerfile
320+
# cache_from:
321+
# - stackql/testlib
322+
volumes:
323+
- ./test/server/mtls/credentials:/opt/testlib/test/server/mtls/credentials:ro
324+
ports:
325+
- "1092:1092/tcp"
326+
depends_on:
327+
- credentialsgen
328+
command:
329+
- bash
330+
- -c
331+
- |
332+
flask \
333+
--app=/opt/testlib/test/python/stackql_test_tooling/flask/k8s/app \
334+
run \
335+
--cert=/opt/testlib/test/server/mtls/credentials/pg_server_cert.pem \
336+
--key=/opt/testlib/test/server/mtls/credentials/pg_server_key.pem \
337+
--host 0.0.0.0 \
338+
--port \
339+
1092
340+
registry_mockserver:
341+
networks:
342+
testing-network:
343+
aliases:
344+
- registry.com
345+
image: stackql/testlib
346+
build:
347+
context: .
348+
dockerfile: testLib.Dockerfile
349+
# cache_from:
350+
# - stackql/testlib
351+
volumes:
352+
- ./test/server/mtls/credentials:/opt/testlib/test/server/mtls/credentials:ro
353+
ports:
354+
- "1094:1094/tcp"
355+
command:
356+
- bash
357+
- -c
358+
- |
359+
flask \
360+
--app=/opt/testlib/test/python/stackql_test_tooling/flask/registry/app \
361+
run \
362+
--host 0.0.0.0 \
363+
--port \
364+
1094
51365
52366
networks:
53367
testing-network:

test/python/stackql_test_tooling/flask/README.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ flask --app=${REPOSITORY_ROOT}/test/python/stackql_test_tooling/flask/github/app
5050
Sumologic mocks:
5151

5252
```bash
53-
flask --app=${REPOSITORY_ROOT}/test/python/stackql_test_tooling/flask/okta/app run --cert=${REPOSITORY_ROOT}/test/server/mtls/credentials/pg_server_cert.pem --key=${REPOSITORY_ROOT}/test/server/mtls/credentials/pg_server_key.pem --host 0.0.0.0 --port 1096
53+
flask --app=${REPOSITORY_ROOT}/test/python/stackql_test_tooling/flask/sumologic/app run --cert=${REPOSITORY_ROOT}/test/server/mtls/credentials/pg_server_cert.pem --key=${REPOSITORY_ROOT}/test/server/mtls/credentials/pg_server_key.pem --host 0.0.0.0 --port 1096
5454
```
5555

5656
Digitalocean mocks:
@@ -65,6 +65,12 @@ flask --app=${REPOSITORY_ROOT}/test/python/stackql_test_tooling/flask/digitaloce
6565
flask --app=${REPOSITORY_ROOT}/test/python/stackql_test_tooling/flask/googleadmin/app run --cert=${REPOSITORY_ROOT}/test/server/mtls/credentials/pg_server_cert.pem --key=${REPOSITORY_ROOT}/test/server/mtls/credentials/pg_server_key.pem --host 0.0.0.0 --port 1098
6666
```
6767

68+
`k8s` mocks:
69+
70+
```bash
71+
flask --app=${REPOSITORY_ROOT}/test/python/stackql_test_tooling/flask/k8s/app run --cert=${REPOSITORY_ROOT}/test/server/mtls/credentials/pg_server_cert.pem --key=${REPOSITORY_ROOT}/test/server/mtls/credentials/pg_server_key.pem --host 0.0.0.0 --port 1092
72+
```
73+
6874
stackql auth testing mocks:
6975

7076
```bash

test/python/stackql_test_tooling/web_service_keywords.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -345,6 +345,14 @@ def create_digitalocean_web_service(
345345

346346
@keyword
347347
def start_all_webservers(self, port_dict: Optional[dict] = None) -> None:
348+
# if system has docker installed, use that to run mock servers
349+
if os.system('which docker >/dev/null 2>&1') == 0:
350+
rv = os.system('docker compose -f docker-compose-testing.yml up -d --build --force-recreate')
351+
if rv != 0:
352+
raise RuntimeError('failed to start mock servers via docker compose')
353+
return
354+
355+
348356
_port_dict: dict = port_dict if port_dict else {}
349357

350358
self.create_digitalocean_web_service(_port_dict.get('digitalocean', self._DEFAULT_MOCKSERVER_PORT_DIGITALOCEAN))

0 commit comments

Comments
 (0)