Beispiel #1
0
 def test_fetcher_should_parse_response_from_client_into_a_list(self):
     client = MockClient('cheese')
     fetcher = DiscussionFetcher(client)
     most_commented = fetcher.fetch_most_commented('cheese')
     expected_most_commented = [("/p/3f262", 1312), ("/p/3f244", 973),
                                ("/p/3f26a", 469), ("/p/3fxam", 422),
                                ("/p/3f24d", 304)]
     self.assertEquals(expected_most_commented, most_commented)
Beispiel #2
0
    def test_the_fetcher_should_pass_the_right_url_to_the_client(self):
        base_url = 'http://discussion.com/api'
        client = MockClient(base_url)
        fetcher = DiscussionFetcher(client)
        fetcher.fetch_most_commented(123)

        expected_url = 'http://discussion.com/api/popular?pageSize=123'
        self.assertEquals(expected_url, client.actual_url)
    def test_the_fetcher_should_be_cool_about_trailing_slashes_on_the_base_url(self):
        base_url = 'http://discussion.com/api/' # Different from the last test, yeah?
        client = MockClient(base_url)
        fetcher = DiscussionFetcher(client)
        fetcher.fetch_most_commented(123)

        expected_url = 'http://discussion.com/api/popular?pageSize=123'
        self.assertEquals(expected_url, client.actual_url)
    def test_the_fetcher_should_pass_the_right_url_to_the_client(self):
        base_url = 'http://discussion.com/api'
        client = MockClient(base_url)
        fetcher = DiscussionFetcher(client)
        fetcher.fetch_most_commented(123)

        expected_url = 'http://discussion.com/api/popular?pageSize=123'
        self.assertEquals(expected_url, client.actual_url)
Beispiel #5
0
    def test_the_fetcher_should_be_cool_about_trailing_slashes_on_the_base_url(
            self):
        base_url = 'http://discussion.com/api/'  # Different from the last test, yeah?
        client = MockClient(base_url)
        fetcher = DiscussionFetcher(client)
        fetcher.fetch_most_commented(123)

        expected_url = 'http://discussion.com/api/popular?pageSize=123'
        self.assertEquals(expected_url, client.actual_url)
Beispiel #6
0
class CommentIsFree(handlers.EmailTemplate):
    recognized_versions = immutable.make_list('v1', 'v2', 'v3')

    ad_tag = 'email-speakers-corner'
    ad_config = {'leaderboard': 'Top'}

    ophan_client = OphanClient(mr.ophan_base_url, mr.ophan_key)
    most_shared_data_source = ds.MostSharedDataSource(
        most_shared_fetcher=MostSharedFetcher(ophan_client,
                                              section='commentisfree'),
        multi_content_data_source=ds.MultiContentDataSource(
            client=client, name='most_shared'),
        shared_count_interpolator=ds.MostSharedCountInterpolator())

    discussion_client = DiscussionClient(mr.discussion_base_url)
    most_commented_data_source = ds.MostCommentedDataSource(
        discussion_fetcher=DiscussionFetcher(discussion_client,
                                             'commentisfree'),
        multi_content_data_source=ds.MultiContentDataSource(
            client=client, name='most_commented'),
        comment_count_interpolator=ds.CommentCountInterpolator())

    data_sources = immutable.make_dict({
        'v1': {
            'uk_opinion_front':
            container.for_id('uk/commentisfree/regular-stories'),
            'cif_cartoon':
            ds.CommentIsFreeCartoonDataSource(client),
        },
        'v3': {
            'cif_most_shared': most_shared_data_source,
            'cif_cartoon': ds.CommentIsFreeCartoonDataSource(client),
        },
        'v2': {
            'cif_most_commented': most_commented_data_source,
            'cif_cartoon': ds.CommentIsFreeCartoonDataSource(client),
        }
    })

    priority_list = {
        'v3': [('cif_cartoon', 1), ('cif_most_shared', 5)],
        'v2': [('cif_cartoon', 1), ('cif_most_commented', 5)],
        'v1': [
            ('uk_opinion_front', 10),
            ('cif_cartoon', 1),
        ],
    }

    template_names = immutable.make_dict({
        'v3': 'comment-is-free/v3',
        'v2': 'comment-is-free/v2',
        'v1': 'comment-is-free/v1',
    })
Beispiel #7
0
class MostCommented(handlers.EmailTemplate):
    recognized_versions = ['v1']
    n_items = 6

    discussion_client = DiscussionClient(mr.discussion_base_url)
    discussion_fetcher = DiscussionFetcher(discussion_client)
    multi_content_data_source = ds.MultiContentDataSource(
        client=client, name='most_commented')
    comment_count_interpolator = ds.CommentCountInterpolator()

    most_commented_data_source = ds.MostCommentedDataSource(
        discussion_fetcher=discussion_fetcher,
        multi_content_data_source=multi_content_data_source,
        comment_count_interpolator=comment_count_interpolator)

    data_sources = {}
    data_sources['v1'] = {'most_commented': most_commented_data_source}

    priority_list = {'v1': [('most_commented', n_items)]}
    template_names = {'v1': 'most-commented'}
 def test_fetcher_should_parse_response_from_client_into_a_list(self):
     client = MockClient('cheese')
     fetcher = DiscussionFetcher(client)
     most_commented = fetcher.fetch_most_commented('cheese')
     expected_most_commented = [("/p/3f262", 1312), ("/p/3f244", 973), ("/p/3f26a", 469), ("/p/3fxam", 422), ("/p/3f24d", 304)]
     self.assertEquals(expected_most_commented, most_commented)