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.19.tar.gz (140.3 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.19-py3-none-any.whl (25.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for syft_job-0.1.19.tar.gz
Algorithm Hash digest
SHA256 e387fa9ec47c116d50984e5f4f6390da5b8184d84c8036adf791f764f9e1532e
MD5 324cddff9609bf00c226eaed96acc6f2
BLAKE2b-256 cc359bd57ee4b6bd7077c13622cfe4d6726424992a4738699c9ab40132790ed9

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for syft_job-0.1.19-py3-none-any.whl
Algorithm Hash digest
SHA256 bf2b779d9388ffcbf86564b683570ff528dd7cd474b4d5ebdf97a581f4c5446d
MD5 b91ccd68afe9f50255e43eae80c41efd
BLAKE2b-256 2afb81933f6c3daa1ae7f18710dcf8c4411bfc64b404e37f097d993741cf0cbb

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