Files
odoo-addons/addons/cetmix_tower_ovh/tests/test_ovh_integration.py

64 lines
2.2 KiB
Python

# Copyright 2024 Cetmix OÜ
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo.tests import common
class TestOvhIntegration(common.TransactionCase):
"""Test OVH integration with Cetmix Tower commands."""
def setUp(self):
super().setUp()
# Create a test command
self.command = self.env["cx.tower.command"].create(
{
"name": "Test OVH Command",
"action": "python_code",
}
)
self.eval_context = self.env[
"cx.tower.command"
]._get_python_command_eval_context()
def test_ovh_in_evaluation_context(self):
"""Test that ovh is added to the evaluation context."""
self.assertIn("ovh", self.eval_context)
ovh_obj = self.eval_context["ovh"]
self.assertTrue(hasattr(ovh_obj, "Client"))
def test_ovh_in_evaluation_context_with_server(self):
"""Test that ovh is added to the evaluation context when server is provided."""
test_server = self.env["cx.tower.server"].create(
{
"name": "Test OVH Server",
"reference": "test_ovh_server",
"ip_v4_address": "localhost",
"ssh_username": "admin",
"ssh_password": "password",
"ssh_auth_mode": "p",
"host_key": "test_key",
}
)
eval_context = self.env["cx.tower.command"]._get_python_command_eval_context(
server=test_server
)
self.assertIn("ovh", eval_context)
ovh_obj = eval_context["ovh"]
self.assertTrue(hasattr(ovh_obj, "Client"))
self.assertEqual(eval_context["server"], test_server)
def test_ovh_client_instantiation(self):
"""Test that ovh.Client can be instantiated from context."""
ovh_mod = self.eval_context["ovh"]
# Only test instantiation, do not require credentials
try:
client = ovh_mod.Client(
endpoint="ovh-eu",
application_key="a",
application_secret="b",
consumer_key="c",
)
self.assertIsNotNone(client)
except Exception as e:
self.fail(f"ovh.Client instantiation failed: {e}")