SyftBox Repoverse
├── apps
├── frameworks
│ ├── syftbox-flower
│ └── rds
├── sdks
│ └── python
├── syftbox
├── syftbox-ui
└── tests
The SyftBox Repoverse serves as a centralized hub for all things related to SyftBox. It aims to provide a cohesive environment where modular components can be tested and verified to work together effectively. This repository not only consolidates various elements of the SyftBox ecosystem but also facilitates integration testing to ensure seamless interoperability between components.
The Repoverse is a dynamic and evolving space, with some features being experimental. Contributions are encouraged, and pull requests are welcome to enhance the functionality and robustness of the SyftBox ecosystem.
This directory contains integration tests for SyftBox that verify end-to-end functionality including file synchronization between clients.
- Install dependencies:
just install-deps # Creates .venv and installs packages with uv
- Run all tests with automatic setup/teardown:
just test-full
just setup
- Set up test environmentjust start-all
- Start server and both test clientsjust test
- Run tests (requires services to be running)just test-full
- Run tests with automatic setup and cleanupjust stop-all
- Stop all servicesjust clean
- Stop services and clean up test datajust status
- Check status of running servicesjust logs-server
- View server logsjust logs-client1
- View client1 logsjust logs-client2
- View client2 logs
tests/test_file_sync.py
- Tests file synchronization between clientstests/conftest.py
- Pytest fixtures and helpers
- Tests mount client data to
./clients/
instead of~/.syftbox/clients
for isolation - Uses
docker run
commands directly instead of docker-compose for clients to avoid conflicts - Each client runs in its own container with unique names and ports
- The
./clients/
directory is gitignored for test isolation
Tests run automatically on:
- Push to main branch
- Pull requests to main branch
- Manual workflow dispatch
The GitHub Actions workflow is located at .github/workflows/integration-tests.yml
.