Ejemplo n.º 1
0
    def setUp(self):
        self.writer = Mock()
        self.writer.write = Mock()
        self.file_opener = Mock(return_value=self.writer)
        self.response = Mock()
        self.url_opener = Mock()

        self.browser = Browser(self.url_opener)
Ejemplo n.º 2
0
class TestBrowser(unittest.TestCase):
    
    def setUp(self):
        self.writer = Mock()
        self.writer.write = Mock()
        self.file_opener = Mock(return_value=self.writer)
        self.response = Mock()
        self.url_opener = Mock()

        self.browser = Browser(self.url_opener)
        
    def test_get_json(self):
        self.response.read = Mock(return_value=json.dumps(TEST_SOME_DATA))
        self.url_opener.open = Mock(return_value=self.response)
        result = self.browser.get_json(TEST_URL)

        self.assertIsInstance(result, dict)
        self.assertEqual(result, TEST_SOME_DATA)
        self.url_opener.open.assert_called_with(TEST_URL)

    def test_get_json_exception(self):
        self.url_opener.open = Mock(side_effect=urllib2.HTTPError(TEST_URL, 500, "Server is down", None, None))
        result = self.browser.get_json(TEST_URL)

        self.assertIsInstance(result, dict)
        self.assertEqual(result['status'], 'failed')
        self.assertIn('exception', result)
        self.url_opener.open.assert_called_with(TEST_URL)
        
    def test_post_json(self):
        self.response.read = Mock(return_value=json.dumps(TEST_SOME_DATA))
        self.url_opener.open = Mock(return_value=self.response)
        result = self.browser.post_json(TEST_URL, TEST_POST_DATA)

        self.assertIsInstance(result, dict)
        self.assertEqual(result, TEST_SOME_DATA)
        self.url_opener.open.assert_called_with(TEST_URL, urllib.urlencode(TEST_POST_DATA))

    def test_post_json_exception(self):
        self.url_opener.open = Mock(side_effect=urllib2.HTTPError(TEST_URL, 500, "Server is down", None, None))
        result = self.browser.post_json(TEST_URL, TEST_POST_DATA)

        self.assertIsInstance(result, dict)
        self.assertEqual(result['status'], 'failed')
        self.assertIn('exception', result)
        self.url_opener.open.assert_called_with(TEST_URL, urllib.urlencode(TEST_POST_DATA))
        
    def test_download_file(self):
        self.response.read = Mock(return_value=TEST_SOME_FILE_CONTENT)
        self.url_opener.open = Mock(return_value=self.response)
        self.browser.download(TEST_URL, TEST_LOCAL_DIR, TEST_FILENAME, file_opener=self.file_opener)
        
        self.url_opener.open.assert_called_with(TEST_URL)
        self.file_opener.assert_called_with(join(TEST_LOCAL_DIR, TEST_FILENAME), 'wb')
        self.writer.write.assert_called_with(TEST_SOME_FILE_CONTENT)