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
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 snaplogic_common_robot-2026.2.26.1.tar.gz.
File metadata
- Download URL: snaplogic_common_robot-2026.2.26.1.tar.gz
- Upload date:
- Size: 239.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f8eb3223953e3419382c2a2d0000deda7f9f03681b71d383f2940891b62c27b3
|
|
| MD5 |
ebdd225ef41de14b8efcf191a3364998
|
|
| BLAKE2b-256 |
6cc4ef5b6fc08ff8df8e5124be9824274d76de235c5059df5108662847789772
|
File details
Details for the file snaplogic_common_robot-2026.2.26.1-py3-none-any.whl.
File metadata
- Download URL: snaplogic_common_robot-2026.2.26.1-py3-none-any.whl
- Upload date:
- Size: 242.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
176a11664cadeff433b8a953c637273ca921ef5cf0a63d3cce22806ebf2570e6
|
|
| MD5 |
09f7a23c0cb480fd94b95ff4b25b56bd
|
|
| BLAKE2b-256 |
a18fc7e8183bd19b672c576e4ba9c920848ee5f4f57d53e2fc3dfc646fd225a9
|