# 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
```bash
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
```robot
*** 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`:
```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
```robot
*** 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
```robot
*** 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:
```robot
# 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
```bash
# 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.
Raw data
{
"_id": null,
"home_page": null,
"name": "snaplogic-common-robot",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "robotframework, snaplogic, api, testing, automation, jms, activemq, artemis",
"author": null,
"author_email": "SnapLogic <support@snaplogic.com>",
"download_url": "https://files.pythonhosted.org/packages/88/25/00c764b47ff0f544fe45c3da0e390fb9fee7aeba408c2978d20bd28e8402/snaplogic_common_robot-2025.9.8.1.tar.gz",
"platform": null,
"description": "# SnapLogic Common Robot Framework Library\n\nA comprehensive Robot Framework library providing keywords for SnapLogic platform automation and testing.\n\n## \ud83d\ude80 Features\n\n- **SnapLogic APIs**: Low-level API keywords for direct platform interaction\n- **SnapLogic Keywords**: High-level business keywords for common operations \n- **Common Utilities**: Shared utilities for database connections and file operations\n- **Comprehensive Documentation**: After installation, access the comprehensive HTML documentation through index.html\n\n## \ud83d\udce6 Installation\n\n```bash\npip install snaplogic-common-robot\n```\n\n## \ud83d\udccb Usage \n\n**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.\n\n\n\n### Quick Start Example\n\n```robot\n*** Settings ***\nResource snaplogic_common_robot/snaplogic_apis_keywords/snaplogic_keywords.resource\nResource snaplogic_common_robot/snaplogic_apis_keywords/common_utilities.resource\n\n\n*** Test Cases ***\nComplete SnapLogic Environment Setup\n [Documentation] Sets up a complete SnapLogic testing environment\n [Tags] setup\n \n # Import and Execute Pipeline\n ${pipeline_info}= Import Pipeline\n ... ${CURDIR}/pipelines/data_processing.slp\n ... DataProcessingPipeline\n ... /${ORG_NAME}/${PROJECT_SPACE}/${PROJECT_NAME}\n \n\nSnaplex Management Example\n [Documentation] Demonstrates Snaplex creation and monitoring\n [Tags] snaplex\n\n # Wait for Snaplex to be ready\n Wait Until Plex Status Is Up /${ORG_NAME}/shared/${GROUNDPLEX_NAME}\n \n # Verify Snaplex is running\n Snaplex Status Should Be Running /${ORG_NAME}/shared/${GROUNDPLEX_NAME}\n \n # Download configuration file\n Download And Save Config File\n ... ${CURDIR}/config\n ... shared/${GROUNDPLEX_NAME}\n ... groundplex.slpropz\n\n\n\n### Environment Configuration\n\nCreate an `env_config.json` file with your environment-specific values:\n\n```json\n{\n \"ORG_NAME\": \"your-organization\",\n \"ORG_ADMIN_USER\": \"admin@company.com\",\n \"ORG_ADMIN_PASSWORD\": \"secure-password\",\n \"GROUNDPLEX_NAME\": \"test-groundplex\",\n \"GROUNDPLEX_ENV\": \"development\",\n \"RELEASE_BUILD_VERSION\": \"main-30028\",\n \"ACCOUNT_PAYLOAD_PATH\": \"./test_data/accounts\",\n \"ACCOUNT_LOCATION_PATH\": \"shared\",\n \"ORACLE_HOST\": \"oracle.example.com\",\n \"ORACLE_PORT\": \"1521\",\n \"ORACLE_SID\": \"ORCL\",\n \"ORACLE_USERNAME\": \"testuser\",\n \"ORACLE_PASSWORD\": \"testpass\"\n}\n```\n\n### Account Template Example\n\nCreate account templates in `test_data/accounts/oracle_account.json`:\n\n```json\n{\n \"account\": {\n \"class_fqid\": \"oracle_account\",\n \"property_map\": {\n \"info\": {\n \"label\": {\n \"value\": \"Oracle Test Account\"\n }\n },\n \"account\": {\n \"hostname\": {\n \"value\": \"{{ORACLE_HOST}}\"\n },\n \"port\": {\n \"value\": \"{{ORACLE_PORT}}\"\n },\n \"sid\": {\n \"value\": \"{{ORACLE_SID}}\"\n },\n \"username\": {\n \"value\": \"{{ORACLE_USERNAME}}\"\n },\n \"password\": {\n \"value\": \"{{ORACLE_PASSWORD}}\"\n }\n }\n }\n }\n}\n```\n\n### Advanced Usage Patterns\n\n#### Template-Based Pipeline Testing\n\n```robot\n*** Test Cases ***\nPipeline Template Testing\n [Documentation] Demonstrates template-based pipeline testing\n [Setup] Setup Test Environment\n \n ${unique_id}= Get Time epoch\n \n # Import pipeline with unique identifier\n Import Pipelines From Template\n ... ${unique_id}\n ... ${CURDIR}/pipelines\n ... ml_oracle\n ... ML_Oracle_Pipeline.slp\n \n # Create triggered task from template\n ${pipeline_params}= Create Dictionary batch_size=500 env=test\n ${notification}= Create Dictionary recipients=team@company.com\n \n Create Triggered Task From Template\n ... ${unique_id}\n ... /${ORG_NAME}/${PROJECT_SPACE}/${PROJECT_NAME}\n ... ml_oracle\n ... ML_Task\n ... ${pipeline_params}\n ... ${notification}\n \n # Run task with parameter overrides\n ${new_params}= Create Dictionary debug=true priority=high\n ${payload} ${job_id}= Run Triggered Task With Parameters From Template\n ... ${unique_id}\n ... /${ORG_NAME}/${PROJECT_SPACE}/${PROJECT_NAME}\n ... ml_oracle\n ... ML_Task\n ... ${new_params}\n \n Log Job ID: ${job_id} level=CONSOLE\n```\n\n#### Database Integration Testing\n\n```robot\n*** Test Cases ***\nDatabase Integration Workflow\n [Documentation] Tests database connectivity and operations\n \n # Connect to Oracle database\n Connect to Oracle Database\n \n # Create account for database connection\n Create Account From Template ${CURDIR}/accounts/oracle_account.json\n \n # Execute data pipeline\n ${pipeline_info}= Import Pipeline\n ... ${CURDIR}/pipelines/db_integration.slp\n ... DatabaseIntegrationPipeline\n ... /${ORG_NAME}/${PROJECT_SPACE}/${PROJECT_NAME}\n \n # Verify pipeline execution\n ${task_response}= Run Triggered Task\n ... /${ORG_NAME}/${PROJECT_SPACE}/${PROJECT_NAME}\n ... DatabaseIntegrationTask\n \n Should Be Equal As Strings ${task_response.status_code} 200\n```\n\n### Utility Keywords\n\nThe library also provides utility keywords for common operations:\n\n```robot\n# Pretty-print JSON for debugging\nLog Pretty JSON Pipeline Configuration ${pipeline_payload}\n\n# Wait with custom delays\nWait Before Suite Execution 3 # Wait 3 minutes\n\n# Directory management\nCreate Directory If Not Exists ${CURDIR}/output\n```\n\n## \ud83d\udd11 Available Keywords\n\n### SnapLogic APIs\n- Pipeline management and execution\n- Task monitoring and control\n- Data operations and validation\n\n### SnapLogic Keywords \n- High-level business operations\n- Pre-built test scenarios\n- Error handling and reporting\n\n### Common Utilities\n- **Connect to Oracle Database**: Sets up database connections using environment variables\n- File operations and data handling\n- Environment setup and configuration\n\n## \ud83d\udee0\ufe0f Requirements\n\n- Python 3.12+\n- Robot Framework\n- Database connectivity libraries\n- HTTP request libraries\n\n## \ud83c\udfd7\ufe0f Development\n\n```bash\n# Clone the repository\ngit clone https://github.com/SnapLogic/snaplogic-common-robot.git\n```\n\n## \ud83c\udfe2 About SnapLogic\n\nThis library is designed for testing and automation of SnapLogic integration platform operations.\n",
"bugtrack_url": null,
"license": null,
"summary": "Robot Framework library with keywords for SnapLogic API testing and automation",
"version": "2025.9.8.1",
"project_urls": {
"Documentation": "https://github.com/SnapLogic/snaplogic-common-robot#readme",
"Homepage": "https://github.com/SnapLogic/snaplogic-common-robot",
"Repository": "https://github.com/SnapLogic/snaplogic-common-robot"
},
"split_keywords": [
"robotframework",
" snaplogic",
" api",
" testing",
" automation",
" jms",
" activemq",
" artemis"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "c98a2ff09a36254c059ed683f98b74c1cd10db0ebed43aa603660b740fe47b6a",
"md5": "8fcc602754a9a6c7f37831d5d1328be8",
"sha256": "4342fa3a15d099c0252621d84df7f13eacc58caddcb14ec7c43143bbf7daa5c5"
},
"downloads": -1,
"filename": "snaplogic_common_robot-2025.9.8.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8fcc602754a9a6c7f37831d5d1328be8",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 311181,
"upload_time": "2025-09-08T16:49:56",
"upload_time_iso_8601": "2025-09-08T16:49:56.757240Z",
"url": "https://files.pythonhosted.org/packages/c9/8a/2ff09a36254c059ed683f98b74c1cd10db0ebed43aa603660b740fe47b6a/snaplogic_common_robot-2025.9.8.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "882500c764b47ff0f544fe45c3da0e390fb9fee7aeba408c2978d20bd28e8402",
"md5": "5fb99d046e85863f993fc3a68255e8ea",
"sha256": "4285d33a97461f05fcfa43b041b61c581b7d8f660b2dbe3e4df2bcfff710c033"
},
"downloads": -1,
"filename": "snaplogic_common_robot-2025.9.8.1.tar.gz",
"has_sig": false,
"md5_digest": "5fb99d046e85863f993fc3a68255e8ea",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 296758,
"upload_time": "2025-09-08T16:49:58",
"upload_time_iso_8601": "2025-09-08T16:49:58.028122Z",
"url": "https://files.pythonhosted.org/packages/88/25/00c764b47ff0f544fe45c3da0e390fb9fee7aeba408c2978d20bd28e8402/snaplogic_common_robot-2025.9.8.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-09-08 16:49:58",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "SnapLogic",
"github_project": "snaplogic-common-robot#readme",
"github_not_found": true,
"lcname": "snaplogic-common-robot"
}