Skip to content

Commit 676b64b

Browse files
authored
Revert "base PR for set polarion as automated (#30)" (#34)
This reverts commit 5245a91.
1 parent 5245a91 commit 676b64b

File tree

7 files changed

+51
-151
lines changed

7 files changed

+51
-151
lines changed

apps/polarion/polarion_set_automated.py

Lines changed: 0 additions & 53 deletions
This file was deleted.

apps/polarion/polarion_utils.py

Lines changed: 20 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,10 @@
1-
import re
2-
3-
import click
41
from simple_logger.logger import get_logger
52
import shlex
63
import subprocess
4+
from pylero.exceptions import PyleroLibException
75

8-
from apps.utils import get_util_config
96

107
LOGGER = get_logger(name=__name__)
11-
AUTOMATED = "automated"
12-
NOT_AUTOMATED = "notautomated"
13-
APPROVED = "approved"
148

159

1610
def git_diff():
@@ -25,74 +19,31 @@ def git_diff_lines():
2519
LOGGER.debug(line)
2620
if line.startswith("+"):
2721
diff.setdefault("added", []).append(line)
28-
if line.startswith("-"):
29-
diff.setdefault("removed", []).append(line)
22+
3023
return diff
3124

3225

3326
def validate_polarion_requirements(
34-
polarion_project_id,
3527
polarion_test_ids,
28+
polarion_project_id,
3629
):
37-
tests_with_missing_requirements = []
38-
if polarion_test_ids:
39-
from pylero.work_item import TestCase, Requirement
40-
from pylero.exceptions import PyleroLibException
41-
42-
for _id in polarion_test_ids:
43-
has_req = False
44-
LOGGER.debug(f"Checking if {_id} verifies any requirement")
45-
tc = TestCase(project_id=polarion_project_id, work_item_id=_id)
46-
for link in tc.linked_work_items:
47-
try:
48-
Requirement(project_id=polarion_project_id, work_item_id=link.work_item_id)
49-
has_req = True
50-
break
51-
except PyleroLibException:
52-
continue
53-
54-
if not has_req:
55-
LOGGER.error(f"{_id}: Is missing requirement")
56-
tests_with_missing_requirements.append(_id)
57-
return tests_with_missing_requirements
30+
from pylero.work_item import TestCase, Requirement
5831

32+
tests_with_missing_requirements = []
5933

60-
def find_polarion_ids(polarion_project_id, string_to_match):
61-
return re.findall(
62-
rf"pytest.mark.polarion.*({polarion_project_id}-[0-9]+)",
63-
"\n".join(git_diff_lines().get(string_to_match, [])),
64-
re.MULTILINE | re.IGNORECASE,
65-
)
66-
67-
68-
def get_polarion_project_id(project_id, config_file_path, util_name):
69-
polarion_project_id = project_id or get_util_config(util_name=util_name, config_file_path=config_file_path).get(
70-
"project_id"
71-
)
72-
if not polarion_project_id:
73-
LOGGER.error("Polarion project id must be passed via config file or command line")
74-
raise click.Abort()
75-
return polarion_project_id
76-
77-
78-
def update_polarion_ids(project_id, is_automated, polarion_ids, is_approved=False):
79-
updated_ids = {}
80-
if polarion_ids:
81-
automation_status = AUTOMATED if is_automated else NOT_AUTOMATED
82-
83-
from pylero.work_item import TestCase
84-
from pylero.exceptions import PyleroLibException
85-
86-
for id in polarion_ids:
34+
for _id in polarion_test_ids:
35+
has_req = False
36+
LOGGER.debug(f"Checking if {_id} verifies any requirement")
37+
tc = TestCase(project_id=polarion_project_id, work_item_id=_id)
38+
for link in tc.linked_work_items:
8739
try:
88-
tc = TestCase(project_id=project_id, work_item_id=id)
89-
tc.caseautomation = automation_status
90-
if is_approved:
91-
tc.status = APPROVED
92-
tc.update()
93-
LOGGER.debug(f"Polarion {id}: marked as: {automation_status}, approved status set: {is_approved}")
94-
updated_ids.setdefault("updated", []).append(id)
95-
except PyleroLibException as polarion_exception:
96-
LOGGER.warning(f"{id}: {polarion_exception}")
97-
updated_ids.setdefault("failed", []).append(id)
98-
return updated_ids
40+
Requirement(project_id=polarion_project_id, work_item_id=link.work_item_id)
41+
has_req = True
42+
break
43+
except PyleroLibException:
44+
continue
45+
46+
if not has_req:
47+
LOGGER.error(f"{_id}: Is missing requirement")
48+
tests_with_missing_requirements.append(_id)
49+
return tests_with_missing_requirements

apps/polarion/polarion_verify_tc_requirements.py

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
1+
import re
12
import logging
23
from simple_logger.logger import get_logger
34
import os
45
import click
5-
from apps.polarion.polarion_utils import validate_polarion_requirements, find_polarion_ids, get_polarion_project_id
6+
from apps.polarion.polarion_utils import (
7+
git_diff_lines,
8+
validate_polarion_requirements,
9+
)
10+
from apps.utils import get_util_config
611

712
LOGGER = get_logger(name="polarion-verify-tc-requirements")
813

@@ -19,16 +24,27 @@
1924
def has_verify(config_file_path, project_id, verbosity):
2025
if verbosity:
2126
LOGGER.setLevel(logging.DEBUG)
22-
polarion_project_id = get_polarion_project_id(
23-
project_id=project_id, config_file_path=config_file_path, util_name="pyutils-polarion-verify-tc-requirements"
24-
)
25-
if added_ids := find_polarion_ids(polarion_project_id=polarion_project_id, string_to_match="added"):
27+
28+
polarion_project_id = project_id or get_util_config(
29+
util_name="pyutils-polarion-verify-tc-requirements",
30+
config_file_path=config_file_path,
31+
).get("project_id")
32+
33+
if not polarion_project_id:
34+
LOGGER.error("Polarion project id must be passed via config file or command line")
35+
raise click.Abort()
36+
37+
if added_ids := re.findall(
38+
rf"pytest.mark.polarion.*({polarion_project_id}-[0-9]+)",
39+
"\n".join(git_diff_lines().get("added", [])),
40+
re.MULTILINE | re.IGNORECASE,
41+
):
2642
LOGGER.debug(f"Checking following ids: {added_ids}")
2743
if tests_with_missing_requirements := validate_polarion_requirements(
2844
polarion_test_ids=added_ids,
2945
polarion_project_id=polarion_project_id,
3046
):
31-
LOGGER.error(f"TestCases with missing requirement: {tests_with_missing_requirements}")
47+
click.echo(f"TestCases with missing requirement: {tests_with_missing_requirements}")
3248
raise click.Abort()
3349

3450

config.example.yaml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,4 @@ pyutils-unusedcode:
44
exclude_function_prefix:
55
- "my_exclude_function_prefix"
66
pyutils-polarion-verify-tc-requirements:
7-
project_id: "ABCDEF"
8-
pyutils-polarion-set-automated:
9-
project_id: "ABCDEF"
7+
project_id: "ABC"

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: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ packages = [{ include = "apps" }]
3838
[tool.poetry.scripts]
3939
pyutils-unusedcode = "apps.unused_code.unused_code:get_unused_functions"
4040
pyutils-polarion-verify-tc-requirements = "apps.polarion.polarion_verify_tc_requirements:has_verify"
41-
pyutils-polarion-set-automated = "apps.polarion.polarion_set_automated:polarion_approve_automate"
41+
4242

4343
[tool.poetry.dependencies]
4444
python = "^3.8"
@@ -58,6 +58,11 @@ enable = true
5858
pattern = "((?P<epoch>\\d+)!)?(?P<base>\\d+(\\.\\d+)*)"
5959

6060

61+
62+
63+
64+
65+
6166
[tool.poetry.group.test.dependencies]
6267
pytest = "^8.0.0"
6368
pytest-cov = "^4.1.0"

tests/polarion/test_polarion_automated.py

Lines changed: 0 additions & 17 deletions
This file was deleted.

0 commit comments

Comments
 (0)