diff --git a/src/poetry/core/json/schemas/poetry-schema.json b/src/poetry/core/json/schemas/poetry-schema.json index 8ff976f5b..a3a09738c 100644 --- a/src/poetry/core/json/schemas/poetry-schema.json +++ b/src/poetry/core/json/schemas/poetry-schema.json @@ -21,7 +21,7 @@ "description": { "type": "string", "description": "Short package description.", - "pattern": "^[^\n]*$" + "pattern": "\\A[^\n]*\\Z" }, "keywords": { "type": "array", diff --git a/tests/json/test_poetry_schema.py b/tests/json/test_poetry_schema.py index 06f5e343e..bb6399abb 100644 --- a/tests/json/test_poetry_schema.py +++ b/tests/json/test_poetry_schema.py @@ -50,10 +50,18 @@ def test_multi_url_dependencies(multi_url_object: dict[str, Any]) -> None: assert len(validate_object(multi_url_object, "poetry-schema")) == 0 -def test_multiline_description(base_object: dict[str, Any]) -> None: - bad_description = "Some multi-\nline string" +@pytest.mark.parametrize( + "bad_description", + ["Some multi-\nline string", "Some multiline string\n", "\nSome multi-line string"], +) +def test_multiline_description( + base_object: dict[str, Any], bad_description: str +) -> None: base_object["description"] = bad_description errors = validate_object(base_object, "poetry-schema") + assert len(errors) == 1 - assert errors[0] == f"[description] {bad_description!r} does not match '^[^\\n]*$'" + + regex = r"\\A[^\n]*\\Z" + assert errors[0] == f"[description] {bad_description!r} does not match '{regex}'"