From 30d6f99c9b24782d667e3edc82bddda01a76f808 Mon Sep 17 00:00:00 2001 From: "Brian S. Stephan" Date: Sat, 30 Dec 2023 15:31:18 -0600 Subject: [PATCH] return the proper atom and rss content types for the feeds Signed-off-by: Brian S. Stephan --- incorporealcms/feed.py | 6 +++--- tests/test_feed.py | 10 ++++++---- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/incorporealcms/feed.py b/incorporealcms/feed.py index 84c4d92..6a3ebfb 100644 --- a/incorporealcms/feed.py +++ b/incorporealcms/feed.py @@ -14,7 +14,7 @@ import os import re from feedgen.feed import FeedGenerator -from flask import Blueprint, abort +from flask import Blueprint, Response, abort from flask import current_app as app from incorporealcms.lib import instance_resource_path_to_request_path, parse_md @@ -61,9 +61,9 @@ def serve_feed(feed_type): fe.content(content, type='html') if feed_type == 'atom': - return fg.atom_str(pretty=True) + return Response(fg.atom_str(pretty=True), mimetype='application/atom+xml') else: - return fg.rss_str(pretty=True) + return Response(fg.rss_str(pretty=True), mimetype='application/rss+xml') def _generate_feed_id(feed_entry_path): diff --git a/tests/test_feed.py b/tests/test_feed.py index 04226e7..16c41f1 100644 --- a/tests/test_feed.py +++ b/tests/test_feed.py @@ -16,6 +16,7 @@ def test_atom_type_is_200(client): """Test that requesting an ATOM feed is found.""" response = client.get('/feed/atom') assert response.status_code == 200 + assert 'application/atom+xml' in response.content_type print(response.text) @@ -23,6 +24,7 @@ def test_rss_type_is_200(client): """Test that requesting an RSS feed is found.""" response = client.get('/feed/rss') assert response.status_code == 200 + assert 'application/rss+xml' in response.content_type print(response.text) @@ -30,13 +32,13 @@ def test_feed_generator_atom(app): """Test the root feed generator.""" with app.test_request_context(): content = serve_feed('atom') - assert b'https://example.com/' in content - assert b'admin@example.com' in content - assert b'Test Name' in content + assert b'https://example.com/' in content.data + assert b'admin@example.com' in content.data + assert b'Test Name' in content.data def test_feed_generator_rss(app): """Test the root feed generator.""" with app.test_request_context(): content = serve_feed('rss') - assert b'admin@example.com (Test Name)' in content + assert b'admin@example.com (Test Name)' in content.data