~osomon/moovida/account_admin

« back to all changes in this revision

Viewing changes to elisa-plugins/elisa/plugins/rss/tests/test_model.py

  • Committer: Olivier Tilloy
  • Date: 2009-09-09 10:17:40 UTC
  • mfrom: (1498.3.43 resource_provider)
  • Revision ID: olivier@fluendo.com-20090909101740-wpdqtxgs6v0v3f1t
Merged the latest resource provider branch.

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
#
17
17
# Author: Guido Amoruso <guidonte@fluendo.com>
18
18
 
19
 
 
20
19
from twisted.trial.unittest import TestCase
21
 
from twisted.python.failure import Failure
22
 
from twisted.internet import defer
23
 
 
24
 
from elisa.plugins import rss
 
20
 
 
21
from elisa.core.utils import defer
 
22
 
25
23
from elisa.plugins.rss.models import RssFeedModel
26
 
from elisa.plugins.rss.models import RssItemModel
 
24
 
27
25
 
28
26
doc = """<?xml version="1.0" encoding="utf-8"?>
29
27
<rss version="2.0"
70
68
</rss>
71
69
"""
72
70
 
73
 
def dummyGetPage(uri):
74
 
     if uri == 'succeed':
75
 
         return defer.succeed(doc)
76
 
     elif uri == 'fail':
77
 
         return defer.fail(Exception("Failure when fetching the feed"))
78
 
 
79
 
 
80
 
rss.models.getPage = dummyGetPage
81
 
 
82
71
 
83
72
class TestRssFeedModel(TestCase):
84
73
 
 
74
    def _get(self, uri):
 
75
        # Mock to replace a call to the real page getter
 
76
        if uri == 'succeed':
 
77
            return defer.succeed(doc)
 
78
        elif uri == 'fail':
 
79
            return defer.fail(Exception("Failure when fetching the feed"))
 
80
 
 
81
    def _patch_feed(self, feed):
 
82
        # Monkey patch the feed model's _get method
 
83
        feed._get = self._get
 
84
 
85
85
    def test_load_fail(self):
86
86
        feed = RssFeedModel()
87
87
        feed.uri = 'fail'
88
 
 
89
 
        def test_fetch_fail(result):
90
 
            self.failUnlessEquals(result, False)
91
 
 
92
 
        dfr = feed.load()
93
 
        self.failUnlessFailure(dfr, Exception)
94
 
 
95
 
        return dfr
 
88
        self._patch_feed(feed)
 
89
        self.failUnlessFailure(feed.load(), Exception)
96
90
 
97
91
    def test_load_success(self):
98
92
        feed = RssFeedModel()
99
93
        feed.uri = 'succeed'
100
 
 
101
 
        dfr = feed.load()
102
 
 
103
 
        return dfr
 
94
        self._patch_feed(feed)
 
95
        return feed.load()
104
96