Example #1
0
 def test_feed_generator(self):
     """ Ensure that our Feed object can return a generator """
     moksha.utils.feed_cache = FakeCache()
     feed = Feed(url='http://lewk.org/rss')
     iter = feed.iterentries()
     data = iter.next()
     assert iter.next()
Example #2
0
 def test_feed_generator(self):
     """ Ensure that our Feed object can return a generator """
     moksha.feed_cache = FakeCache()
     feed = Feed(url='http://lewk.org/rss')
     iter = feed.iterentries()
     data = iter.next()
     assert iter.next()
Example #3
0
 def __init__(self, *args, **kw):
     self.feed = Feed(url='http://doggdot.us/rss')
     self.feed_entries = self.feed.entries()
     super(MokshaDemoDataStream, self).__init__(*args, **kw)
Example #4
0
class MokshaDemoDataStream(PollingDataStream):
    """
    This class provides the default Moksha demo with some fake data to render
    """

    frequency = timedelta(seconds=0.5)

    # Flot demo specific variables
    offset = 0.0
    skip = 0
    bars = [[0, 3], [4, 8], [8, 5], [9, 13]]
    n = 0

    # Feed demo specific variables
    i = 0

    def __init__(self, *args, **kw):
        self.feed = Feed(url='http://doggdot.us/rss')
        self.feed_entries = self.feed.entries()
        super(MokshaDemoDataStream, self).__init__(*args, **kw)

    def poll(self):
        self.n += 1

        if self.n % 3 == 0:
            self.i += 1
            entry = self.feed_entries[self.n % len(self.feed_entries)]
            self.send_message('feed_demo', [
                {'title': entry['title'], 'link': entry['link'], 'i': self.i},
            ])

        ## Generate flot data
        d1 = []
        i = 0
        for x in range(26):
            d1.append((i, math.sin(i + self.offset)))
            i += 0.5

        for bar in self.bars:
            bar[1] = bar[1] + (int(random() * 3) - 1)
            if bar[1] <= -5: bar[1] = -4
            if bar[1] >= 15: bar[1] = 15
        d2 = self.bars

        d3 = []
        i = 0
        for x in range(26):
            d3.append((i, math.cos(i + self.offset)))
            i += 0.5
        self.offset += 0.1

        d4 = []
        i = 0
        for x in range(26):
            d4.append((i, math.sqrt(i * 10)))
            i += 0.5

        d5 = []
        i = 0
        for x in range(26):
            d5.append((i, math.sqrt(i * self.offset)))
            i += 0.5

        flot_data = [{'data': [
            {'data': d1, 'lines': {'show': 'true', 'fill': 'true'}},
            {'data': d2, 'bars': {'show': 'true'}},
            {'data': d3, 'points': {'show': 'true'}},
            {'data': d4, 'lines': {'show': 'true'}},
            {'data': d5, 'lines': {'show': 'true'}, 'points' : {'show': 'true'}}
        ], 'options': {'yaxis' : { 'max' : '15' }}
        }]

        self.send_message('flot_demo', flot_data)

    def stop(self):
        self.feed.close()
        super(MokshaDemoDataStream, self).stop()
Example #5
0
 class MyWidget(Widget):
     children = [Feed('myfeed', url='http://lewk.org/rss')]
     engine_name = 'genshi'
     template = """
Example #6
0
 class MyWidget(Widget):
     params = ['url']
     children = [Feed('feed')]
     template = "${c.feed(url=url)}"
     engine_name = 'mako'
Example #7
0
 class MyWidget(Widget):
     myfeedurl = 'http://lewk.org/rss'
     children = [Feed('myfeed', url=myfeedurl)]
     engine_name = 'mako'
     template = "${c.myfeed()}"
Example #8
0
 def test_feed_render_url(self):
     """ Ensure that a generic feed can be rendered with a url """
     moksha.utils.feed_cache = FakeCache()
     feed = Feed()
     rendered = feed(url='http://lewk.org/rss')
     assert 'l e w k . o r g' in rendered, rendered