|
|
|
import pytest
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
|
|
("given", "expected"),
|
|
|
|
[
|
|
|
|
("a", False),
|
|
|
|
("", True),
|
|
|
|
(" ", True),
|
|
|
|
(" a ", False),
|
|
|
|
(None, True),
|
|
|
|
(0, False),
|
|
|
|
(2.2, False),
|
|
|
|
],
|
|
|
|
)
|
|
|
|
def test_is_empty_excel_value(given, expected):
|
|
|
|
from superx_budget.helpers import is_empty_excel_value
|
|
|
|
|
|
|
|
result = is_empty_excel_value(given)
|
|
|
|
|
|
|
|
assert result == expected
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
|
|
("given", "expected"),
|
|
|
|
[
|
|
|
|
("a", "a"),
|
|
|
|
("", ""),
|
|
|
|
(" ", ""),
|
|
|
|
(" a ", "a"),
|
|
|
|
(None, None),
|
|
|
|
(1, 1),
|
|
|
|
(2.2, 2.2),
|
|
|
|
],
|
|
|
|
)
|
|
|
|
def test_strip_excel_value(given, expected):
|
|
|
|
from superx_budget.helpers import strip_excel_value
|
|
|
|
|
|
|
|
result = strip_excel_value(given)
|
|
|
|
|
|
|
|
assert result == expected
|
|
|
|
|
|
|
|
|
|
|
|
def test_get_sheet_of_file_first(budget_example_file):
|
|
|
|
from superx_budget.helpers import get_sheet_of_file
|
|
|
|
|
|
|
|
sheet = get_sheet_of_file(budget_example_file) # sheet=None
|
|
|
|
first_row = next(sheet.values)
|
|
|
|
first_cell = first_row[0]
|
|
|
|
|
|
|
|
assert first_cell.strip() == "Nr."
|
|
|
|
|
|
|
|
|
|
|
|
def test_get_sheet_of_file_named(budget_example_file):
|
|
|
|
from superx_budget.helpers import get_sheet_of_file
|
|
|
|
|
|
|
|
sheet = get_sheet_of_file(budget_example_file, sheet="Übersicht")
|
|
|
|
first_row = next(sheet.values)
|
|
|
|
first_cell = first_row[0]
|
|
|
|
|
|
|
|
assert first_cell.strip() == "Nr."
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
|
|
("given", "expected"),
|
|
|
|
[
|
|
|
|
(None, 0),
|
|
|
|
("", 0),
|
|
|
|
("a", 0),
|
|
|
|
("1", 1.0),
|
|
|
|
("2.4", 2.4),
|
|
|
|
(1, 1),
|
|
|
|
(2.4, 2.4),
|
|
|
|
],
|
|
|
|
)
|
|
|
|
def test_excel_value_as_number(given, expected):
|
|
|
|
from superx_budget.helpers import excel_value_as_number
|
|
|
|
|
|
|
|
result = excel_value_as_number(given)
|
|
|
|
|
|
|
|
assert result == expected
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
|
|
("name", "expected"),
|
|
|
|
[
|
|
|
|
("budget-2019.xlsx", True),
|
|
|
|
("budget-template-2020.xlsx", True),
|
|
|
|
("budget-2018.xlsx", False),
|
|
|
|
("xxxxxx-2019.xlsx", False),
|
|
|
|
("budget-2019.xxxx", False),
|
|
|
|
("budget-2x19.xlsx", False),
|
|
|
|
("budget_2019.xlsx", False),
|
|
|
|
],
|
|
|
|
)
|
|
|
|
def test_is_budget_file_name(name, expected):
|
|
|
|
from superx_budget.helpers import is_budget_file_name
|
|
|
|
|
|
|
|
result = is_budget_file_name(name)
|
|
|
|
|
|
|
|
assert result == expected
|
|
|
|
|
|
|
|
|
|
|
|
def test_list_budget_files(example_root):
|
|
|
|
from superx_budget.helpers import list_budget_files
|
|
|
|
|
|
|
|
result = list_budget_files(example_root)
|
|
|
|
|
|
|
|
assert sorted(r.name for r in result) == [
|
|
|
|
"Budget-Vorlage-2019.xlsx",
|
|
|
|
"Budget-Vorlage-2020.xlsx",
|
|
|
|
"Budget-Vorlage-2024.xlsx",
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
def test_find_budget_file_found(example_root):
|
|
|
|
from superx_budget.helpers import find_budget_file
|
|
|
|
|
|
|
|
result = find_budget_file(example_root, 2020)
|
|
|
|
|
|
|
|
assert result.name == "Budget-Vorlage-2020.xlsx"
|
|
|
|
|
|
|
|
|
|
|
|
def test_find_budget_file_not_found(example_root):
|
|
|
|
from superx_budget.helpers import find_budget_file
|
|
|
|
|
|
|
|
result = find_budget_file(example_root, 1999)
|
|
|
|
|
|
|
|
assert result is None
|
|
|
|
|
|
|
|
|
|
|
|
def test_find_recipients_ok(example_root):
|
|
|
|
from superx_budget.helpers import find_recipients
|
|
|
|
|
|
|
|
result = find_recipients(example_root, "recipients.txt")
|
|
|
|
|
|
|
|
assert result == [
|
|
|
|
"frey@imtek.de",
|
|
|
|
"imtek@holgerfrey.de",
|
|
|
|
"superx@holgerfrey.de",
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
def test_find_recipients_default(example_root):
|
|
|
|
from superx_budget.helpers import find_recipients
|
|
|
|
|
|
|
|
result = find_recipients(example_root, "unknown file")
|
|
|
|
|
|
|
|
assert result == ["frey@imtek.de"]
|