tests: switch from nose to pytest
This commit is contained in:
parent
2ad5da6e3b
commit
36cc1dc7ab
4 changed files with 96 additions and 43 deletions
56
tests/proxy/test_proxy_automation.py
Normal file
56
tests/proxy/test_proxy_automation.py
Normal file
|
@ -0,0 +1,56 @@
|
|||
import unittest
|
||||
from unittest.mock import MagicMock, patch
|
||||
from app.terraform.proxy import ProxyAutomation, update_smart_proxy_instance
|
||||
from app import app
|
||||
|
||||
|
||||
class TestUpdateSmartProxyInstance(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.group_id = 1
|
||||
self.provider = 'test_provider'
|
||||
self.region = 'test_region'
|
||||
self.instance_id = 'test_instance_id'
|
||||
app.config['TESTING'] = True
|
||||
self.app = app.test_client()
|
||||
|
||||
@patch('app.terraform.proxy.SmartProxy')
|
||||
@patch('app.terraform.proxy.db')
|
||||
def test_update_smart_proxy_instance_new(self, mock_db, mock_smart_proxy):
|
||||
# Configure the mocked SmartProxy query to return None
|
||||
mock_smart_proxy.query.filter.return_value.first.return_value = None
|
||||
|
||||
# Call the function
|
||||
update_smart_proxy_instance(self.group_id, self.provider, self.region, self.instance_id)
|
||||
|
||||
# Assert that a new SmartProxy instance was created and added to the session
|
||||
mock_smart_proxy.assert_called_once()
|
||||
mock_db.session.add.assert_called_once()
|
||||
|
||||
@patch('app.terraform.proxy.SmartProxy')
|
||||
@patch('app.terraform.proxy.db')
|
||||
def test_update_smart_proxy_instance_existing(self, mock_db, mock_smart_proxy):
|
||||
# Configure the mocked SmartProxy query to return an existing instance
|
||||
mock_instance = MagicMock()
|
||||
mock_smart_proxy.query.filter.return_value.first.return_value = mock_instance
|
||||
|
||||
# Call the function
|
||||
update_smart_proxy_instance(self.group_id, self.provider, self.region, self.instance_id)
|
||||
|
||||
# Assert that the existing SmartProxy instance was updated
|
||||
self.assertEqual(mock_instance.instance_id, self.instance_id)
|
||||
|
||||
|
||||
class TestProxyAutomation(unittest.TestCase):
|
||||
def setUp(self):
|
||||
app.config['TESTING'] = True
|
||||
self.app = app.test_client()
|
||||
|
||||
def test_proxy_automation_abstract_methods(self):
|
||||
# Test NotImplementedError for import_state
|
||||
with self.assertRaises(NotImplementedError):
|
||||
proxy_automation = ProxyAutomation()
|
||||
proxy_automation.import_state(None)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
Loading…
Add table
Add a link
Reference in a new issue