Skip to main content

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 workflow
  • test_jobs_property.py - Tests the original jobs property that scanned all datasites
  • test_new_jobs_functionality.py - Comprehensive test for indexable jobs with approval workflow
  • test_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 property
  • demo_complete_new_functionality.py - Complete demo of new indexable functionality
  • demo_corrected_workflow.py - Demo of corrected workflow (inbox → done)
  • test_complete_demo.py - Complete system demo with multiple users
  • test_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.jobs returns JobsList
  • jobs[0], jobs[1] indexing
  • for job in jobs iteration
  • 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

syft_job-0.1.5.tar.gz (128.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

syft_job-0.1.5-py3-none-any.whl (23.6 kB view details)

Uploaded Python 3

File details

Details for the file syft_job-0.1.5.tar.gz.

File metadata

  • Download URL: syft_job-0.1.5.tar.gz
  • Upload date:
  • Size: 128.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.7

File hashes

Hashes for syft_job-0.1.5.tar.gz
Algorithm Hash digest
SHA256 ecd182f3482168ac2189e0c17554810c5e8505e195624c2043b699da66f9debe
MD5 7fe359e436742fc22ff4fa18ea9486d8
BLAKE2b-256 06b0d6c963c0130e75b28cee32c0d694c4f176ecb1d7abe79aa44d9fe102b76f

See more details on using hashes here.

File details

Details for the file syft_job-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: syft_job-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 23.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.7

File hashes

Hashes for syft_job-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 4060e1594475ce1d10483d3944d0af18d87609c4cee68ed6cbccb50d950e6ea5
MD5 700012c889adbf683a621aa117e17940
BLAKE2b-256 65127ff080e500f01f057f05d332d0fa13d1c724cf4444fe7a93d3bf25fe85c9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page