Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .claude/settings.local.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@
"allow": [
"WebFetch(domain:code.claude.com)",
"Bash(npx @anthropic-ai/mcp-builder:*)",
"Bash(npx @modelcontextprotocol/inspector:*)"
"Bash(npx @modelcontextprotocol/inspector:*)",
"Bash(python3:*)",
"Bash(git add:*)"
],
"deny": [],
"ask": []
Expand Down
45 changes: 38 additions & 7 deletions .github/workflows/docker-build.yml
Original file line number Diff line number Diff line change
@@ -1,21 +1,52 @@
name: Docker Build and Test
name: Test and Build

on:
push:
branches: [ main ]
branches: [ main, dev ]
pull_request:
branches: [ main ]
branches: [ main, dev ]

jobs:
test:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3

- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.11'

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt

- name: Run tests with coverage
run: |
pytest tests/ -v --cov=learning_server --cov-report=term --cov-report=xml

- name: Upload coverage reports
uses: codecov/codecov-action@v3
with:
file: ./coverage.xml
fail_ci_if_error: false

build:
runs-on: ubuntu-latest

needs: test

steps:
- uses: actions/checkout@v3

- name: Build Docker image
run: docker build -t obsidian-learning-extension:test .

- name: Test Docker image
run: |
docker run --rm obsidian-learning-extension:test python -c "import learning_server; print('Server imports successfully')"
docker run --rm obsidian-learning-extension:test python -c "import learning_server; print('Server imports successfully')"

- name: Test Docker image starts
run: |
timeout 10s docker run --rm obsidian-learning-extension:test python -c "print('Docker container works')" || true
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -51,4 +51,7 @@ test_mcp_tools.py
# Testing
.pytest_cache/
.coverage
htmlcov/
coverage.xml
htmlcov/
*.pyc
__pycache__/
32 changes: 25 additions & 7 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,37 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Added
- Comprehensive testing suite with 100% tool coverage
- Data directory documentation with structure examples
- Configuration examples for Claude Desktop setup
- Project analysis document with roadmap and recommendations
- Examples directory with setup guides
## [1.0.0] - 2025-11-13

### Added - Phase 1: Stabilization
- **Comprehensive test suite** with 43 tests achieving 85% code coverage
- 11 tests for challenge management
- 9 tests for progress tracking
- 11 tests for spaced repetition reviews
- 12 tests for AI analysis features
- **CI/CD Integration**
- Automated testing on GitHub Actions
- Coverage reporting with codecov
- Docker build verification after tests pass
- **Documentation**
- CONTRIBUTING.md with development guidelines
- Data directory documentation with structure examples
- Configuration examples for Claude Desktop setup
- Project analysis document with roadmap (ANALYSIS.md)
- Examples directory with setup guides

### Changed
- Updated GitHub Actions workflow to include testing phase
- Updated .gitignore to be more specific about excluded files
- Improved data privacy by excluding only JSON files in data directory
- Enhanced CI/CD to run tests before Docker builds

### Fixed
- Test isolation using temporary directories
- Proper fixture management with pytest

### Removed
- Testing artifacts (TEST_RESULTS.md, test_mcp_tools.py) from git tracking
- Manual testing artifacts from git tracking

## [1.0.0] - 2025-11-13

Expand Down
Loading