Skip to content

Commit

Permalink
tests/integration: Automate manual 'nethost' test
Browse files Browse the repository at this point in the history
Signed-off-by: Monika Kairaityte <monika@kibit.lt>
  • Loading branch information
mokibit committed Sep 24, 2024
1 parent 8d0dd21 commit dc6042d
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 2 deletions.
3 changes: 1 addition & 2 deletions tests/integration/nethost/docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,5 @@ version: '3'
services:
web:
image: busybox
command: httpd -f -p 8123 -h /etc/
command: httpd -f -p 8123 -h /tmp/ # Listen for incoming HTTP requests (webserver).
network_mode: host

59 changes: 59 additions & 0 deletions tests/integration/test_podman_compose_nethost.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# SPDX-License-Identifier: GPL-2.0

import os
import json
import requests
import unittest

from tests.integration.test_podman_compose import podman_compose_path
from tests.integration.test_podman_compose import test_path
from tests.integration.test_utils import RunSubprocessMixin


def compose_yaml_path():
return os.path.join(os.path.join(test_path(), "nethost"), "docker-compose.yaml")


class TestComposeNethost(unittest.TestCase, RunSubprocessMixin):
# check if container listens for http requests and sends response back
# as network_mode: host allows to connect to container easily
def test_nethost(self):
try:
self.run_subprocess_assert_returncode(
[podman_compose_path(), "-f", compose_yaml_path(), "up", "-d"],
)

container_id, _ = self.run_subprocess_assert_returncode(
[
podman_compose_path(),
"-f",
compose_yaml_path(),
"ps",
"--format",
'{{.ID}}',
],
)
container_id = container_id.decode('utf-8').split('\n')[0]
output, _ = self.run_subprocess_assert_returncode(
[
"podman",
"exec",
"-it",
container_id,
"sh",
"-c",
"echo test_123 >> /tmp/test.txt",
],
)
response = requests.get('http://localhost:8123/test.txt')
self.assertEqual(response.ok, True)
self.assertEqual(response.text, "test_123\n")
finally:
self.run_subprocess_assert_returncode([
podman_compose_path(),
"-f",
compose_yaml_path(),
"down",
"-t",
"0",
])

0 comments on commit dc6042d

Please sign in to comment.