django/tests/comment_tests/tests/test_feeds.py

52 lines
1.8 KiB
Python
Raw Normal View History

from xml.etree import ElementTree as ET
from django.conf import settings
from django.contrib.comments.models import Comment
from django.contrib.contenttypes.models import ContentType
from django.contrib.sites.models import Site
from . import CommentTestCase
from ..models import Article
class CommentFeedTests(CommentTestCase):
urls = 'comment_tests.urls'
feed_url = '/rss/comments/'
def setUp(self):
site_2 = Site.objects.create(id=settings.SITE_ID+1,
domain="example2.com", name="example2.com")
# A comment for another site
c5 = Comment.objects.create(
content_type = ContentType.objects.get_for_model(Article),
object_pk = "1",
user_name = "Joe Somebody",
user_email = "jsomebody@example.com",
user_url = "http://example.com/~joe/",
comment = "A comment for the second site.",
site = site_2,
)
def test_feed(self):
response = self.client.get(self.feed_url)
self.assertEqual(response.status_code, 200)
self.assertEqual(response['Content-Type'], 'application/rss+xml; charset=utf-8')
rss_elem = ET.fromstring(response.content)
self.assertEqual(rss_elem.tag, "rss")
self.assertEqual(rss_elem.attrib, {"version": "2.0"})
channel_elem = rss_elem.find("channel")
title_elem = channel_elem.find("title")
self.assertEqual(title_elem.text, "example.com comments")
link_elem = channel_elem.find("link")
self.assertEqual(link_elem.text, "http://example.com/")
atomlink_elem = channel_elem.find("{http://www.w3.org/2005/Atom}link")
self.assertEqual(atomlink_elem.attrib, {"href": "http://example.com/rss/comments/", "rel": "self"})
self.assertNotContains(response, "A comment for the second site.")