sdk-pytest-checkmate


Namesdk-pytest-checkmate JSON
Version 0.4.0a3 PyPI version JSON
download
home_pageNone
SummaryAdvanced pytest-based testing framework for QA engineers and test automation specialists.
upload_time2025-08-28 23:39:38
maintainerNone
docs_urlNone
authorNone
requires_python<3.14,>=3.10
licenseMIT License Copyright (c) 2025 o73k51i Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords api-testing async-testing automation-framework environment-management epic-story html-reports http-client json-schema pytest qa quality-assurance soft-assertions test-automation test-framework test-organization test-reporting test-steps test-validation testing
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # sdk-pytest-checkmate

[![PyPI](https://img.shields.io/pypi/v/sdk-pytest-checkmate)](https://pypi.org/project/sdk-pytest-checkmate/)
[![Python](https://img.shields.io/pypi/pyversions/sdk-pytest-checkmate.svg)](https://www.python.org/)
[![License](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

**A powerful SDK for testing specialists** - advanced pytest-based testing
framework with structured test steps, soft assertions, automatic HTTP logging,
and interactive HTML reports.

## 🎯 Who Is This For?

- **🔧 QA Engineers** - Software quality assurance specialists
- **🤖 Test Automation Engineers** - Test automation specialists  
- **👨‍💻 Developers** - Writing unit and integration tests
- **📋 Test Leads** - Team leaders requiring detailed reporting

## 🌟 Key Features

- 📝 **Structured test steps** - Organize tests into logical, timed blocks
- 🔍 **Soft assertions** - Collect all errors without stopping test execution
- 🌐 **Automatic HTTP reporting** - Track all API requests and responses seamlessly
- 📊 **Interactive HTML reports** - Rich reports with filtering and detailed analysis
- 🔄 **Full async support** - Works with both synchronous and asynchronous tests
- 🛡️ **JSON schema validation** - Validate API responses with soft assertions
- 📋 **Epic/Story organization** - Group tests hierarchically for better management
- 🌍 **Environment management** - Automatic .env file loading and configuration

## 🚀 Quick Start

Installation:

```bash
pip install sdk-pytest-checkmate
```

Create a test file:

```python
import pytest
from sdk_pytest_checkmate import step, soft_assert, HttpClient, add_data_report

@pytest.mark.epic("User Management")
@pytest.mark.story("Authentication")
@pytest.mark.title("User Login Flow")
def test_user_login():
    """Complete user login test with SDK pytest checkmate"""
    client = HttpClient(base_url="https://api.example.com")
    
    with step("Prepare login credentials"):
        credentials = {"username": "testuser", "password": "secure123"}
        add_data_report(credentials, "Login Data")
    
    with step("Attempt user login"):
        response = client.post("/auth/login", json=credentials)
        soft_assert(response.status_code == 200, "Login should be successful")
        soft_assert("token" in response.json(), "Response should contain access token")
    
    with step("Verify user session"):
        profile_response = client.get(
            "/user/profile", 
            headers={"Authorization": f"Bearer {response.json()['token']}"}
        )
        soft_assert(profile_response.status_code == 200, "Profile should be accessible")
        add_data_report(profile_response.json(), "User Profile")
```

Generate your first report:

```bash
pytest --report-html=report.html
```

## 📖 SDK API Functions

- `step(name: str)` - Context manager for creating steps
- `soft_assert(condition, message, details)` - Soft assertion
- `add_data_report(data, label)` - Add data to report
- `HttpClient(base_url, **kwargs)` - HTTP client
- `AsyncHttpClient(base_url, **kwargs)` - Asynchronous HTTP client
- `soft_validate_json(data, schema, schema_path, strict)` - JSON data validation


## 📖 Command Line Options

- `--report-html[=PATH]` - Generate HTML report
- `--report-title=TITLE` - Custom report title  
- `--report-json=PATH` - Export JSON results
- `--env-file=PATH` - Load environment variables

## 📖 Complete Documentation

For comprehensive guides and advanced usage:

- **[📦 Installation Guide](./docs/installation.md)** - Setup and requirements
- **[🎯 Features Overview](./docs/features.md)** - Complete API reference
- **[📊 Reports Guide](./docs/reports.md)** - HTML report features
- **[⚙️ Configuration](./docs/configuration.md)** - Settings and options
- **[❓ FAQ](./docs/faq.md)** - Common questions and troubleshooting

## 🤝 Contributing & Support

- 📖  **[Report Issues](https://github.com/o73k51i/sdk-pytest-checkmate/issues)** - Bug reports and feature requests
- 📖 **[Discussions](https://github.com/o73k51i/sdk-pytest-checkmate/discussions)** - Questions and community support
- 📖 **[Documentation](./docs/main.md)** - Complete documentation index

## 📄 License

MIT License - see [LICENSE](LICENSE) file for details.

---

**Built for testing specialists who demand quality, clarity, and comprehensive reporting.** 🚀

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "sdk-pytest-checkmate",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<3.14,>=3.10",
    "maintainer_email": null,
    "keywords": "api-testing, async-testing, automation-framework, environment-management, epic-story, html-reports, http-client, json-schema, pytest, qa, quality-assurance, soft-assertions, test-automation, test-framework, test-organization, test-reporting, test-steps, test-validation, testing",
    "author": null,
    "author_email": "o73k51i <o73k51i@proton.me>",
    "download_url": "https://files.pythonhosted.org/packages/f1/a3/5be26ff8c002bf81470ab79d39eca596f4b8b4eb6060a3994c8f544f790d/sdk_pytest_checkmate-0.4.0a3.tar.gz",
    "platform": null,
    "description": "# sdk-pytest-checkmate\n\n[![PyPI](https://img.shields.io/pypi/v/sdk-pytest-checkmate)](https://pypi.org/project/sdk-pytest-checkmate/)\n[![Python](https://img.shields.io/pypi/pyversions/sdk-pytest-checkmate.svg)](https://www.python.org/)\n[![License](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n**A powerful SDK for testing specialists** - advanced pytest-based testing\nframework with structured test steps, soft assertions, automatic HTTP logging,\nand interactive HTML reports.\n\n## \ud83c\udfaf Who Is This For?\n\n- **\ud83d\udd27 QA Engineers** - Software quality assurance specialists\n- **\ud83e\udd16 Test Automation Engineers** - Test automation specialists  \n- **\ud83d\udc68\u200d\ud83d\udcbb Developers** - Writing unit and integration tests\n- **\ud83d\udccb Test Leads** - Team leaders requiring detailed reporting\n\n## \ud83c\udf1f Key Features\n\n- \ud83d\udcdd **Structured test steps** - Organize tests into logical, timed blocks\n- \ud83d\udd0d **Soft assertions** - Collect all errors without stopping test execution\n- \ud83c\udf10 **Automatic HTTP reporting** - Track all API requests and responses seamlessly\n- \ud83d\udcca **Interactive HTML reports** - Rich reports with filtering and detailed analysis\n- \ud83d\udd04 **Full async support** - Works with both synchronous and asynchronous tests\n- \ud83d\udee1\ufe0f **JSON schema validation** - Validate API responses with soft assertions\n- \ud83d\udccb **Epic/Story organization** - Group tests hierarchically for better management\n- \ud83c\udf0d **Environment management** - Automatic .env file loading and configuration\n\n## \ud83d\ude80 Quick Start\n\nInstallation:\n\n```bash\npip install sdk-pytest-checkmate\n```\n\nCreate a test file:\n\n```python\nimport pytest\nfrom sdk_pytest_checkmate import step, soft_assert, HttpClient, add_data_report\n\n@pytest.mark.epic(\"User Management\")\n@pytest.mark.story(\"Authentication\")\n@pytest.mark.title(\"User Login Flow\")\ndef test_user_login():\n    \"\"\"Complete user login test with SDK pytest checkmate\"\"\"\n    client = HttpClient(base_url=\"https://api.example.com\")\n    \n    with step(\"Prepare login credentials\"):\n        credentials = {\"username\": \"testuser\", \"password\": \"secure123\"}\n        add_data_report(credentials, \"Login Data\")\n    \n    with step(\"Attempt user login\"):\n        response = client.post(\"/auth/login\", json=credentials)\n        soft_assert(response.status_code == 200, \"Login should be successful\")\n        soft_assert(\"token\" in response.json(), \"Response should contain access token\")\n    \n    with step(\"Verify user session\"):\n        profile_response = client.get(\n            \"/user/profile\", \n            headers={\"Authorization\": f\"Bearer {response.json()['token']}\"}\n        )\n        soft_assert(profile_response.status_code == 200, \"Profile should be accessible\")\n        add_data_report(profile_response.json(), \"User Profile\")\n```\n\nGenerate your first report:\n\n```bash\npytest --report-html=report.html\n```\n\n## \ud83d\udcd6 SDK API Functions\n\n- `step(name: str)` - Context manager for creating steps\n- `soft_assert(condition, message, details)` - Soft assertion\n- `add_data_report(data, label)` - Add data to report\n- `HttpClient(base_url, **kwargs)` - HTTP client\n- `AsyncHttpClient(base_url, **kwargs)` - Asynchronous HTTP client\n- `soft_validate_json(data, schema, schema_path, strict)` - JSON data validation\n\n\n## \ud83d\udcd6 Command Line Options\n\n- `--report-html[=PATH]` - Generate HTML report\n- `--report-title=TITLE` - Custom report title  \n- `--report-json=PATH` - Export JSON results\n- `--env-file=PATH` - Load environment variables\n\n## \ud83d\udcd6 Complete Documentation\n\nFor comprehensive guides and advanced usage:\n\n- **[\ud83d\udce6 Installation Guide](./docs/installation.md)** - Setup and requirements\n- **[\ud83c\udfaf Features Overview](./docs/features.md)** - Complete API reference\n- **[\ud83d\udcca Reports Guide](./docs/reports.md)** - HTML report features\n- **[\u2699\ufe0f Configuration](./docs/configuration.md)** - Settings and options\n- **[\u2753 FAQ](./docs/faq.md)** - Common questions and troubleshooting\n\n## \ud83e\udd1d Contributing & Support\n\n- \ud83d\udcd6  **[Report Issues](https://github.com/o73k51i/sdk-pytest-checkmate/issues)** - Bug reports and feature requests\n- \ud83d\udcd6 **[Discussions](https://github.com/o73k51i/sdk-pytest-checkmate/discussions)** - Questions and community support\n- \ud83d\udcd6 **[Documentation](./docs/main.md)** - Complete documentation index\n\n## \ud83d\udcc4 License\n\nMIT License - see [LICENSE](LICENSE) file for details.\n\n---\n\n**Built for testing specialists who demand quality, clarity, and comprehensive reporting.** \ud83d\ude80\n",
    "bugtrack_url": null,
    "license": "MIT License  Copyright (c) 2025 o73k51i  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",
    "summary": "Advanced pytest-based testing framework for QA engineers and test automation specialists.",
    "version": "0.4.0a3",
    "project_urls": {
        "Bug Tracker": "https://github.com/o73k51i/sdk-pytest-checkmate/issues",
        "Documentation": "https://github.com/o73k51i/sdk-pytest-checkmate/blob/main/docs/main.md",
        "Homepage": "https://github.com/o73k51i/sdk-pytest-checkmate",
        "Repository": "https://github.com/o73k51i/sdk-pytest-checkmate.git"
    },
    "split_keywords": [
        "api-testing",
        " async-testing",
        " automation-framework",
        " environment-management",
        " epic-story",
        " html-reports",
        " http-client",
        " json-schema",
        " pytest",
        " qa",
        " quality-assurance",
        " soft-assertions",
        " test-automation",
        " test-framework",
        " test-organization",
        " test-reporting",
        " test-steps",
        " test-validation",
        " testing"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f3e28caa7b0f921d7ac1d4be100a2943b0b55367a7ea6fe8a111669ecfb927a0",
                "md5": "de820b1c3013f04e7794ef5d8fe0f059",
                "sha256": "f0d1136aa210dfadcd9a1c5bd637eb6a26b339db53103b06600707cfac654b73"
            },
            "downloads": -1,
            "filename": "sdk_pytest_checkmate-0.4.0a3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "de820b1c3013f04e7794ef5d8fe0f059",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<3.14,>=3.10",
            "size": 29242,
            "upload_time": "2025-08-28T23:39:37",
            "upload_time_iso_8601": "2025-08-28T23:39:37.563203Z",
            "url": "https://files.pythonhosted.org/packages/f3/e2/8caa7b0f921d7ac1d4be100a2943b0b55367a7ea6fe8a111669ecfb927a0/sdk_pytest_checkmate-0.4.0a3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f1a35be26ff8c002bf81470ab79d39eca596f4b8b4eb6060a3994c8f544f790d",
                "md5": "51b387ad1fb442e84a7d3ed3292d4c86",
                "sha256": "184deeff236337cd03f7315faa55be8820eb16431a8a5a8f03e1405d3c18d98e"
            },
            "downloads": -1,
            "filename": "sdk_pytest_checkmate-0.4.0a3.tar.gz",
            "has_sig": false,
            "md5_digest": "51b387ad1fb442e84a7d3ed3292d4c86",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<3.14,>=3.10",
            "size": 60729,
            "upload_time": "2025-08-28T23:39:38",
            "upload_time_iso_8601": "2025-08-28T23:39:38.967316Z",
            "url": "https://files.pythonhosted.org/packages/f1/a3/5be26ff8c002bf81470ab79d39eca596f4b8b4eb6060a3994c8f544f790d/sdk_pytest_checkmate-0.4.0a3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-28 23:39:38",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "o73k51i",
    "github_project": "sdk-pytest-checkmate",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "sdk-pytest-checkmate"
}
        
Elapsed time: 0.72540s