Commit 6417f524 authored by Malcolm Tredinnick's avatar Malcolm Tredinnick
Browse files

Merged the tests and documentation from #4720 to support the changes in [7295].

Thanks, Andy Gayton. Fixed #4720. Refs #5855.


git-svn-id: http://code.djangoproject.com/svn/django/trunk@7328 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent 649cdf90
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -245,6 +245,13 @@ request to the URL ``/rss/beats/0613/``:
      subclass of ``ObjectDoesNotExist``. Raising ``ObjectDoesNotExist`` in
      ``get_object()`` tells Django to produce a 404 error for that request.

      **New in Django development version:** The ``get_object()`` method also
      has a chance to handle the ``/rss/beats/`` url.  In this case, ``bits``
      will be an empty list. In our example, ``len(bits) != 1`` and an
      ``ObjectDoesNotExist`` exception will be raised, so ``/rss/beats/`` will
      generate a 404 page. But you can handle this case however you like.  For
      example you could generate a combined feed for all beats.

    * To generate the feed's ``<title>``, ``<link>`` and ``<description>``,
      Django uses the ``title()``, ``link()`` and ``description()`` methods. In
      the previous example, they were simple string class attributes, but this
+0 −0

Empty file added.

+14 −0
Original line number Diff line number Diff line
# -*- coding: utf-8 -*-

from django.test import TestCase
from django.test.client import Client

class SyndicationFeedTest(TestCase):
    def test_complex_base_url(self):
        """
        Tests that that the base url for a complex feed doesn't raise a 500
        exception.
        """
        c = Client()
        response = c.get('/syndication/feeds/complex/')
        self.assertEquals(response.status_code, 404)
+18 −0
Original line number Diff line number Diff line
from django.conf.urls.defaults import patterns
from django.core.exceptions import ObjectDoesNotExist
from django.contrib.syndication import feeds


class ComplexFeed(feeds.Feed):
    def get_object(self, bits):
        if len(bits) != 1:
            raise ObjectDoesNotExist
        return None


urlpatterns = patterns('',
    (r'^feeds/(?P<url>.*)/$', 'django.contrib.syndication.views.feed', {
        'feed_dict': dict(
            complex = ComplexFeed,
        )}),
)
+3 −0
Original line number Diff line number Diff line
@@ -19,4 +19,7 @@ urlpatterns = patterns('',
    (r'^middleware/', include('regressiontests.middleware.urls')),

    (r'^utils/', include('regressiontests.utils.urls')),

    # test urlconf for syndication tests
    (r'^syndication/', include('regressiontests.syndication.urls')),
)