import unittest from unittest.mock import MagicMock, patch from EagleEyev3 import EagleEyev3 class TestEagleEyev3(unittest.TestCase): def setUp(self): # Create an instance of EagleEyev3 for testing self.eagle_eye = EagleEyev3() @patch('EagleEyev3.requests') def test_login_tokens_success(self, mock_requests): # Mock the requests.post method to return a successful response mock_response = MagicMock() mock_response.status_code = 200 mock_response.json.return_value = {'access_token': 'token', 'refresh_token': 'refresh_token'} mock_requests.post.return_value = mock_response result = self.eagle_eye.login_tokens(code='authorization_code', cascade=True) self.assertTrue(result['success']) self.assertEqual(result['response_http_status'], 200) self.assertEqual(result['data']['access_token'], 'token') self.assertEqual(result['data']['refresh_token'], 'refresh_token') @patch('EagleEyev3.requests') def test_login_tokens_failure(self, mock_requests): # Mock the requests.post method to return an unsuccessful response mock_response = MagicMock() mock_response.status_code = 400 mock_response.json.return_value = {} mock_requests.post.return_value = mock_response result = self.eagle_eye.login_tokens(code='authorization_code', cascade=True) self.assertFalse(result['success']) self.assertEqual(result['response_http_status'], 400) self.assertEqual(result['data'], {}) @patch('EagleEyev3.requests') def test_get_base_url_success(self, mock_requests): # Set access_token for testing self.eagle_eye.access_token = 'access_token' # Mock the requests.get method to return a successful response mock_response = MagicMock() mock_response.status_code = 200 mock_response.json.return_value = {'httpsBaseUrl': {'hostname': 'base_url'}} mock_requests.get.return_value = mock_response result = self.eagle_eye.get_base_url(cascade=True) self.assertTrue(result['success']) self.assertEqual(result['response_http_status'], 200) self.assertEqual(self.eagle_eye.user_base_url, 'base_url') self.assertIsNotNone(result['data']) @patch('EagleEyev3.requests') def test_get_base_url_failure(self, mock_requests): # Set access_token for testing self.eagle_eye.access_token = 'access_token' # Mock the requests.get method to return an unsuccessful response mock_response = MagicMock() mock_response.status_code = 400 mock_response.json.return_value = {} mock_requests.get.return_value = mock_response result = self.eagle_eye.get_base_url(cascade=True) self.assertFalse(result['success']) self.assertEqual(result['response_http_status'], 400) self.assertEqual(self.eagle_eye.user_base_url, None) self.assertEqual(result['data'], {}) @patch('EagleEyev3.requests') def test_get_current_user_success(self, mock_requests): # Set access_token and user_base_url for testing self.eagle_eye.access_token = 'access_token' self.eagle_eye.user_base_url = 'base_url' # Mock the requests.get method to return a successful response mock_response = MagicMock() mock_response.status_code = 200 mock_response.json.return_value = {'user_id': 'user123'} mock_requests.get.return_value = mock_response result = self.eagle_eye.get_current_user() self.assertTrue(result['success']) self.assertEqual(result['response_http_status'], 200) self.assertEqual(result['data']['user_id'], 'user123') @patch('EagleEyev3.requests') def test_get_current_user_failure(self, mock_requests): # Set access_token and user_base_url for testing self.eagle_eye.access_token = 'access_token' self.eagle_eye.user_base_url = 'base_url' # Mock the requests.get method to return an unsuccessful response mock_response = MagicMock() mock_response.status_code = 400 mock_response.json.return_value = {} mock_requests.get.return_value = mock_response result = self.eagle_eye.get_current_user() self.assertFalse(result['success']) self.assertEqual(result['response_http_status'], 400) self.assertEqual(result['data'], {}) # Write similar tests for the remaining methods if __name__ == '__main__': unittest.main()