コード例 #1
0
class TestUrlQuotationSelector(unittest.TestCase):

    def setUp(self):
        settings = types.ModuleType('test_url_settings')
        settings.QUOTES_URL = "https://example.com/api/v2/quotations/?limit=1"
        self.selector = UrlQuotationSelector(settings)

    @patch('requests.get')
    def test_select_failure(self, mock_get):
        mock_get.return_value = MagicMock(status_code=500)

        quote = self.selector.select()

        mock_get.assert_called_once_with('https://example.com/api/v2/quotations/?limit=1')
        self.assertEqual(None, quote)

    @patch('requests.get')
    def test_select_response_not_json(self, mock_get):
        mock_json = MagicMock(side_effect=ValueError())
        mock_get.return_value = MagicMock(status_code=200, json=mock_json)

        quote = self.selector.select()

        mock_get.assert_called_once_with('https://example.com/api/v2/quotations/?limit=1')
        self.assertEqual(None, quote)

    @patch('requests.get')
    def test_select_invalid_response_format(self, mock_get):
        mock_json = MagicMock(return_value={'text': 'Hi!', 'author': 'An'})
        mock_get.return_value = MagicMock(status_code=200, json=mock_json)

        quote = self.selector.select()

        mock_get.assert_called_once_with('https://example.com/api/v2/quotations/?limit=1')
        self.assertEqual(None, quote)

    @patch('requests.get')
    def test_select_success(self, mock_get):
        mock_json = MagicMock(return_value={'results': [{'text': 'Hi!', 'author': 'An'}]})
        mock_get.return_value = MagicMock(status_code=200, json=mock_json)

        quote = self.selector.select()

        mock_get.assert_called_once_with('https://example.com/api/v2/quotations/?limit=1')
        self.assertEqual('Hi! ~ An', quote)
        self.assertEqual(str, type(quote))
コード例 #2
0
 def setUp(self):
     settings = types.ModuleType('test_url_settings')
     settings.QUOTES_URL = "https://example.com/api/v1/quotations/?limit=1"
     self.selector = UrlQuotationSelector(settings)
コード例 #3
0
class TestUrlQuotationSelector(unittest.TestCase):
    def setUp(self):
        settings = types.ModuleType('test_url_settings')
        settings.QUOTES_URL = "https://example.com/api/v1/quotations/?limit=1"
        self.selector = UrlQuotationSelector(settings)

    @patch('requests.get')
    def test_select_failure(self, mock_get):
        mock_get.return_value = MagicMock(status_code=500)

        quote = self.selector.select()

        mock_get.assert_called_once_with(
            'https://example.com/api/v1/quotations/?limit=1')
        self.assertEqual(None, quote)

    @patch('requests.get')
    def test_select_response_not_json(self, mock_get):
        mock_json = MagicMock(side_effect=ValueError())
        mock_get.return_value = MagicMock(status_code=200, json=mock_json)

        quote = self.selector.select()

        mock_get.assert_called_once_with(
            'https://example.com/api/v1/quotations/?limit=1')
        self.assertEqual(None, quote)

    @patch('requests.get')
    def test_select_invalid_response_format(self, mock_get):
        mock_json = MagicMock(return_value={
            'text': 'Hi!',
            'author': {
                'name': 'An'
            }
        })
        mock_get.return_value = MagicMock(status_code=200, json=mock_json)

        quote = self.selector.select()

        mock_get.assert_called_once_with(
            'https://example.com/api/v1/quotations/?limit=1')
        self.assertEqual(None, quote)

    @patch('requests.get')
    def test_select_success(self, mock_get):
        mock_json = MagicMock(return_value={
            'objects': [{
                'text': 'Hi!',
                'author': {
                    'name': 'An'
                }
            }]
        })
        mock_get.return_value = MagicMock(status_code=200, json=mock_json)

        quote = self.selector.select()

        mock_get.assert_called_once_with(
            'https://example.com/api/v1/quotations/?limit=1')
        self.assertEqual('Hi! ~ An', quote)
        self.assertEqual(str, type(quote))
コード例 #4
0
 def setUp(self):
     settings = types.ModuleType('test_url_settings')
     settings.QUOTES_URL = "https://example.com/api/v2/quotations/?limit=1"
     self.selector = UrlQuotationSelector(settings)