1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142
|
# SPDX-License-Identifier: GPL-2.0
import os
import unittest
from tests.integration.test_utils import RunSubprocessMixin
from tests.integration.test_utils import podman_compose_path
from tests.integration.test_utils import test_path
def compose_yaml_path(test_ref_folder: str) -> str:
return os.path.join(test_path(), "service_scale", test_ref_folder, "docker-compose.yml")
class TestComposeScale(unittest.TestCase, RunSubprocessMixin):
# scale-up using `scale` prarmeter in docker-compose.yml
def test_scaleup_scale_parameter(self) -> None:
try:
output, _, return_code = self.run_subprocess([
podman_compose_path(),
"-f",
compose_yaml_path("scaleup_scale_parameter"),
"up",
"-d",
])
self.assertEqual(return_code, 0)
output, _, return_code = self.run_subprocess([
podman_compose_path(),
"-f",
compose_yaml_path("scaleup_scale_parameter"),
"ps",
"-q",
])
self.assertEqual(len(output.splitlines()), 2)
finally:
self.run_subprocess_assert_returncode([
"podman",
"rm",
"--force",
"-t",
"0",
"podman-compose_service1_1",
"podman-compose_service1_2",
])
self.run_subprocess_assert_returncode([
podman_compose_path(),
"-f",
compose_yaml_path("scaleup_scale_parameter"),
"down",
"-t",
"0",
])
# scale-up using `deploy => replicas` prarmeter in docker-compose.yml
def test_scaleup_deploy_replicas_parameter(self) -> None:
try:
output, _, return_code = self.run_subprocess([
podman_compose_path(),
"-f",
compose_yaml_path('scaleup_deploy_replicas_parameter'),
"up",
"-d",
])
self.assertEqual(return_code, 0)
output, _, return_code = self.run_subprocess([
podman_compose_path(),
"-f",
compose_yaml_path("scaleup_deploy_replicas_parameter"),
"ps",
"-q",
])
self.assertEqual(len(output.splitlines()), 3)
finally:
self.run_subprocess_assert_returncode([
"podman",
"rm",
"--force",
"-t",
"0",
"podman-compose_service1_1",
"podman-compose_service1_2",
"podman-compose_service1_3",
])
self.run_subprocess_assert_returncode([
podman_compose_path(),
"-f",
compose_yaml_path('scaleup_deploy_replicas_parameter'),
"down",
"-t",
"0",
])
# scale-up using `--scale <SERVICE>=<number of replicas>` argument in CLI
def test_scaleup_cli(self) -> None:
try:
output, _, return_code = self.run_subprocess([
podman_compose_path(),
"-f",
compose_yaml_path('scaleup_cli'),
"up",
"-d",
])
self.assertEqual(return_code, 0)
output, _, return_code = self.run_subprocess([
podman_compose_path(),
"-f",
compose_yaml_path('scaleup_cli'),
"up",
"-d",
"--scale",
"service1=4",
])
self.assertEqual(return_code, 0)
output, _, return_code = self.run_subprocess([
podman_compose_path(),
"-f",
compose_yaml_path('scaleup_cli'),
"ps",
"-q",
])
self.assertEqual(len(output.splitlines()), 4)
finally:
self.run_subprocess_assert_returncode([
"podman",
"rm",
"--force",
"-t",
"0",
"podman-compose_service1_1",
"podman-compose_service1_2",
"podman-compose_service1_3",
"podman-compose_service1_4",
])
self.run_subprocess_assert_returncode([
podman_compose_path(),
"-f",
compose_yaml_path('scaleup_cli'),
"down",
"-t",
"0",
])
|