Skip to main content

Robot Framework library with keywords for SnapLogic API testing and automation

Project description

SnapLogic Common Robot Framework Library

A comprehensive Robot Framework library providing keywords for SnapLogic platform automation and testing.

🚀 Features

  • SnapLogic APIs: Low-level API keywords for direct platform interaction
  • SnapLogic Keywords: High-level business keywords for common operations
  • Common Utilities: Shared utilities for database connections and file operations
  • Comprehensive Documentation: After installation, access the comprehensive HTML documentation through index.html

📦 Installation

pip install snaplogic-common-robot

📋 Usage

Important: This is a Robot Framework resource library containing .resource files with Robot Framework keywords, not a Python library. It cannot be imported using Python import statements. You must use Robot Framework's Resource statement to access the keywords provided by this framework.

Quick Start Example

*** Settings ***
Resource          snaplogic_common_robot/snaplogic_apis_keywords/snaplogic_keywords.resource
Resource          snaplogic_common_robot/snaplogic_apis_keywords/common_utilities.resource


*** Test Cases ***
Complete SnapLogic Environment Setup
    [Documentation]    Sets up a complete SnapLogic testing environment
    [Tags]             setup
    
    # Import and Execute Pipeline
    ${pipeline_info}=    Import Pipeline
    ...    ${CURDIR}/pipelines/data_processing.slp
    ...    DataProcessingPipeline
    ...    /${ORG_NAME}/${PROJECT_SPACE}/${PROJECT_NAME}
    

Snaplex Management Example
    [Documentation]    Demonstrates Snaplex creation and monitoring
    [Tags]             snaplex

    # Wait for Snaplex to be ready
    Wait Until Plex Status Is Up    /${ORG_NAME}/shared/${GROUNDPLEX_NAME}
    
    # Verify Snaplex is running
    Snaplex Status Should Be Running    /${ORG_NAME}/shared/${GROUNDPLEX_NAME}
    
    # Download configuration file
    Download And Save Config File
    ...    ${CURDIR}/config
    ...    shared/${GROUNDPLEX_NAME}
    ...    groundplex.slpropz



### Environment Configuration

Create an `env_config.json` file with your environment-specific values:

```json
{
  "ORG_NAME": "your-organization",
  "ORG_ADMIN_USER": "admin@company.com",
  "ORG_ADMIN_PASSWORD": "secure-password",
  "GROUNDPLEX_NAME": "test-groundplex",
  "GROUNDPLEX_ENV": "development",
  "RELEASE_BUILD_VERSION": "main-30028",
  "ACCOUNT_PAYLOAD_PATH": "./test_data/accounts",
  "ACCOUNT_LOCATION_PATH": "shared",
  "ORACLE_HOST": "oracle.example.com",
  "ORACLE_PORT": "1521",
  "ORACLE_SID": "ORCL",
  "ORACLE_USERNAME": "testuser",
  "ORACLE_PASSWORD": "testpass"
}

Account Template Example

Create account templates in test_data/accounts/oracle_account.json:

{
  "account": {
    "class_fqid": "oracle_account",
    "property_map": {
      "info": {
        "label": {
          "value": "Oracle Test Account"
        }
      },
      "account": {
        "hostname": {
          "value": "{{ORACLE_HOST}}"
        },
        "port": {
          "value": "{{ORACLE_PORT}}"
        },
        "sid": {
          "value": "{{ORACLE_SID}}"
        },
        "username": {
          "value": "{{ORACLE_USERNAME}}"
        },
        "password": {
          "value": "{{ORACLE_PASSWORD}}"
        }
      }
    }
  }
}

Advanced Usage Patterns

Template-Based Pipeline Testing

*** Test Cases ***
Pipeline Template Testing
    [Documentation]    Demonstrates template-based pipeline testing
    [Setup]    Setup Test Environment
    
    ${unique_id}=    Get Time    epoch
    
    # Import pipeline with unique identifier
    Import Pipelines From Template
    ...    ${unique_id}
    ...    ${CURDIR}/pipelines
    ...    ml_oracle
    ...    ML_Oracle_Pipeline.slp
    
    # Create triggered task from template
    ${pipeline_params}=    Create Dictionary    batch_size=500    env=test
    ${notification}=    Create Dictionary    recipients=team@company.com
    
    Create Triggered Task From Template
    ...    ${unique_id}
    ...    /${ORG_NAME}/${PROJECT_SPACE}/${PROJECT_NAME}
    ...    ml_oracle
    ...    ML_Task
    ...    ${pipeline_params}
    ...    ${notification}
    
    # Run task with parameter overrides
    ${new_params}=    Create Dictionary    debug=true    priority=high
    ${payload}    ${job_id}=    Run Triggered Task With Parameters From Template
    ...    ${unique_id}
    ...    /${ORG_NAME}/${PROJECT_SPACE}/${PROJECT_NAME}
    ...    ml_oracle
    ...    ML_Task
    ...    ${new_params}
    
    Log    Job ID: ${job_id}    level=CONSOLE

Database Integration Testing

*** Test Cases ***
Database Integration Workflow
    [Documentation]    Tests database connectivity and operations
    
    # Connect to Oracle database
    Connect to Oracle Database
    
    # Create account for database connection
    Create Account From Template    ${CURDIR}/accounts/oracle_account.json
    
    # Execute data pipeline
    ${pipeline_info}=    Import Pipeline
    ...    ${CURDIR}/pipelines/db_integration.slp
    ...    DatabaseIntegrationPipeline
    ...    /${ORG_NAME}/${PROJECT_SPACE}/${PROJECT_NAME}
    
    # Verify pipeline execution
    ${task_response}=    Run Triggered Task
    ...    /${ORG_NAME}/${PROJECT_SPACE}/${PROJECT_NAME}
    ...    DatabaseIntegrationTask
    
    Should Be Equal As Strings    ${task_response.status_code}    200

Utility Keywords

The library also provides utility keywords for common operations:

# Pretty-print JSON for debugging
Log Pretty JSON    Pipeline Configuration    ${pipeline_payload}

# Wait with custom delays
Wait Before Suite Execution    3    # Wait 3 minutes

# Directory management
Create Directory If Not Exists    ${CURDIR}/output

🔑 Available Keywords

SnapLogic APIs

  • Pipeline management and execution
  • Task monitoring and control
  • Data operations and validation

SnapLogic Keywords

  • High-level business operations
  • Pre-built test scenarios
  • Error handling and reporting

Common Utilities

  • Connect to Oracle Database: Sets up database connections using environment variables
  • File operations and data handling
  • Environment setup and configuration

🛠️ Requirements

  • Python 3.12+
  • Robot Framework
  • Database connectivity libraries
  • HTTP request libraries

🏗️ Development

# Clone the repository
git clone https://github.com/SnapLogic/snaplogic-common-robot.git

🏢 About SnapLogic

This library is designed for testing and automation of SnapLogic integration platform operations.

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

snaplogic_common_robot-2026.3.5.1.tar.gz (243.6 kB view details)

Uploaded Source

Built Distribution

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

snaplogic_common_robot-2026.3.5.1-py3-none-any.whl (247.7 kB view details)

Uploaded Python 3

File details

Details for the file snaplogic_common_robot-2026.3.5.1.tar.gz.

File metadata

File hashes

Hashes for snaplogic_common_robot-2026.3.5.1.tar.gz
Algorithm Hash digest
SHA256 259924fd08ddc146604886db31a8148ccfea62617cadb711878b331af871aba5
MD5 8318f63efed805adc34bad0473e469b4
BLAKE2b-256 3bc2cfa701eb896755a0b24ad32b4334b708f53ad69c84479cfdf861053bc632

See more details on using hashes here.

File details

Details for the file snaplogic_common_robot-2026.3.5.1-py3-none-any.whl.

File metadata

File hashes

Hashes for snaplogic_common_robot-2026.3.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7c2283f36fe9fa87e5e82d1e0cb0aafd7c0af033d24722ee237ad374b02c83c0
MD5 05603b31eac365d98bf14343eda82c45
BLAKE2b-256 b5e6a2926eef070b181540926f3cec032cc2c34fed4a0bfe1ee2eaa81586d850

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