EE-status-v3/tests.py

116 lines
4.5 KiB
Python

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()