snaplogic-common-robot


Namesnaplogic-common-robot JSON
Version 2025.9.8.1 PyPI version JSON
download
home_pageNone
SummaryRobot Framework library with keywords for SnapLogic API testing and automation
upload_time2025-09-08 16:49:58
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseNone
keywords robotframework snaplogic api testing automation jms activemq artemis
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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"
}
        
Elapsed time: 0.47741s