from app.services.export_service import labels_to_text, safe_csv_field, safe_filename def test_labels_to_text_joins_json_array_with_chinese_comma(): assert labels_to_text('["认可", "质量好"]') == "认可,质量好" assert labels_to_text("bad-json") == "" def test_safe_csv_field_prevents_formula_injection_and_newlines(): assert safe_csv_field("=1+1") == "'=1+1" assert safe_csv_field("+1+1") == "'+1+1" assert safe_csv_field("-1+1") == "'-1+1" assert safe_csv_field("@SUM(1,1)") == "'@SUM(1,1)" assert safe_csv_field("hello\nworld") == "hello world" assert safe_csv_field("hello\r\nworld") == "hello world" assert safe_csv_field("hello\rworld") == "hello world" def test_safe_filename_replaces_illegal_chars_and_truncates_keyword(): filename = safe_filename("douyin", "task", "a/b:c*d?eg|很长很长很长很长很长") assert "/" not in filename assert "__" not in filename assert filename.endswith(".csv")