Files
notifications-admin/tests/app/models/test_spreadsheet.py
Carlo Costino 72c8a46b8c Reformatted a handful more tests
Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-10-12 10:24:48 -04:00

50 lines
1.2 KiB
Python

from collections import OrderedDict
from pathlib import Path
import pytest
from app.models.spreadsheet import Spreadsheet
def test_can_create_spreadsheet_from_large_excel_file():
with open(
str(Path.cwd() / "tests" / "spreadsheet_files" / "excel 2007.xlsx"), "rb"
) as xl:
ret = Spreadsheet.from_file(xl, filename="xl.xlsx")
assert ret.as_csv_data
def test_can_create_spreadsheet_from_dict():
assert Spreadsheet.from_dict(
OrderedDict(
foo="bar",
name="Jane",
)
).as_csv_data == ("foo,name\r\n" "bar,Jane\r\n")
def test_can_create_spreadsheet_from_dict_with_filename():
assert (
Spreadsheet.from_dict({}, filename="empty.csv").as_dict["file_name"]
== "empty.csv"
)
@pytest.mark.parametrize(
("args", "kwargs"),
[
(
("hello", ["hello"]),
{},
),
((), {"csv_data": "hello", "rows": ["hello"]}),
],
)
def test_spreadsheet_checks_for_bad_arguments(args, kwargs):
with pytest.raises(TypeError) as exception:
Spreadsheet(*args, **kwargs)
assert (
str(exception.value)
== "Spreadsheet must be created from either rows or CSV data"
)