"""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