A generic job submission system for data science workflows with syft:// URL support
Project description
SyftJob Testing Scripts
This folder contains all testing and demonstration scripts for the SyftJob system.
Test Scripts
Core Functionality Tests
test_syftbox_workflow.py- Original test for basic job submission workflowtest_jobs_property.py- Tests the original jobs property that scanned all datasitestest_new_jobs_functionality.py- Comprehensive test for indexable jobs with approval workflowtest_corrected_functionality.py- Tests corrected workflow (inbox → done)test_approval_verification.py- Verifies approved jobs visibility in jobs list
Debugging Scripts
debug_jobs.py- Debug script for troubleshooting jobs scanning issues
Demo Scripts
demo_jobs_property.py- Interactive demo of the jobs propertydemo_complete_new_functionality.py- Complete demo of new indexable functionalitydemo_corrected_workflow.py- Demo of corrected workflow (inbox → done)test_complete_demo.py- Complete system demo with multiple userstest_runner_demo.py- Demo of job runner functionality
Quick Test Commands
Run any test from the project root:
# Test basic workflow
uv run python testing/test_syftbox_workflow.py
# Test corrected functionality (inbox → done)
uv run python testing/test_corrected_functionality.py
# Run complete demo
uv run python testing/demo_corrected_workflow.py
# Test job runner
uv run python testing/test_runner_demo.py
Test Categories
1. Job Submission Tests
- Basic job submission to user datasites
- Directory structure creation
- Job file generation (run.sh, config.yaml)
2. Jobs Property Tests
- Indexable jobs access (
jobs[0]) - Jobs list display and formatting
- Current user datasite scanning only
3. Job Approval Tests
accept_by_depositing_result()functionality- Job status transitions (inbox → done)
- Result file deposition in outputs directory
- Error handling for invalid operations
4. Job Runner Tests
- Inbox monitoring functionality
- New job detection and display
- Directory structure creation
5. Integration Tests
- Complete workflow from submission to completion
- Multiple jobs handling
- Cross-user job management
Key Features Tested
✅ Job Submission API
submit_bash_job(user, job_name, script)- Automatic directory structure creation
- Proper file permissions (run.sh executable)
✅ Indexable Jobs Property
job_client.jobsreturnsJobsListjobs[0],jobs[1]indexingfor job in jobsiteration- Nice table display with status emojis
✅ Job Completion Workflow
jobs[0].accept_by_depositing_result(file_path)- Jobs move from 📥 inbox → 🎉 done
- Result files stored in
done/JOB_NAME/outputs/ - Proper error handling for invalid states
✅ Job Runner
- Continuous inbox monitoring
- New job detection and display
- Directory structure management
Directory Structure Tested
SyftBox/datasites/<user_email>/app_data/job/
├── inbox/ # New job submissions
├── approved/ # (Future: manual approval step)
└── done/ # Completed with results
└── <JOB_NAME>/
├── run.sh
├── config.yaml
└── outputs/
└── <result_files>
Configuration Used in Tests
All tests use temporary directories with this config structure:
{
"data_dir": "/tmp/test_env/SyftBox",
"email": "admin@example.com",
"server_url": "https://syftbox.net",
"refresh_token": "test_token"
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file syft_job-0.1.1.tar.gz.
File metadata
- Download URL: syft_job-0.1.1.tar.gz
- Upload date:
- Size: 81.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
57ab66b37cd90c9a9a1adcc55ddb96f49b980fbe79a3b7f52ae0baf7440bd7c1
|
|
| MD5 |
227ba31ff6f6e676ba4441e8d5743867
|
|
| BLAKE2b-256 |
baff262905a64b1b770369d2f546fdd722821a96a0379217f3031263bda6040d
|
File details
Details for the file syft_job-0.1.1-py3-none-any.whl.
File metadata
- Download URL: syft_job-0.1.1-py3-none-any.whl
- Upload date:
- Size: 19.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f6eb5d3e03fe083d875e30c0e24b973c774249fa2ae0495d975cfd7ebcec7be6
|
|
| MD5 |
96c8feac96ebf0655b522e65ee783b17
|
|
| BLAKE2b-256 |
2c76b2ba5e4931aeebed85f02c818f79323852af5cd31131389135cd584ad676
|