{"id":24603837,"url":"https://github.com/lemoncheesecake/lemoncheesecake","last_synced_at":"2025-04-06T09:10:55.976Z","repository":{"id":21024696,"uuid":"91620113","full_name":"lemoncheesecake/lemoncheesecake","owner":"lemoncheesecake","description":"Python framework for end-to-end / QA testing","archived":false,"fork":false,"pushed_at":"2024-10-31T21:53:33.000Z","size":4551,"stargazers_count":43,"open_issues_count":0,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-30T08:12:53.455Z","etag":null,"topics":["behave","end-to-end-testing","lemoncheesecake","qa","testing","testing-framework"],"latest_commit_sha":null,"homepage":"http://lemoncheesecake.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lemoncheesecake.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE-3RD-PARTY.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-05-17T21:06:23.000Z","updated_at":"2024-10-31T21:49:19.000Z","dependencies_parsed_at":"2023-11-19T18:44:22.165Z","dependency_job_id":"fe81d292-7aee-4b0c-8eda-680fbc4178f1","html_url":"https://github.com/lemoncheesecake/lemoncheesecake","commit_stats":{"total_commits":1711,"total_committers":1,"mean_commits":1711.0,"dds":0.0,"last_synced_commit":"5e6710ba1b6e8e80f37959033ff390d5bc82018a"},"previous_names":[],"tags_count":134,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lemoncheesecake%2Flemoncheesecake","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lemoncheesecake%2Flemoncheesecake/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lemoncheesecake%2Flemoncheesecake/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lemoncheesecake%2Flemoncheesecake/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lemoncheesecake","download_url":"https://codeload.github.com/lemoncheesecake/lemoncheesecake/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247457803,"owners_count":20941906,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["behave","end-to-end-testing","lemoncheesecake","qa","testing","testing-framework"],"created_at":"2025-01-24T15:16:19.777Z","updated_at":"2025-04-06T09:10:55.958Z","avatar_url":"https://github.com/lemoncheesecake.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":".. image:: https://github.com/lemoncheesecake/lemoncheesecake/blob/master/doc/_static/logo.png?raw=true\n    :target: http://lemoncheesecake.io\n\n------------\n\nlemoncheesecake: Test Storytelling\n==================================\n\n.. image:: https://github.com/lemoncheesecake/lemoncheesecake/actions/workflows/tests.yml/badge.svg\n    :target: https://github.com/lemoncheesecake/lemoncheesecake/actions/workflows/tests.yml\n\n.. image:: https://codecov.io/gh/lemoncheesecake/lemoncheesecake/branch/master/graph/badge.svg\n    :target: https://codecov.io/gh/lemoncheesecake/lemoncheesecake\n\n.. image:: https://img.shields.io/pypi/v/lemoncheesecake.svg\n    :target: https://pypi.org/project/lemoncheesecake/\n\n.. image:: https://img.shields.io/pypi/pyversions/lemoncheesecake.svg\n    :target: https://pypi.org/project/lemoncheesecake/\n\nlemoncheesecake is an end-to-end test framework for Python that brings trust around test results.\nIt allows test developers to be very explicit about what their tests really do with logging, matchers, file attachments, etc..\n\nHere is a test example:\n\n.. code-block:: python\n\n    import json\n    import requests\n\n    import lemoncheesecake.api as lcc\n    from lemoncheesecake.matching import *\n\n    URL  = \"https://api.github.com/orgs/lemoncheesecake\"\n\n    @lcc.suite(\"Github tests\")\n    class github:\n        @lcc.test(\"Test Organization end-point\")\n        def organization(self):\n            lcc.set_step(\"Get lemoncheesecake organization information\")\n            lcc.log_info(\"GET %s\" % URL)\n            resp = requests.get(URL)\n            require_that(\"HTTP code\", resp.status_code, is_(200))\n            data = resp.json()\n            lcc.log_info(\"Response\\n%s\" % json.dumps(data, indent=4))\n\n            lcc.set_step(\"Check API response\")\n            check_that_in(\n                data,\n                \"type\", is_(\"Organization\"),\n                \"id\", is_integer(),\n                \"description\", is_not_none(),\n                \"login\", is_(present()),\n                \"created_at\", match_pattern(\"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$\"),\n                \"has_organization_projects\", is_true(),\n                \"followers\", is_(greater_than_or_equal_to(0)),\n                \"following\", is_(greater_than_or_equal_to(0)),\n                \"repos_url\", ends_with(\"/repos\"),\n                \"issues_url\", ends_with(\"/issues\"),\n                \"events_url\", ends_with(\"/events\"),\n                \"hooks_url\", ends_with(\"/hooks\"),\n                \"members_url\", ends_with(\"/members{/member}\"),\n                \"public_members_url\", ends_with(\"/public_members{/member}\")\n            )\n\nAnd here are the corresponding test results:\n\n.. image:: https://github.com/lemoncheesecake/lemoncheesecake/blob/master/doc/_static/report-sample.png?raw=true\n    :alt: test results\n\nNB: in real test code, you'd better use\n`lemoncheesecake-requests \u003chttps://github.com/lemoncheesecake/lemoncheesecake-requests\u003e`_ when doing HTTP / REST API\ntesting.\n\nFeatures\n--------\n\n- Advanced test hierarchies using suites, tests and nested suites\n\n- Test description and metadata: tags, properties (key=value associations) and links\n\n- Support for test filtering\n\n- Multiple reporting flavors built-in: HTML, JSON, XML, JUnit, ReportPortal, Slack notifications\n\n- BDD support using `behave \u003chttps://behave.readthedocs.io/en/latest/\u003e`_\n\n- Test parallelization\n\n- Rich CLI toolbox\n\nlemoncheesecake is compatible with Python 3.8-3.12.\n\n\nInstallation\n------------\n\nlemoncheesecake can be installed through pip:\n\n.. code-block:: shell\n\n    $ pip install lemoncheesecake\n\nFor more details about installing lemoncheesecake with the non-default reporting backends, see\n`here \u003chttp://docs.lemoncheesecake.io/en/latest/installation.html\u003e`_.\n\nDocumentation\n-------------\n\nThe documentation is available on http://docs.lemoncheesecake.io.\n\nThe lemoncheesecake ecosystem\n-----------------------------\n\n- `lemoncheesecake-requests \u003chttps://github.com/lemoncheesecake/lemoncheesecake-requests\u003e`_ provides logging\n  and response checking features for `requests \u003chttps://docs.python-requests.org/en/master/\u003e`_\n  and HTTP / REST API / Web Services testing\n\n- `lemoncheesecake-selenium \u003chttps://github.com/lemoncheesecake/lemoncheesecake-selenium\u003e`_ is a package\n  that helps you develop Web UI tests with `selenium \u003chttps://www.selenium.dev\u003e`_\n\nContact\n-------\n\nBugs and improvement ideas are welcomed in tickets. A Google Groups forum is also available for discussions about\nlemoncheesecake: https://groups.google.com/forum/#!forum/lemoncheesecake.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flemoncheesecake%2Flemoncheesecake","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flemoncheesecake%2Flemoncheesecake","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flemoncheesecake%2Flemoncheesecake/lists"}