Add test files
This commit is contained in:
86
app/tests/test_profile.py
Normal file
86
app/tests/test_profile.py
Normal file
@@ -0,0 +1,86 @@
|
|||||||
|
"""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
|
||||||
Reference in New Issue
Block a user