Beispiel #1
0
    def feed(self,
             feed_title,
             title,
             content,
             url,
             published=None,
             summary=None,
             enclosure=None,
             media_thumbnail=None):
        feed = FeedGenerator()
        feed.title(feed_title)
        feed.description(faker.sentence())
        feed.link({'href': WP_FEED_URL})

        entry = feed.add_entry()
        entry.title(title)
        entry.link({'href': url})
        entry.author(name=faker.name())
        entry.content(content, type="cdata")
        if summary:
            entry.description(summary)
        if enclosure:
            entry.enclosure(url=enclosure['url'],
                            type=enclosure['type'],
                            length=str(faker.pyint()))
        if media_thumbnail:
            feed.load_extension('media')
            entry.media.thumbnail({'url': media_thumbnail})
        tz = pytz.timezone(faker.timezone())
        published = published or faker.date_time(tzinfo=tz)
        entry.published(published)
        entry.updated(faker.date_time_between(start_date=published, tzinfo=tz))

        return feed.rss_str().decode('utf8')
Beispiel #2
0
 def feed(self, feed_title, title, content, url, published=None, summary=None,
          enclosure=None, media_thumbnail=None):
     feed = AtomFeed(feed_title, feed_url=WP_FEED_URL)
     tz = pytz.timezone(faker.timezone())
     published = published or faker.date_time(tzinfo=tz)
     kwargs = {
         'content_type': 'html',
         'author': faker.name(),
         'url': url,
         'updated': faker.date_time_between(start_date=published, tzinfo=tz),
         'published': published
     }
     if summary:
         kwargs['summary'] = summary
     if enclosure:
         kwargs['links'] = [{
             'type': enclosure['type'],
             'href': enclosure['url'],
             'rel': 'enclosure',
             'length': faker.pyint(),
         }]
     feed.add(title, content, **kwargs)
     out = feed.to_string()
     if media_thumbnail:
         el = '<media:thumbnail url="{0}" />'.format(media_thumbnail)
         out = out.replace('<feed', '<feed xmlns:media="http://search.yahoo.com/mrss/"')
         out = out.replace('</entry>', '{0}</entry>'.format(el))
     return out
Beispiel #3
0
    def test_blogpost_with_first_image_as_thumbnail_as_src_set(
            self, blogpost, tpl):
        title = faker.sentence()
        post_url = faker.uri()
        image_url = faker.image_url()
        summary = faker.sentence()
        tz = pytz.timezone(faker.timezone())
        publish_date = faker.date_time(tzinfo=tz)
        srcset = ', '.join(' '.join((faker.image_url(width=w),
                                     '{0}w'.format(w)))
                           for w in ('1200', '1024', '300'))
        sizes = "(max-width: 1200px) 100vw, 1200px"
        content = tpl.format(image_url, srcset, sizes)

        feed = self.feed('Some blog',
                         title,
                         content,
                         post_url,
                         published=publish_date,
                         summary=summary)

        post = blogpost(feed)

        assert post['title'] == title
        assert post['link'] == post_url
        assert post['summary'] == summary
        assert_equal_dates(post['date'], publish_date)
        assert post['image_url'] == image_url
        assert post['srcset'] == srcset
        assert post['sizes'] == sizes
Beispiel #4
0
    def test_blogpost_with_thumbnail_as_enclosure(self, blogpost, mime):
        title = faker.sentence()
        post_url = faker.uri()
        image_url = faker.image_url()
        tz = pytz.timezone(faker.timezone())
        publish_date = faker.date_time(tzinfo=tz)
        content = faker.sentence()
        html_content = '<div>{0}</div>'.format(content)
        feed = self.feed('Some blog',
                         title,
                         html_content,
                         post_url,
                         published=publish_date,
                         enclosure={
                             'type': mime,
                             'url': image_url
                         })

        post = blogpost(feed)

        assert post['title'] == title
        assert post['link'] == post_url
        assert post['summary'] == content
        assert_equal_dates(post['date'], publish_date)
        assert post['image_url'] == image_url
        assert 'srcset' not in post
        assert 'sizes' not in post
Beispiel #5
0
    def test_blogpost_with_first_image_as_thumbnail_and_summary(
            self, blogpost):
        title = faker.sentence()
        post_url = faker.uri()
        image_url = faker.image_url()
        summary = faker.sentence()
        tz = pytz.timezone(faker.timezone())
        publish_date = faker.date_time(tzinfo=tz)
        content = '<p><img class="whatever" src="{0}" /> Whatever whatever</p>'.format(
            image_url)
        feed = self.feed('Some blog',
                         title,
                         content,
                         post_url,
                         published=publish_date,
                         summary=summary)

        post = blogpost(feed)

        assert post['title'] == title
        assert post['link'] == post_url
        assert post['summary'] == summary
        assert_equal_dates(post['date'], publish_date)
        assert post['image_url'] == image_url
        assert 'srcset' not in post
        assert 'sizes' not in post
Beispiel #6
0
    def feed(self, feed_title, title, content, url, published=None, summary=None,
             enclosure=None, media_thumbnail=None):
        feed = FeedGenerator()
        feed.title(feed_title)
        feed.description(faker.sentence())
        feed.link({'href': WP_FEED_URL})

        entry = feed.add_entry()
        entry.title(title)
        entry.link({'href': url})
        entry.author(name=faker.name())
        entry.content(content, type="cdata")
        if summary:
            entry.description(summary)
        if enclosure:
            entry.enclosure(url=enclosure['url'],
                            type=enclosure['type'],
                            length=str(faker.pyint()))
        if media_thumbnail:
            feed.load_extension('media')
            entry.media.thumbnail({'url': media_thumbnail})
        tz = pytz.timezone(faker.timezone())
        published = published or faker.date_time(tzinfo=tz)
        entry.published(published)
        entry.updated(faker.date_time_between(start_date=published, tzinfo=tz))

        return feed.rss_str().decode('utf8')
Beispiel #7
0
 def feed(self, feed_title, title, content, url, published=None, summary=None,
          enclosure=None, media_thumbnail=None):
     feed = AtomFeed(feed_title, feed_url=WP_FEED_URL)
     tz = pytz.timezone(faker.timezone())
     published = published or faker.date_time(tzinfo=tz)
     kwargs = {
         'content_type': 'html',
         'author': faker.name(),
         'url': url,
         'updated': faker.date_time_between(start_date=published, tzinfo=tz),
         'published': published
     }
     if summary:
         kwargs['summary'] = summary
     if enclosure:
         kwargs['links'] = [{
             'type': enclosure['type'],
             'href': enclosure['url'],
             'rel': 'enclosure',
             'length': faker.pyint(),
         }]
     feed.add(title, content, **kwargs)
     out = feed.to_string()
     if media_thumbnail:
         el = '<media:thumbnail url="{0}" />'.format(media_thumbnail)
         out = out.replace('<feed', '<feed xmlns:media="http://search.yahoo.com/mrss/"')
         out = out.replace('</entry>', '{0}</entry>'.format(el))
     return out
Beispiel #8
0
    def test_blogpost_with_first_image_as_thumbnail_as_src_set(self, blogpost, tpl):
        title = faker.sentence()
        post_url = faker.uri()
        image_url = faker.image_url()
        summary = faker.sentence()
        tz = pytz.timezone(faker.timezone())
        publish_date = faker.date_time(tzinfo=tz)
        srcset = ', '.join(
            ' '.join((faker.image_url(width=w), '{0}w'.format(w)))
            for w in ('1200', '1024', '300')
        )
        sizes = "(max-width: 1200px) 100vw, 1200px"
        content = tpl.format(image_url, srcset, sizes)

        feed = self.feed('Some blog', title, content, post_url,
                         published=publish_date,
                         summary=summary)

        post = blogpost(feed)

        assert post['title'] == title
        assert post['link'] == post_url
        assert post['summary'] == summary
        assert_equal_dates(post['date'], publish_date)
        assert post['image_url'] == image_url
        assert post['srcset'] == srcset
        assert post['sizes'] == sizes
Beispiel #9
0
 def test_render_home_with_blog(self, rmock, client):
     '''It should render the home page with the latest blog article'''
     post_url = faker.uri()
     feed = AtomFeed('Some blog', feed_url=WP_ATOM_URL)
     feed.add('Some post',
              '<div>Some content</div>',
              content_type='html',
              author=faker.name(),
              url=post_url,
              updated=faker.date_time(),
              published=faker.date_time())
     rmock.get(WP_ATOM_URL,
               text=feed.to_string(),
               headers={'Content-Type': 'application/atom+xml'})
     response = client.get(url_for('site.home'))
     assert200(response)
     assert 'Some post' in response.data.decode('utf8')
     assert post_url in response.data.decode('utf8')
Beispiel #10
0
 def test_render_home_with_blog(self):
     '''It should render the home page with the latest blog article'''
     post_url = faker.uri()
     feed = AtomFeed('Some blog', feed_url=WP_ATOM_URL)
     feed.add('Some post',
              '<div>Some content</div>',
              content_type='html',
              author=faker.name(),
              url=post_url,
              updated=faker.date_time(),
              published=faker.date_time())
     httpretty.register_uri(httpretty.GET, WP_ATOM_URL,
                            body=feed.to_string(),
                            content_type='application/atom+xml')
     response = self.get(url_for('site.home'))
     self.assert200(response)
     self.assertIn('Some post', response.data.decode('utf8'))
     self.assertIn(post_url, response.data.decode('utf8'))
Beispiel #11
0
 def test_render_home_with_blog(self):
     '''It should render the home page with the latest blog article'''
     post_url = faker.uri()
     feed = AtomFeed('Some blog', feed_url=WP_ATOM_URL)
     feed.add('Some post',
              '<div>Some content</div>',
              content_type='html',
              author=faker.name(),
              url=post_url,
              updated=faker.date_time(),
              published=faker.date_time())
     httpretty.register_uri(httpretty.GET,
                            WP_ATOM_URL,
                            body=feed.to_string(),
                            content_type='application/atom+xml')
     response = self.get(url_for('site.home'))
     self.assert200(response)
     self.assertIn('Some post', response.data.decode('utf8'))
     self.assertIn(post_url, response.data.decode('utf8'))
Beispiel #12
0
 def test_render_home_with_blog_without_thumbnail(self, home):
     '''It should render the home page with the latest blog article'''
     post = {
         'title': faker.name(),
         'link': faker.uri(),
         'summary': faker.sentence(),
         'date': faker.date_time(),
     }
     response = home(post)
     assert200(response)
     page = response.data.decode('utf8')
     assert post['title'] in page
     assert post['link'] in page
     assert post['summary'] in page
     assert 'blog-thumbnail' not in page
Beispiel #13
0
 def test_render_home_with_blog_without_thumbnail(self, home):
     '''It should render the home page with the latest blog article'''
     post = {
         'title': faker.name(),
         'link': faker.uri(),
         'summary': faker.sentence(),
         'date': faker.date_time(),
     }
     response = home(post)
     assert200(response)
     page = response.data.decode('utf8')
     assert post['title'] in page
     assert post['link'] in page
     assert post['summary'] in page
     assert 'blog-thumbnail' not in page
Beispiel #14
0
    def test_basic_blogpost(self, blogpost):
        title = faker.sentence()
        post_url = faker.uri()
        tz = pytz.timezone(faker.timezone())
        publish_date = faker.date_time(tzinfo=tz)
        content = faker.sentence()
        html_content = '<div>{0}</div>'.format(content)
        feed = self.feed('Some blog', title, html_content, post_url,
                         published=publish_date)

        post = blogpost(feed)

        assert post['title'] == title
        assert post['link'] == post_url
        assert post['summary'] == content
        assert_equal_dates(post['date'], publish_date)
        assert 'image_url' not in post
        assert 'srcset' not in post
        assert 'sizes' not in post
Beispiel #15
0
    def test_basic_blogpost(self, blogpost):
        title = faker.sentence()
        post_url = faker.uri()
        tz = pytz.timezone(faker.timezone())
        publish_date = faker.date_time(tzinfo=tz)
        content = faker.sentence()
        html_content = '<div>{0}</div>'.format(content)
        feed = self.feed('Some blog', title, html_content, post_url,
                         published=publish_date)

        post = blogpost(feed)

        assert post['title'] == title
        assert post['link'] == post_url
        assert post['summary'] == content
        assert_equal_dates(post['date'], publish_date)
        assert 'image_url' not in post
        assert 'srcset' not in post
        assert 'sizes' not in post
Beispiel #16
0
    def test_blogpost_with_first_image_as_thumbnail(self, blogpost):
        title = faker.sentence()
        post_url = faker.uri()
        image_url = faker.image_url()
        summary = faker.sentence()
        tz = pytz.timezone(faker.timezone())
        publish_date = faker.date_time(tzinfo=tz)
        content = '<p><img class="whatever" src="{0}" /> {1}</p>'.format(image_url, summary)
        feed = self.feed('Some blog', title, content, post_url,
                         published=publish_date)

        post = blogpost(feed)

        assert post['title'] == title
        assert post['link'] == post_url
        assert post['summary'] == summary
        assert_equal_dates(post['date'], publish_date)
        assert post['image_url'] == image_url
        assert 'srcset' not in post
        assert 'sizes' not in post
Beispiel #17
0
    def test_blogpost_with_thumbnail_as_enclosure(self, blogpost, mime):
        title = faker.sentence()
        post_url = faker.uri()
        image_url = faker.image_url()
        tz = pytz.timezone(faker.timezone())
        publish_date = faker.date_time(tzinfo=tz)
        content = faker.sentence()
        html_content = '<div>{0}</div>'.format(content)
        feed = self.feed('Some blog', title, html_content, post_url,
                         published=publish_date,
                         enclosure={'type': mime, 'url': image_url})

        post = blogpost(feed)

        assert post['title'] == title
        assert post['link'] == post_url
        assert post['summary'] == content
        assert_equal_dates(post['date'], publish_date)
        assert post['image_url'] == image_url
        assert 'srcset' not in post
        assert 'sizes' not in post