| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- import pytest
- from app.utils.excel_export import (
- EXPORT_MAX_ROWS,
- ExportColumn,
- ExportValidationError,
- filter_export_columns,
- assert_export_row_count,
- )
- COLS = [
- ExportColumn(title="账号", field="userNo"),
- ExportColumn(title="姓名", field="nickName"),
- ExportColumn(title="状态", field="status", dict_type="sys_status"),
- ]
- def test_filter_export_columns_keeps_order_and_ignores_unknown():
- out = filter_export_columns(COLS, ["status", "unknown", "userNo"])
- assert [c.field for c in out] == ["status", "userNo"]
- def test_filter_export_columns_none_returns_all():
- out = filter_export_columns(COLS, None)
- assert [c.field for c in out] == ["userNo", "nickName", "status"]
- def test_assert_export_row_count_empty():
- with pytest.raises(ExportValidationError) as ei:
- assert_export_row_count(0)
- assert "没有可导出的数据" in str(ei.value)
- def test_assert_export_row_count_over_limit():
- with pytest.raises(ExportValidationError) as ei:
- assert_export_row_count(EXPORT_MAX_ROWS + 1)
- assert "50000" in str(ei.value)
- def test_assert_export_row_count_ok():
- assert_export_row_count(1)
- assert_export_row_count(EXPORT_MAX_ROWS)
|