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