forked from OCP-on-NERC/python-batchtools
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_bj.py
More file actions
36 lines (28 loc) · 1.11 KB
/
test_bj.py
File metadata and controls
36 lines (28 loc) · 1.11 KB
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
from unittest import mock
from contextlib import contextmanager
import argparse
from batchtools.bj import ListJobsCommand
from tests.helpers import DictToObject
@contextmanager
def patch_jobs_selector(jobs: list[DictToObject]):
with mock.patch("openshift_client.selector") as mock_selector:
mock_result = mock.Mock(name="result")
mock_result.objects.return_value = jobs
mock_selector.return_value = mock_result
yield mock_selector
def test_no_jobs(args: argparse.Namespace, capsys):
with patch_jobs_selector([]):
ListJobsCommand.run(args)
captured = capsys.readouterr()
assert "No jobs found" in captured.out
def test_list_jobs(args: argparse.Namespace, capsys):
jobs = [
DictToObject({"model": {"metadata": {"name": "job1"}}}),
DictToObject({"model": {"metadata": {"name": "job2"}}}),
]
with patch_jobs_selector(jobs):
ListJobsCommand.run(args)
captured = capsys.readouterr()
assert f"Found {len(jobs)} jobs" in captured.out
for job in jobs:
assert job.model.metadata.name in captured.out