def test_search_camera_all_correct_Internal_Error(self, mock_get):
     clientId = '0' * 96
     clientSecret = '0' * 71
     client = Client(clientId, clientSecret)
     client.token = 'CorrectToken'
     mock_response = mock.Mock()
     mock_response.status_code = 500
     mock_get.return_value = mock_response
     url = self.base_URL + 'cameras/search?country=USA'
     with self.assertRaises(InternalError):
         client.search_camera(country='USA')
     mock_get.assert_called_once_with(
         url, headers={'Authorization': 'Bearer CorrectToken'})
     self.assertEqual(0, mock_response.json.call_count)
 def test_search_camera_no_token(self, mock_get):
     clientId = '0' * 96
     clientSecret = '0' * 71
     client = Client(clientId, clientSecret)
     mock_response = mock.Mock()
     expected_dict = {"token": "correctToken"}
     mock_response.json.return_value = expected_dict
     mock_response.status_code = 200
     mock_get.return_value = mock_response
     url = self.base_URL + 'cameras/search?country=USA'
     with self.assertRaises(TypeError):
         client.search_camera(country='USA')
     mock_get.assert_called_with(
         url, headers={'Authorization': 'Bearer correctToken'})
     self.assertEqual(2, mock_response.json.call_count)
 def test_search_camera_all_correct_Format_Error(self, mock_get):
     clientId = '0' * 96
     clientSecret = '0' * 71
     client = Client(clientId, clientSecret)
     client.token = 'CorrectToken'
     mock_response = mock.Mock()
     expected_dict = {"message": "Format Error Messages"}
     mock_response.json.return_value = expected_dict
     mock_response.status_code = 422
     mock_get.return_value = mock_response
     url = self.base_URL + 'cameras/search?country=USA'
     with self.assertRaises(FormatError):
         client.search_camera(country='USA')
     mock_get.assert_called_once_with(
         url, headers={'Authorization': 'Bearer CorrectToken'})
     self.assertEqual(1, mock_response.json.call_count)
    def test_search_camera_all_correct_Expired_Token(self, mock_get):
        clientId = '0' * 96
        clientSecret = '0' * 71
        client = Client(clientId, clientSecret)
        client.token = 'ExpiredToken'
        # set result for first search camera
        mock_response = mock.Mock()
        mock_response.status_code = 401
        # set result for request_token()
        mock_response2 = mock.Mock()
        mock_response2.status_code = 200
        mock_response2.json.return_value = {'token': 'newToken'}
        # set result for second search camera
        mock_response3 = mock.Mock()
        mock_response3.json.return_value = []

        mock_get.side_effect = [mock_response, mock_response2, mock_response3]
        camera = client.search_camera(country='USA')
        self.assertEqual(3, mock_get.call_count)
        self.assertEqual([], camera)