# Log-based testing 🪵
[![Poetry](https://img.shields.io/endpoint?url=https://python-poetry.org/badge/v0.json)](https://python-poetry.org/)
[![Build](https://github.com/etianen/logot/actions/workflows/build.yml/badge.svg)](https://github.com/etianen/logot/actions/workflows/build.yml)
[![Codecov](https://codecov.io/gh/etianen/logot/graph/badge.svg?token=J5K0LOOSTZ)](https://codecov.io/gh/etianen/logot)
[![Docs](https://readthedocs.org/projects/logot/badge/)](https://logot.readthedocs.io)
[![PyPI version](https://img.shields.io/pypi/v/logot.svg)](https://pypi.org/project/logot/)
[![Supported Python versions](https://img.shields.io/pypi/pyversions/logot.svg)](https://pypi.org/project/logot/)
`logot` makes it easy to test whether your code is logging correctly:
```python
from logot import Logot, logged
def test_something(logot: Logot) -> None:
do_something()
logot.assert_logged(logged.info("Something was done"))
```
`logot` integrates with popular testing frameworks (e.g. [`pytest`](https://logot.readthedocs.io/latest/using-pytest.html), [`unittest`](https://logot.readthedocs.io/latest/using-unittest.html)). It supports many 3rd-party [asynchronous](https://logot.readthedocs.io/latest/integrations/index.html#asynchronous-frameworks) and [logging](https://logot.readthedocs.io/latest/integrations/index.html#logging-frameworks) frameworks, and can be extended to support many more. 💪
## Documentation 📖
Full documentation is published on [Read the Docs](https://logot.readthedocs.io). Learn more about `logot` with the following guides:
- [Log message matching](https://logot.readthedocs.io/latest/log-message-matching.html)
- [Log pattern matching](https://logot.readthedocs.io/latest/log-pattern-matching.html)
- [Log capturing](https://logot.readthedocs.io/latest/log-capturing.html)
- [Using with `pytest`](https://logot.readthedocs.io/latest/using-pytest.html)
- [Using with `unittest`](https://logot.readthedocs.io/latest/using-unittest.html)
- [Installing](https://logot.readthedocs.io/latest/installing.html)
## Bugs / feedback 🐛
Issue tracking is hosted on [GitHub](https://github.com/etianen/logot/issues).
## Changelog 🏗️
Release notes are published on [GitHub](https://github.com/etianen/logot/releases).
## License ⚖️
`logot` is published as open-source software under the [MIT license](https://github.com/etianen/logot/blob/main/LICENSE).
Raw data
{
"_id": null,
"home_page": "https://logot.readthedocs.io",
"name": "logot",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.8",
"maintainer_email": null,
"keywords": "test, unittest, pytest, logging",
"author": "Dave Hall",
"author_email": "dave@etianen.com",
"download_url": "https://files.pythonhosted.org/packages/36/90/2c45c5aba12a221004f3fc8e26f80cfc3612a60236c47bb8dfe16952522e/logot-1.3.0.tar.gz",
"platform": null,
"description": "# Log-based testing \ud83e\udeb5\n\n[![Poetry](https://img.shields.io/endpoint?url=https://python-poetry.org/badge/v0.json)](https://python-poetry.org/)\n[![Build](https://github.com/etianen/logot/actions/workflows/build.yml/badge.svg)](https://github.com/etianen/logot/actions/workflows/build.yml)\n[![Codecov](https://codecov.io/gh/etianen/logot/graph/badge.svg?token=J5K0LOOSTZ)](https://codecov.io/gh/etianen/logot)\n[![Docs](https://readthedocs.org/projects/logot/badge/)](https://logot.readthedocs.io)\n[![PyPI version](https://img.shields.io/pypi/v/logot.svg)](https://pypi.org/project/logot/)\n[![Supported Python versions](https://img.shields.io/pypi/pyversions/logot.svg)](https://pypi.org/project/logot/)\n\n`logot` makes it easy to test whether your code is logging correctly:\n\n```python\nfrom logot import Logot, logged\n\ndef test_something(logot: Logot) -> None:\n do_something()\n logot.assert_logged(logged.info(\"Something was done\"))\n```\n\n`logot` integrates with popular testing frameworks (e.g. [`pytest`](https://logot.readthedocs.io/latest/using-pytest.html), [`unittest`](https://logot.readthedocs.io/latest/using-unittest.html)). It supports many 3rd-party [asynchronous](https://logot.readthedocs.io/latest/integrations/index.html#asynchronous-frameworks) and [logging](https://logot.readthedocs.io/latest/integrations/index.html#logging-frameworks) frameworks, and can be extended to support many more. \ud83d\udcaa\n\n## Documentation \ud83d\udcd6\n\nFull documentation is published on [Read the Docs](https://logot.readthedocs.io). Learn more about `logot` with the following guides:\n\n- [Log message matching](https://logot.readthedocs.io/latest/log-message-matching.html)\n- [Log pattern matching](https://logot.readthedocs.io/latest/log-pattern-matching.html)\n- [Log capturing](https://logot.readthedocs.io/latest/log-capturing.html)\n- [Using with `pytest`](https://logot.readthedocs.io/latest/using-pytest.html)\n- [Using with `unittest`](https://logot.readthedocs.io/latest/using-unittest.html)\n- [Installing](https://logot.readthedocs.io/latest/installing.html)\n\n\n## Bugs / feedback \ud83d\udc1b\n\nIssue tracking is hosted on [GitHub](https://github.com/etianen/logot/issues).\n\n\n## Changelog \ud83c\udfd7\ufe0f\n\nRelease notes are published on [GitHub](https://github.com/etianen/logot/releases).\n\n\n## License \u2696\ufe0f\n\n`logot` is published as open-source software under the [MIT license](https://github.com/etianen/logot/blob/main/LICENSE).\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Test whether your code is logging correctly \ud83e\udeb5",
"version": "1.3.0",
"project_urls": {
"Changelog": "https://github.com/etianen/logot/releases",
"Documentation": "https://logot.readthedocs.io",
"Homepage": "https://logot.readthedocs.io",
"Repository": "https://github.com/etianen/logot",
"Tracker": "https://github.com/etianen/logot/issues"
},
"split_keywords": [
"test",
" unittest",
" pytest",
" logging"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "a8aa8369bea2895d72021cbe65612bba07b6a11861460dab6dbf05e8f5e211d6",
"md5": "7fa236873eaf66384a7b3486df742689",
"sha256": "bb2e8cf8ca949015e1e096e45023095ebd5df06ea4627f5df47d53dcdf62b74e"
},
"downloads": -1,
"filename": "logot-1.3.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "7fa236873eaf66384a7b3486df742689",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.8",
"size": 21784,
"upload_time": "2024-03-23T20:38:46",
"upload_time_iso_8601": "2024-03-23T20:38:46.042684Z",
"url": "https://files.pythonhosted.org/packages/a8/aa/8369bea2895d72021cbe65612bba07b6a11861460dab6dbf05e8f5e211d6/logot-1.3.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "36902c45c5aba12a221004f3fc8e26f80cfc3612a60236c47bb8dfe16952522e",
"md5": "ddb890be06f582f7860275797a064174",
"sha256": "de392d182308828a0a9a442120e25e4ad2258fef52c4ed275e012aaffb0514a5"
},
"downloads": -1,
"filename": "logot-1.3.0.tar.gz",
"has_sig": false,
"md5_digest": "ddb890be06f582f7860275797a064174",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.8",
"size": 14819,
"upload_time": "2024-03-23T20:38:47",
"upload_time_iso_8601": "2024-03-23T20:38:47.927423Z",
"url": "https://files.pythonhosted.org/packages/36/90/2c45c5aba12a221004f3fc8e26f80cfc3612a60236c47bb8dfe16952522e/logot-1.3.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-03-23 20:38:47",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "etianen",
"github_project": "logot",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "logot"
}