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-2025.7.1.1.tar.gz (296.7 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-2025.7.1.1-py3-none-any.whl (311.1 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for snaplogic_common_robot-2025.7.1.1.tar.gz
Algorithm Hash digest
SHA256 314d310898db35afd1ca26b4f207cc8efe4baccf6c7a94a674c5bb5a3686c90a
MD5 495be13472504527cb15eeccabb5a359
BLAKE2b-256 535d7f1aa099e7c3a2dff704f5f4de0ee35053a96467cced6cac0bb061eed411

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snaplogic_common_robot-2025.7.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 325474e68025d73ed2c186e5b1d9c70f656abcec3f41e309f4328ffb49721a2e
MD5 1d7378506756a5215937a813b904d8d0
BLAKE2b-256 2b4b722af929edc870af74f2cf75faaa72ddfb24c6d0f4d60aa636d18b4ccc7a

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