From 222ae1ef42a8f57e49b1150cd175a43a84d9a08a Mon Sep 17 00:00:00 2001 From: Damian Fajfer Date: Thu, 4 Apr 2024 23:55:32 +0200 Subject: [PATCH] Implementing web server tests for built docker image --- Dockerfile => gcups/Dockerfile | 0 db.txt => gcups/db.txt | 0 init.sh => gcups/init.sh | 0 populate-db.py => gcups/populate-db.py | 0 ...run-webserver.cpython-310-pytest-7.3.1.pyc | Bin 0 -> 1568 bytes tests/run-webserver.py | 33 ++++++++++++++++++ 6 files changed, 33 insertions(+) rename Dockerfile => gcups/Dockerfile (100%) rename db.txt => gcups/db.txt (100%) rename init.sh => gcups/init.sh (100%) rename populate-db.py => gcups/populate-db.py (100%) create mode 100644 tests/__pycache__/run-webserver.cpython-310-pytest-7.3.1.pyc create mode 100644 tests/run-webserver.py diff --git a/Dockerfile b/gcups/Dockerfile similarity index 100% rename from Dockerfile rename to gcups/Dockerfile diff --git a/db.txt b/gcups/db.txt similarity index 100% rename from db.txt rename to gcups/db.txt diff --git a/init.sh b/gcups/init.sh similarity index 100% rename from init.sh rename to gcups/init.sh diff --git a/populate-db.py b/gcups/populate-db.py similarity index 100% rename from populate-db.py rename to gcups/populate-db.py diff --git a/tests/__pycache__/run-webserver.cpython-310-pytest-7.3.1.pyc b/tests/__pycache__/run-webserver.cpython-310-pytest-7.3.1.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b77b7eb581529db1602771eebe81195da42fc9d1 GIT binary patch literal 1568 zcmYjR-EJF26rS0CuboYrmWoOhmW?O@#i| z!t$^{cnnhvfDlA*hPt>~jodU4M!D6sacyzBPGxbsZnb({uUZ@32CPQr=gn>t_L{Us zEb0zddKR&X^Rv|rNQ1b<18$YzBNX~q5DguMSh=(~O*t!6GmpBQ}jc7ipPP(GlSqco*ENlX3in=iSZKY8yq1ENj$WM_Qm@c zWQ?RUbBQs>7=4dkTW3gmvj#D>Okj6t9gg1`NLfDWbTXF2*?ab?Lgr^*%?rKNJp3kjZ-)r0t<$@POMoazvwgyZxN#MeRh zW~(z`IqisHoOSxC?DXPckMd4G8I_`=U5E}J6(23K-6${A`dOUHDzAmw17AWrY+(cY z*n_!-18n>onEV!~6PSykH@h&a>ih+aL^C``Q>f9<7@E=|_zqx%m?W~&$nK&s1-jyq04JPg!U*ewt?G~DvFl~sBXR8%<&}>bw z6&`{^wf=1X#kWV%({J{_I(Qy^`Sp`$2V+k|q9c z1x-?y8v>eeM3XH|w#Pv%V2`X^?Z638?u0iWAC{a@uDl*+c?1ood;qSD(}Hr?1X$n( zWLFhcHJ9Qm|8b4EDCX)$1g(%k^pYnmFJn$s3(V2+D9vOF=yj@Q5$f$o4A>|m)z+w= zvEw+4iWq?0h(ruX1P>~BQl+{;`b~|!JeCnXFSEFabweoYB+W8qCm9no^puliDJ`UG zEVAc!A#c^xY1CK$cv<*lS$I$jb(Dw8!fw?yHMyz%1-eI~MIUIai`zgv>{Oot{owrL zxxZk~XkoqsrqJN}PkI=xDewOW;rBtK?nLzyZqy0FwKh0CYiU86Ie& zyNSQ2NehTFn5e3x%oLu$dwvaqs%TXTOSjNX%d4w+pXH2 requests.Response: + for i in range(max_retries): + try: + response = requests.get("http://localhost:8080") + response.raise_for_status() + return response + except requests.exceptions.ConnectionError: + time.sleep(1) + else: + pytest.fail("Failed to connect to the webserver") + + +def test_webserver() -> None: + client = docker.from_env() + container = client.containers.run( + environ["GCUPS_DOCKER_IMAGE"], + ports={"8080/tcp": 8080}, + detach=True, + remove=True, + ) + + server_response = wait_for_webserver(30) + assert server_response.status_code == 200 + + container.kill() + client.close()