Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: Pass args instead of station_name #631

Merged
merged 1 commit into from
Dec 8, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 8 additions & 7 deletions suisa_sendemeldung/suisa_sendemeldung.py
Original file line number Diff line number Diff line change
Expand Up @@ -511,19 +511,20 @@ def get_isrc(music: Any) -> str: # noqa: ANN401
return isrc


def get_csv(data: dict, station_name: str = "") -> str:
def get_csv(data: dict, args: ArgparseNamespace) -> str:
"""Create SUISA compatible csv data.

Arguments:
---------
data: To data to create csv from
station_name: Default station name for output
args: Parsed arguments

Returns:
-------
csv: The converted data

"""
station_name = args.station_name
header = [
"Titel",
"Komponist",
Expand Down Expand Up @@ -642,20 +643,20 @@ def get_csv(data: dict, station_name: str = "") -> str:
return csv.getvalue()


def get_xlsx(data: Any, station_name: str = "") -> BytesIO: # noqa: ANN401
def get_xlsx(data: Any, args: ArgparseNamespace) -> BytesIO: # noqa: ANN401
"""Create SUISA compatible xlsx data.

Arguments:
---------
data: The data to create xlsx from
station_name: Default station name for output
args: Parsed arguments

Returns:
-------
xlsx: The converted data as BytesIO object

"""
csv = get_csv(data, station_name=station_name)
csv = get_csv(data, args=args)
csv_reader = reader(StringIO(csv))

xlsx = BytesIO()
Expand Down Expand Up @@ -862,9 +863,9 @@ def main() -> None: # pragma: no cover
)
data = merge_duplicates(data)
if args.filetype == "xlsx":
data = get_xlsx(data, station_name=args.station_name)
data = get_xlsx(data, args=args)
elif args.filetype == "csv":
data = get_csv(data, station_name=args.station_name)
data = get_csv(data, args=args)
if args.email:
email_subject = Template(args.email_subject).substitute(
{
Expand Down
19 changes: 19 additions & 0 deletions tests/conftest.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import pytest
from configargparse import ArgumentParser # type: ignore[import-untyped]

from suisa_sendemeldung.suisa_sendemeldung import get_arguments


@pytest.fixture
def args():
return get_arguments(
ArgumentParser(),
[
"--bearer-token=butaisheeph6sewoo8aiDa8ieyaethoo",
"--project-id=123456789",
"--stream-id=123456789",
"--timezone=UTC",
"--file",
"--station-name=Station Name",
],
)
10 changes: 5 additions & 5 deletions tests/test_suisa_sendemeldung.py
Original file line number Diff line number Diff line change
Expand Up @@ -195,13 +195,13 @@ def test_funge_release_date(test_date, expected):


@patch("cridlib.get")
def test_get_csv(mock_cridlib_get, snapshot):
def test_get_csv(mock_cridlib_get, snapshot, args):
"""Test get_csv."""
mock_cridlib_get.return_value = "crid://rabe.ch/v1/test"

# empty data
data = []
csv = suisa_sendemeldung.get_csv(data)
csv = suisa_sendemeldung.get_csv(data, args=args)
assert csv == snapshot
mock_cridlib_get.assert_not_called()

Expand Down Expand Up @@ -322,7 +322,7 @@ def test_get_csv(mock_cridlib_get, snapshot):
},
},
]
csv = suisa_sendemeldung.get_csv(data, station_name="Station Name")
csv = suisa_sendemeldung.get_csv(data, args=args)
assert csv == snapshot
mock_cridlib_get.assert_has_calls(
[
Expand Down Expand Up @@ -350,12 +350,12 @@ def test_get_csv(mock_cridlib_get, snapshot):
)


def test_get_xlsx(snapshot):
def test_get_xlsx(snapshot, args):
"""Test get_xlsx."""

# empty data
data = []
xlsx = suisa_sendemeldung.get_xlsx(data)
xlsx = suisa_sendemeldung.get_xlsx(data, args=args)
workbook = load_workbook(xlsx)
worksheet = workbook.active
assert list(worksheet.values) == snapshot
Expand Down
Loading