Skip to content

Commit

Permalink
tests/integration: Automate manual 'ipam_default' 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 13, 2024
1 parent 8d0dd21 commit bf5ab07
Show file tree
Hide file tree
Showing 2 changed files with 72 additions and 1 deletion.
2 changes: 1 addition & 1 deletion tests/integration/ipam_default/docker-compose.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
version: '3'

# --ipam-driver must not be pass when driver is "default"
# --ipam-driver must not be passed when driver is "default"
networks:
ipam_test_default:
ipam:
Expand Down
71 changes: 71 additions & 0 deletions tests/integration/test_podman_compose_ipam_default.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# SPDX-License-Identifier: GPL-2.0

import json
import os
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(), "ipam_default"), "docker-compose.yaml")


class TestComposeIpamDefault(unittest.TestCase, RunSubprocessMixin):
def test_ipam_default(self):
try:
self.run_subprocess_assert_returncode(
[podman_compose_path(), "-f", compose_yaml_path(), "up", "-d"],
)

output, _ = self.run_subprocess_assert_returncode([
podman_compose_path(),
"-f",
compose_yaml_path(),
"logs",
])
# container was created and this is its command
# BUG: figure out why echo is called twice
self.assertIn("ipamtest", str(output))

output, _ = self.run_subprocess_assert_returncode(
[
podman_compose_path(),
"-f",
compose_yaml_path(),
"ps",
],
)
self.assertIn("ipam_default_testipam_1", str(output))

output, _ = self.run_subprocess_assert_returncode([
"podman",
"ps",
"-a",
"--filter",
"network=ipam_default_ipam_test_default", # name of a network
])
# filters the name of our container which is connected to a network
# named ipam_default_ipam_test_default
self.assertIn("ipam_default_testipam_1", str(output))

output, _ = self.run_subprocess_assert_returncode([
"podman",
"network",
"inspect",
"ipam_default_ipam_test_default",
])
network_info = json.loads(output.decode('utf-8'))[0]
# bridge is the default network driver
self.assertEqual(network_info['driver'], "bridge")
self.assertEqual(network_info['ipam_options'], {'driver': 'host-local'})

finally:
self.run_subprocess_assert_returncode([
podman_compose_path(),
"-f",
compose_yaml_path(),
"down",
])

0 comments on commit bf5ab07

Please sign in to comment.