add tests

This commit is contained in:
Karsten Gorskowski 2023-11-26 19:12:47 +01:00
parent aad4500107
commit 437caa437e
3 changed files with 61 additions and 1 deletions

View File

@ -11,7 +11,7 @@ def execute(args):
tenant_name = args.tenant_name
target_directory = args.target
tenant_directory = os.path.join(target_directory, "tenants", tenant_name)
tenant_directory = os.path.join(target_directory, tenant_name)
# Check if the tenant directory already exists
if os.path.exists(tenant_directory):
@ -29,4 +29,18 @@ def execute(args):
os.makedirs(kubernetes_directory)
os.makedirs(certificates_directory)
# Create symbolic links for *.tf files
source_tf_dir = os.path.join(target_directory, "terraform")
target_tf_dir = os.path.join(tenant_directory, "terraform")
for filename in os.listdir(source_tf_dir):
if filename.endswith(".tf"):
source_path = os.path.join(source_tf_dir, filename)
target_path = os.path.join(target_tf_dir, filename)
# Ensure the source path is correct before creating the symbolic link
if os.path.exists(source_path):
relative_path = os.path.relpath(source_path, target_tf_dir)
os.symlink(relative_path, target_path)
else:
print(f"Warning: Source file '{filename}' not found in '{source_tf_dir}'.")
print(f"Tenant '{tenant_name}' initialized in '{tenant_directory}' with GitSync password provided.")

0
tests/__init__.py Normal file
View File

46
tests/test_init.py Normal file
View File

@ -0,0 +1,46 @@
# tests/test_init.py
import os
import unittest
from unittest.mock import patch
from argparse import Namespace # Import Namespace for creating args object
from tenant.commands import init
class TestInitCommand(unittest.TestCase):
def setUp(self):
# Set up any necessary configurations or resources
pass
def tearDown(self):
# Clean up after the test
pass
@patch("tenant.commands.init.get_secure_password", return_value="mocked_password")
def test_init_command(self, mock_input):
tenant_name = "test-tenant"
target_directory = "/tmp/test"
# Ensure the tenant directory doesn't exist before running the test
tenant_directory = os.path.join(target_directory, "tenants", tenant_name)
if os.path.exists(tenant_directory):
os.rmdir(tenant_directory)
# Create an args object
args = Namespace(command="init", tenant_name=tenant_name, target=target_directory)
# Call the init command with the args object
init.execute(args)
# Verify that the tenant directory has been created
self.assertTrue(os.path.exists(tenant_directory))
self.assertTrue(os.path.exists(os.path.join(tenant_directory, "terraform")))
self.assertTrue(os.path.exists(os.path.join(tenant_directory, "kubernetes")))
self.assertTrue(os.path.exists(os.path.join(tenant_directory, "certificates")))
# Clean up: Remove the created tenant directory
os.rmdir(os.path.join(tenant_directory, "terraform"))
os.rmdir(os.path.join(tenant_directory, "kubernetes"))
os.rmdir(os.path.join(tenant_directory, "certificates"))
os.rmdir(tenant_directory)
if __name__ == "__main__":
unittest.main()