Files
env-pro/app/tests/test_profile.py
2026-01-31 01:38:05 +00:00

87 lines
2.9 KiB
Python

"""Tests for profile management module."""
import pytest
from pathlib import Path
import tempfile
import os
class TestProfileManagement:
"""Test cases for profile management."""
def test_init_project(self, temp_dir):
"""Test project initialization."""
from env_pro.core.profile import init_project, get_profiles_dir
profiles_dir = init_project(temp_dir)
assert profiles_dir.exists()
assert (profiles_dir / "default").exists()
assert (profiles_dir / "default" / ".env").exists()
assert (profiles_dir / ".active").exists()
def test_list_profiles_empty(self, temp_dir):
"""Test listing profiles when none exist."""
from env_pro.core.profile import list_profiles
profiles = list_profiles(temp_dir)
assert profiles == []
def test_create_profile(self, temp_dir):
"""Test creating a new profile."""
from env_pro.core.profile import create_profile, list_profiles
create_profile("dev", temp_dir)
profiles = list_profiles(temp_dir)
assert "dev" in profiles
assert (temp_dir / ".env-profiles" / "dev" / ".env").exists()
def test_delete_profile(self, temp_dir):
"""Test deleting a profile."""
from env_pro.core.profile import create_profile, delete_profile, list_profiles
create_profile("test", temp_dir)
delete_profile("test", temp_dir)
profiles = list_profiles(temp_dir)
assert "test" not in profiles
def test_set_active_profile(self, temp_dir):
"""Test setting active profile."""
from env_pro.core.profile import create_profile, set_active_profile, get_active_profile
create_profile("staging", temp_dir)
set_active_profile("staging", temp_dir)
active = get_active_profile(temp_dir)
assert active == "staging"
def test_get_profile_vars(self, project_dir):
"""Test getting variables from a profile."""
from env_pro.core.profile import get_profile_vars
vars = get_profile_vars("default", project_dir)
assert "DATABASE_URL" in vars
assert vars["DATABASE_URL"] == "postgresql://localhost:5432/db"
assert vars["DEBUG"] == "true"
def test_set_profile_var(self, project_dir):
"""Test setting a variable in a profile."""
from env_pro.core.profile import set_profile_var, get_profile_vars
set_profile_var("default", "NEW_VAR", "new-value", project_dir)
vars = get_profile_vars("default", project_dir)
assert vars["NEW_VAR"] == "new-value"
def test_delete_profile_var(self, project_dir):
"""Test deleting a variable from a profile."""
from env_pro.core.profile import delete_profile_var, get_profile_vars
delete_profile_var("default", "DEBUG", project_dir)
vars = get_profile_vars("default", project_dir)
assert "DEBUG" not in vars