Skip to content

Commit 747c6fe

Browse files
authored
Fixes in Diagnostics object, version 0.11.2 (#161)
1 parent 76351e9 commit 747c6fe

File tree

3 files changed

+35
-4
lines changed

3 files changed

+35
-4
lines changed

df_translation_toolkit/validation/validation_models.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,9 @@ def __str__(self) -> str:
4343
problems_text = "\n".join(str(problem) for problem in self.problems)
4444
return f"Problematic tag pair: {self.original!r}, {self.translation!r}\nProblems:\n{problems_text}"
4545

46+
def contains_problems(self) -> bool:
47+
return bool(self.problems)
48+
4649
def contains_errors(self) -> bool:
4750
return ValidationProblem.contains_errors(self.problems)
4851

@@ -56,8 +59,13 @@ def __init__(self) -> None:
5659
def add(self, problem_info: ProblemInfo) -> None:
5760
self.problems.append(problem_info)
5861

59-
def __bool__(self) -> bool:
60-
return bool(self.problems)
62+
def contains_problems(self) -> bool:
63+
"""Contains any problems (including errors)"""
64+
return any(problem.contains_problems() for problem in self.problems)
6165

6266
def contains_errors(self) -> bool:
67+
"""Contains any errors among problems."""
6368
return any(problem.contains_errors() for problem in self.problems)
69+
70+
def __str__(self) -> str:
71+
return "\n".join(map(str, self.problems))

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "df-translation-toolkit"
3-
version = "0.11.1"
3+
version = "0.11.2"
44
description = "Toolset to convert text extracted from DF to translation format and aback"
55
authors = [
66
"insolor <[email protected]>",

tests/test_validation_models.py

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
import pytest
22

3-
from df_translation_toolkit.validation.validation_models import ProblemSeverity, ValidationException, ValidationProblem
3+
from df_translation_toolkit.validation.validation_models import (
4+
Diagnostics,
5+
ProblemInfo,
6+
ProblemSeverity,
7+
ValidationException,
8+
ValidationProblem,
9+
)
410

511

612
@pytest.mark.parametrize(
@@ -48,3 +54,20 @@ def test_validation_problem_contains_errors(test_data: list[ValidationProblem],
4854
)
4955
def test_validation_exception_str(test_data: list[ValidationProblem], expected: str) -> None:
5056
assert str(ValidationException(test_data)) == expected
57+
58+
59+
def test_diagnostics() -> None:
60+
diagnostics = Diagnostics()
61+
assert bool(diagnostics)
62+
assert diagnostics.contains_problems() is False
63+
diagnostics.add(ProblemInfo("text", "translation", problems=[]))
64+
assert diagnostics.contains_problems() is False
65+
diagnostics.add(
66+
ProblemInfo("text1", "translation1", problems=[ValidationProblem("Warning", ProblemSeverity.WARNING)]),
67+
)
68+
assert diagnostics.contains_problems() is True
69+
assert diagnostics.contains_errors() is False
70+
diagnostics.add(
71+
ProblemInfo("text2", "translation2", problems=[ValidationProblem("Error")]),
72+
)
73+
assert diagnostics.contains_errors() is True

0 commit comments

Comments
 (0)