1
0
mirror of https://github.com/quay/quay.git synced 2026-01-27 18:42:52 +03:00
Files
quay/util/test/test_workers.py
Kenny Lee Sin Cheong 5f63b3a7bb chore: drop deprecated tables and remove unused code (PROJQUAY-522) (#2089)
* chore: drop deprecated tables and remove unused code

* isort imports

* migration: check for table existence before drop
2023-08-25 12:17:24 -04:00

116 lines
2.8 KiB
Python

import pytest
from mock import patch
from util.workers import get_worker_count
@pytest.mark.parametrize(
"kind_name,env_vars,cpu_affinity,multiplier,minimum,maximum,expected",
[
# No override and CPU affinity * multiplier is between min and max => cpu affinity * multiplier.
("registry", {}, [0, 1], 10, 8, 64, 20),
# No override and CPU affinity * multiplier is below min => min.
("registry", {}, [0], 1, 8, 64, 8),
# No override and CPU affinity * multiplier is above max => max.
("registry", {}, [0, 1, 2, 3], 20, 8, 64, 64),
# Override based on specific env var.
(
"registry",
{
"WORKER_COUNT_REGISTRY": 12,
},
[0, 1],
10,
8,
64,
12,
),
# Override based on specific env var (ignores maximum).
(
"registry",
{
"WORKER_COUNT_REGISTRY": 120,
},
[0, 1],
10,
8,
64,
120,
),
# Override based on specific env var (respects minimum).
(
"registry",
{
"WORKER_COUNT_REGISTRY": 1,
},
[0, 1],
10,
8,
64,
8,
),
# Override based on generic env var.
(
"registry",
{
"WORKER_COUNT": 12,
},
[0, 1],
10,
8,
64,
12,
),
# Override based on generic env var (ignores maximum).
(
"registry",
{
"WORKER_COUNT": 120,
},
[0, 1],
10,
8,
64,
120,
),
# Override based on generic env var (respects minimum).
(
"registry",
{
"WORKER_COUNT": 1,
},
[0, 1],
10,
8,
64,
8,
),
# Override always uses specific first.
(
"registry",
{
"WORKER_COUNT_REGISTRY": 120,
"WORKER_COUNT": 12,
},
[0, 1],
10,
8,
64,
120,
),
],
)
def test_get_worker_count(
kind_name, env_vars, cpu_affinity, multiplier, minimum, maximum, expected
):
class FakeProcess(object):
def __init__(self, pid):
pass
def cpu_affinity(self):
return cpu_affinity
with patch("os.environ.get", env_vars.get):
with patch("psutil.Process", FakeProcess):
assert get_worker_count(kind_name, multiplier, minimum, maximum) == expected