def test_extract_content_assignment_direct(self, ex_mock):
        post = MockObjects.get_generic_mock_post()
        post.url = 'https://imgur.com/fb2yRj0.jpg'
        ie = ImgurExtractor(post, MockObjects.get_blank_user())
        ie.extract_content()

        ex_mock.assert_called()
示例#2
0
    def test_extract_content_assignment_direct_mislinked(
            self, img_mock, ex_mock):
        ie = ImgurExtractor(self.get_direct_post_mislinked(),
                            MockObjects.get_blank_user())
        ie.extract_content()

        ex_mock.assert_called()
示例#3
0
 def test_imgur_does_not_exist_error(self, img_mock):
     img_mock.get_image.side_effect = ImgurClientError(status_code=404, error_message='error')
     ie = ImgurExtractor(self.get_single_post(), MockObjects.get_blank_user())
     ie.extract_content()
     failed_post = ie.failed_extract_posts[0]
     self.assertTrue('Content does not exist' in failed_post.status)
     self.assertFalse(len(ie.failed_extracts_to_save) > 0)
示例#4
0
 def test_imgur_over_capacity_error(self, img_mock):
     img_mock.get_image.side_effect = ImgurClientError(status_code=500, error_message='Over capacity')
     ie = ImgurExtractor(self.get_single_post(), MockObjects.get_blank_user())
     ie.extract_content()
     failed_post = ie.failed_extract_posts[0]
     self.assertTrue('over capacity' in failed_post.status)
     self.assertTrue(len(ie.failed_extracts_to_save) > 0)
示例#5
0
 def test_imgur_failed_to_locate_general(self, img_mock):
     img_mock.get_image.side_effect = ImgurClientError(status_code=403, error_message='error')
     img_mock.credits = {'ClientRemaining': 900}
     ie = ImgurExtractor(self.get_single_post(), MockObjects.get_blank_user())
     ie.extract_content()
     failed_post = ie.failed_extract_posts[0]
     self.assertTrue('Failed to locate content' in failed_post.status)
     self.assertFalse(len(ie.failed_extracts_to_save) > 0)
示例#6
0
 def test_imgur_no_credit_error(self, img_mock):
     img_mock.get_image.side_effect = ImgurClientError(status_code=403, error_message='error')
     img_mock.credits = {'ClientRemaining': 0}
     ie = ImgurExtractor(self.get_single_post(), MockObjects.get_blank_user())
     ie.extract_content()
     failed_post = ie.failed_extract_posts[0]
     self.assertTrue('Not enough imgur credits to extract post' in failed_post.status)
     self.assertTrue(len(ie.failed_extracts_to_save) > 0)
示例#7
0
 def test_imgur_rate_limit_exceeded_credit_dict_is_null(self, img_mock):
     img_mock.get_image.side_effect = ImgurClientError(status_code=429, error_message='error')
     img_mock.credits = {'UserRemaining': None}
     ie = ImgurExtractor(self.get_single_post(), MockObjects.get_blank_user())
     ie.extract_content()
     failed_post = ie.failed_extract_posts[0]
     self.assertTrue('rate limit exceeded' in failed_post.status)
     self.assertTrue(len(ie.failed_extracts_to_save) > 0)
    def test_imgur_does_not_exist_error(self, img_mock):
        img_mock.side_effect = ImgurError(status_code=404)

        extractor = ImgurExtractor(self.get_single_post(),
                                   MockObjects.get_blank_user())
        extractor.extract_content()

        failed_post = extractor.failed_extract_posts[0]
        self.assertEqual("Content does not exist.", failed_post.status)
        self.assertFalse(len(extractor.failed_extracts_to_save) > 0)
    def test_imgur_client_connection_error_unknown(self, img_mock):
        img_mock.side_effect = ImgurError(status_code=900)

        ie = ImgurExtractor(self.get_single_post(),
                            MockObjects.get_blank_user())
        ie.extract_content()

        failed_post = ie.failed_extract_posts[0]
        self.assertTrue('Unknown Imgur connection error' in failed_post.status)
        self.assertTrue(len(ie.failed_extracts_to_save) > 0)
    def test_imgur_down_error(self, img_mock):
        img_mock.side_effect = ImgurError(status_code=500)

        ie = ImgurExtractor(self.get_single_post(),
                            MockObjects.get_blank_user())
        ie.extract_content()

        failed_post = ie.failed_extract_posts[0]
        self.assertTrue('Imgur is currently down' in failed_post.status)
        self.assertTrue(len(ie.failed_extracts_to_save) > 0)
示例#11
0
 def test_imgur_rate_limit_exceeded_error_no_remaining_credits(self, img_mock):
     TIME = 600000
     img_mock.get_image.side_effect = ImgurClientError(status_code=429, error_message='error')
     img_mock.credits = {'UserRemaining': 0, 'UserReset': TIME}
     ie = ImgurExtractor(self.get_single_post(), MockObjects.get_blank_user())
     ie.extract_content()
     failed_post = ie.failed_extract_posts[0]
     self.assertTrue('Out of user credits' in failed_post.status)
     self.assertTrue(len(ie.failed_extracts_to_save) > 0)
     self.assertTrue(ImgurUtils.credit_time_limit == TIME)
    def test_imgur_failed_to_locate_403_error(self, img_mock):
        img_mock.side_effect = ImgurError(status_code=403)

        ie = ImgurExtractor(self.get_single_post(),
                            MockObjects.get_blank_user())
        ie.extract_content()

        failed_post = ie.failed_extract_posts[0]
        print(failed_post.status)
        self.assertEqual('Forbidden', failed_post.status)
        self.assertEqual(0, len(ie.failed_extracts_to_save))
    def test_imgur_rate_limit_exceeded_error(self, img_mock, credits_mock):
        img_mock.side_effect = ImgurError(status_code=429)
        credits_mock.return_value = 0

        ie = ImgurExtractor(self.get_single_post(),
                            MockObjects.get_blank_user())
        ie.extract_content()

        failed_post = ie.failed_extract_posts[0]

        self.assertEqual('Out of user credits', failed_post.status)
        self.assertTrue(len(ie.failed_extracts_to_save) > 0)
    def test_imgur_runtime_unknown_error(self, img_mock):
        img_mock.side_effect = RuntimeError()

        ie = ImgurExtractor(self.get_single_post(),
                            MockObjects.get_blank_user())
        ie.extract_content()

        self.assertEqual(1, len(ie.failed_extract_posts))
        failed_post = ie.failed_extract_posts[0]
        print(failed_post.status)
        self.assertEqual('Failed to extract content', failed_post.status)
        self.assertTrue(len(ie.failed_extracts_to_save) > 0)
示例#15
0
    def test_multiple_imgur_rate_limit_exceeded_with_timeout_dict(
            self, img_mock):
        img_mock.get_image.side_effect = ImgurClientError(
            status_code=429, error_message='error')
        img_mock.credits = {'UserRemaining': None}
        increment = Const.TIMEOUT_INCREMENT
        ie = ImgurExtractor(self.get_single_post(),
                            MockObjects.get_blank_user())
        ie.extract_content()
        self.assertEqual(ExtractorUtils.time_limit_dict[type(ie).__name__],
                         increment)
        increment += Const.TIMEOUT_INCREMENT

        ie = ImgurExtractor(self.get_single_post(),
                            MockObjects.get_blank_user())
        ie.extract_content()
        self.assertEqual(ExtractorUtils.time_limit_dict[type(ie).__name__],
                         increment)
        increment += Const.TIMEOUT_INCREMENT

        ie = ImgurExtractor(self.get_single_post(),
                            MockObjects.get_blank_user())
        ie.extract_content()
        self.assertEqual(ExtractorUtils.time_limit_dict[type(ie).__name__],
                         increment)
    def test_extract_content_assignment_single(self, ex_mock):
        ie = ImgurExtractor(self.get_single_post(),
                            MockObjects.get_blank_user())
        ie.extract_content()

        ex_mock.assert_called()