Skip to content

Commit d16e50f

Browse files
myakovedbasunag
andauthored
Polarion script: add tests (#27)
* polarion script: add tests * polarion script: add tests * Fix polarion config test --------- Co-authored-by: Debarati Basu-Nag <[email protected]>
1 parent 832861c commit d16e50f

File tree

5 files changed

+47
-9
lines changed

5 files changed

+47
-9
lines changed

apps/polarion/polarion_utils.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,13 @@ def git_diff_lines():
2323
return diff
2424

2525

26-
def validate_polarion_requirements(polarion_test_ids, polarion_project_id):
26+
def validate_polarion_requirements(
27+
polarion_test_ids,
28+
polarion_project_id,
29+
):
30+
from pylero.work_item import TestCase, Requirement
31+
2732
tests_with_missing_requirements = []
28-
from pylero.work_item import Requirement, TestCase
2933

3034
for _id in polarion_test_ids:
3135
has_req = False

apps/polarion/polarion_verify_tc_requirements.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,13 @@
33
from simple_logger.logger import get_logger
44
import os
55
import click
6-
76
from apps.polarion.polarion_utils import (
87
git_diff_lines,
98
validate_polarion_requirements,
109
)
1110
from apps.utils import get_util_config
1211

13-
LOGGER = get_logger(name=__name__)
12+
LOGGER = get_logger(name="polarion-verify-tc-requirements")
1413

1514

1615
@click.command()
@@ -25,11 +24,14 @@
2524
def has_verify(config_file_path, project_id, verbosity):
2625
if verbosity:
2726
LOGGER.setLevel(logging.DEBUG)
27+
2828
polarion_project_id = project_id or get_util_config(
29-
util_name="pyutils-polarion-verify-tc-requirements", config_file_path=config_file_path
29+
util_name="pyutils-polarion-verify-tc-requirements",
30+
config_file_path=config_file_path,
3031
).get("project_id")
32+
3133
if not polarion_project_id:
32-
click.echo("Polarion project id must be passed via config file or command line")
34+
LOGGER.error("Polarion project id must be passed via config file or command line")
3335
raise click.Abort()
3436

3537
if added_ids := re.findall(
@@ -39,7 +41,8 @@ def has_verify(config_file_path, project_id, verbosity):
3941
):
4042
LOGGER.debug(f"Checking following ids: {added_ids}")
4143
if tests_with_missing_requirements := validate_polarion_requirements(
42-
polarion_test_ids=added_ids, polarion_project_id=polarion_project_id
44+
polarion_test_ids=added_ids,
45+
polarion_project_id=polarion_project_id,
4346
):
4447
click.echo(f"TestCases with missing requirement: {tests_with_missing_requirements}")
4548
raise click.Abort()

poetry.lock

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ pattern = "((?P<epoch>\\d+)!)?(?P<base>\\d+(\\.\\d+)*)"
6262

6363

6464

65+
6566
[tool.poetry.group.test.dependencies]
6667
pytest = "^8.0.0"
6768
pytest-cov = "^4.1.0"
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import shlex
2+
import subprocess
3+
from pyhelper_utils.shell import run_command
4+
5+
BASE_COMMAND = "poetry run python apps/polarion/polarion_verify_tc_requirements.py"
6+
7+
8+
def test_missing_project_id():
9+
rc, _, err = run_command(
10+
command=shlex.split(BASE_COMMAND),
11+
verify_stderr=False,
12+
check=False,
13+
capture_output=False,
14+
stderr=subprocess.PIPE,
15+
)
16+
assert "Polarion project id must be passed via config file or command line" in err
17+
assert not rc
18+
19+
20+
def test_project_id_from_config():
21+
command = f"{BASE_COMMAND} --config-file-path=config.example.yaml"
22+
rc, _, err = run_command(
23+
command=shlex.split(command),
24+
verify_stderr=False,
25+
check=False,
26+
capture_output=False,
27+
stderr=subprocess.PIPE,
28+
)
29+
assert not err
30+
assert rc

0 commit comments

Comments
 (0)