# DSS Settings & Management Complete guide for DSS configuration, testing, and system management. ## Quick Start ```bash # Check system information python3 -m dss.settings info # Check dependencies python3 -m dss.settings check-deps # Run all tests python3 -m dss.settings test # Reset DSS to fresh state python3 -m dss.settings reset ``` ## Commands ### System Information ```bash # Show DSS configuration and paths python3 -m dss.settings info ``` **Output:** ``` 📊 DSS System Information: project_root: /path/to/dss-mvp1 dss_dir: /path/to/dss-mvp1/dss tests_dir: /path/to/dss-mvp1/tests cache_dir: /home/user/.dss/cache database_path: /home/user/.dss/dss.db has_anthropic_key: True/False has_figma_token: True/False use_mock_apis: True ``` ### Dependency Check ```bash # Verify all required dependencies are installed python3 -m dss.settings check-deps ``` **Checks:** - ✅ pydantic - ✅ fastapi - ✅ pytest - ✅ requests - ✅ style-dictionary (Node.js) ### Running Tests #### All Tests ```bash python3 -m dss.settings test ``` #### Unit Tests Only ```bash python3 -m dss.settings test-unit ``` #### Integration Tests Only ```bash python3 -m dss.settings test-integration ``` #### With Coverage Report ```bash python3 -m dss.settings test-coverage ``` #### Specific Test File ```bash python3 -m dss.settings test tests/unit/test_models.py ``` ### Reset DSS Reset DSS to fresh state, deleting all user data but keeping structure. ```bash python3 -m dss.settings reset ``` **⚠️ WARNING:** This will prompt for confirmation and delete: - User-created themes (keeps default themes) - Cache directory - Figma cache - Database files - Test database - `__pycache__` directories **Keeps:** - Directory structure - Default themes - Source code - Configuration files - Test fixtures **Confirmation Required:** ``` ⚠️ WARNING: This will delete all themes, projects, and cached data. The DSS structure will be preserved. Type 'RESET' to confirm: ``` Type `RESET` (exactly) to proceed. ## Python API Usage ### Using Settings in Code ```python from dss.settings import settings, manager # Access configuration print(settings.PROJECT_ROOT) print(settings.ANTHROPIC_API_KEY) # Run tests programmatically result = manager.run_tests("tests/unit/") # Get system info info = manager.get_system_info() # Check dependencies deps = manager.check_dependencies() ``` ### DSSSettings Configuration class using Pydantic Settings. **Attributes:** - `PROJECT_ROOT: Path` - Project root directory - `DSS_DIR: Path` - DSS source directory - `TESTS_DIR: Path` - Tests directory - `CACHE_DIR: Path` - Cache directory (~/.dss/cache) - `ANTHROPIC_API_KEY: Optional[str]` - Claude API key - `FIGMA_TOKEN: Optional[str]` - Figma API token - `FIGMA_FILE_KEY: Optional[str]` - Figma file key - `DATABASE_PATH: Path` - Main database path - `TEST_DATABASE_PATH: Path` - Test database path - `USE_MOCK_APIS: bool` - Use mock APIs in tests **Configuration:** - Reads from `.env` file - Case-sensitive environment variables - Ignores extra fields ### DSSManager Management utility class. **Methods:** #### `run_tests(test_path=None, verbose=True, coverage=False, markers=None)` Run pytest test suite. ```python # Run all tests manager.run_tests() # Run specific file manager.run_tests("tests/unit/test_models.py") # Run with markers manager.run_tests(markers="unit") # Run with coverage manager.run_tests(coverage=True) ``` #### `run_unit_tests()` Shortcut for running unit tests only. ```python manager.run_unit_tests() ``` #### `run_integration_tests()` Shortcut for running integration tests only. ```python manager.run_integration_tests() ``` #### `run_all_tests_with_coverage()` Run all tests with coverage report. ```python manager.run_all_tests_with_coverage() ``` #### `reset_dss(keep_structure=True, confirm=True)` Reset DSS to fresh state. ```python # With confirmation prompt results = manager.reset_dss() # Without confirmation (dangerous!) results = manager.reset_dss(confirm=False) ``` **Returns:** ```python { "status": "success", "deleted": ["file1.py", "cache/", ...], "kept": ["default_themes.py", "models/", ...], "errors": [] } ``` #### `get_system_info()` Get DSS system information. ```python info = manager.get_system_info() # { # "project_root": "/path/to/project", # "dss_dir": "/path/to/dss", # ... # } ``` #### `check_dependencies()` Check installed dependencies. ```python deps = manager.check_dependencies() # { # "pydantic": True, # "fastapi": True, # "pytest": True, # "requests": True, # "style-dictionary": True # } ``` ## Environment Variables Create a `.env` file in the project root: ```bash # API Keys ANTHROPIC_API_KEY=sk-ant-api03-your-key-here FIGMA_TOKEN=your-figma-token-here FIGMA_FILE_KEY=your-file-key-here # Database DATABASE_PATH=/home/user/.dss/dss.db # Testing USE_MOCK_APIS=true ``` See `.env.test` for test environment example. ## Test Fixtures Mock API keys are available in `tests/fixtures/api_keys.json`: ```python # In tests def test_my_feature(mock_anthropic_key, mock_figma_token): # Use mock keys automatically wrapper = FigmaWrapper(api_token=mock_figma_token, ...) ``` ## Troubleshooting ### Missing Dependencies ```bash # Check what's missing python3 -m dss.settings check-deps # Install Python dependencies pip install -r requirements.txt # Install Node dependencies npm install ``` ### API Keys Not Loaded 1. Create `.env` file in project root 2. Add your API keys 3. Verify with `python3 -m dss.settings info` ### Tests Failing ```bash # Run tests with verbose output python3 -m dss.settings test -v # Run specific failing test python3 -m dss.settings test tests/unit/test_models.py::TestTheme::test_specific ``` ### Reset Not Working Ensure you type `RESET` exactly (all caps) when prompted. Or use Python API without confirmation: ```python from dss.settings import manager results = manager.reset_dss(confirm=False) ``` ## Examples ### Daily Development Workflow ```bash # 1. Check system is ready python3 -m dss.settings check-deps # 2. Run tests before making changes python3 -m dss.settings test-unit # 3. Make your changes... # 4. Run tests again python3 -m dss.settings test # 5. If tests pass, commit! git add . git commit -m "Your changes" ``` ### Setting Up New Environment ```bash # 1. Install dependencies pip install -r requirements.txt npm install # 2. Create .env file cp .env.test .env # 3. Add your real API keys to .env # 4. Verify setup python3 -m dss.settings info python3 -m dss.settings check-deps # 5. Run tests to confirm python3 -m dss.settings test ``` ### Starting Fresh ```bash # Reset everything python3 -m dss.settings reset # Verify reset python3 -m dss.settings info # Run tests to ensure structure intact python3 -m dss.settings test ``` ## See Also - [README.md](README.md) - Project overview - [.env.test](.env.test) - Test environment template - [requirements.txt](requirements.txt) - Python dependencies - [package.json](package.json) - Node.js dependencies