# vfxtest
<br>
[→ Release Notes](release-notes.md)
## What's this about?
This project is about **managing a test suite** for a **Python codebase**
that is used in **multiple contexts**.
**Common contexts found in a VFX production environment are:**
* standalone **Python 2.7**
* standalone **Python 3.x**
* **embedded Python interpreters** inside **DCC's**:
* ``Maya/mayapy``
* ``Houdini/hython``
* ``Nuke``
* ...
<br><br>
## Where's the benefit?
Doing **Test Driven Development** in Python is fairly straight forward
utilizing packages such as ``unittest`` and ``mock``.
It's also really comfortable to get feedback about code coverage using the
``coverage`` package.
### However...
When a **Python codebase** is used inside multiple contexts that do not know
each other it is quite difficult to gather **accurate metrics** about the
**overall test coverage**.
#### And this is where ``vfxtest`` tries to fill the gap.
**``vfxtest``** is just a thin wrapper around ``unittest``, ``mock`` and
``coverage`` that let's you run a **test suite for each context** and then
presents the **combined code coverage** of all those tests.
<br><br>
## I basically scratched my own itch...
While starting to embrace **TDD** in a **VFX production environment** I had
this need and did not find an obvious existing solution to it.
<br><br>
## Documentation
Soon to be found on **vfxtest.readthedocs.com**.
Stay tuned... :)
<br><br>
## 'Impostor Syndrome' Disclaimer
I'm really still in my first inning of the whole TDD game.
Therefore I'm fully aware that I probably know barely enough to be dangerous
right now. :)
If there already happens to be an existing go-to solution for this problem out
there on the interwebs, I'd love to know about it!
Also if any part of this could be improved (or makes your eyes bleed) please
give me a heads up! :)
<br><br>
### That said, I hope that somebody will get some benefit out of this!
Everything that encourages and helps **maintaining a test suite** in **VFX** is
valuable, as far as I'm concerned... :)
Raw data
{
"_id": null,
"home_page": "https://github.com/martin-chatterjee/vfxtest",
"name": "vfxtest",
"maintainer": "",
"docs_url": null,
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*, <4",
"maintainer_email": "",
"keywords": "unittest coverage tdd test driven development dcc vfx 3d animation pipeline nuke houdini hython maya mayapy nuke",
"author": "Martin Chatterjee",
"author_email": "martin@chatterjee.de",
"download_url": "https://files.pythonhosted.org/packages/c5/05/ec14452d77ce35723d09beaebbffc75d3000604ea842a2dfb7a56e1f3714/vfxtest-0.2.2.tar.gz",
"platform": null,
"description": "# vfxtest\r\n\r\n<br>\r\n\r\n[\u00e2\u2020\u2019 Release Notes](release-notes.md)\r\n\r\n## What's this about?\r\n\r\nThis project is about **managing a test suite** for a **Python codebase**\r\nthat is used in **multiple contexts**.\r\n\r\n**Common contexts found in a VFX production environment are:**\r\n\r\n* standalone **Python 2.7**\r\n* standalone **Python 3.x**\r\n* **embedded Python interpreters** inside **DCC's**:\r\n * ``Maya/mayapy``\r\n * ``Houdini/hython``\r\n * ``Nuke``\r\n * ...\r\n<br><br>\r\n\r\n## Where's the benefit?\r\n\r\nDoing **Test Driven Development** in Python is fairly straight forward\r\nutilizing packages such as ``unittest`` and ``mock``.\r\n\r\nIt's also really comfortable to get feedback about code coverage using the\r\n``coverage`` package.\r\n\r\n### However...\r\n\r\nWhen a **Python codebase** is used inside multiple contexts that do not know\r\neach other it is quite difficult to gather **accurate metrics** about the\r\n**overall test coverage**.\r\n\r\n#### And this is where ``vfxtest`` tries to fill the gap.\r\n\r\n**``vfxtest``** is just a thin wrapper around ``unittest``, ``mock`` and\r\n``coverage`` that let's you run a **test suite for each context** and then\r\npresents the **combined code coverage** of all those tests.\r\n<br><br>\r\n\r\n## I basically scratched my own itch...\r\n\r\nWhile starting to embrace **TDD** in a **VFX production environment** I had\r\nthis need and did not find an obvious existing solution to it.\r\n<br><br>\r\n\r\n## Documentation\r\n\r\nSoon to be found on **vfxtest.readthedocs.com**. \r\n\r\nStay tuned... :)\r\n<br><br>\r\n\r\n## 'Impostor Syndrome' Disclaimer\r\nI'm really still in my first inning of the whole TDD game.\r\n\r\nTherefore I'm fully aware that I probably know barely enough to be dangerous\r\nright now. :)\r\n\r\nIf there already happens to be an existing go-to solution for this problem out\r\nthere on the interwebs, I'd love to know about it!\r\n\r\nAlso if any part of this could be improved (or makes your eyes bleed) please\r\ngive me a heads up! :)\r\n<br><br>\r\n\r\n### That said, I hope that somebody will get some benefit out of this!\r\n\r\nEverything that encourages and helps **maintaining a test suite** in **VFX** is\r\nvaluable, as far as I'm concerned... :)\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Manages a test suite across multiple python contexts commonly found in a VFX production environment",
"version": "0.2.2",
"split_keywords": [
"unittest",
"coverage",
"tdd",
"test",
"driven",
"development",
"dcc",
"vfx",
"3d",
"animation",
"pipeline",
"nuke",
"houdini",
"hython",
"maya",
"mayapy",
"nuke"
],
"urls": [
{
"comment_text": "",
"digests": {
"md5": "d1286da5730150da806eb70b1f1eeaf8",
"sha256": "ffe07dfe220818b86ff03005c077827ae69527b11cd30f05e3bd6d7a1d962ba6"
},
"downloads": -1,
"filename": "vfxtest-0.2.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d1286da5730150da806eb70b1f1eeaf8",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*, <4",
"size": 17581,
"upload_time": "2022-12-02T21:12:23",
"upload_time_iso_8601": "2022-12-02T21:12:23.354344Z",
"url": "https://files.pythonhosted.org/packages/d3/b1/47c93d7f339dbf4918384726b1bf5c3917ba32b03f8124547f5f0ea9b87f/vfxtest-0.2.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "a2c1a017425d2fe88c7e138d456faf3b",
"sha256": "a78228213ecbd8c221219d120d25b70c29f3555f6cd99166567233f76542b41c"
},
"downloads": -1,
"filename": "vfxtest-0.2.2.tar.gz",
"has_sig": false,
"md5_digest": "a2c1a017425d2fe88c7e138d456faf3b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*, <4",
"size": 17035,
"upload_time": "2022-12-02T21:12:25",
"upload_time_iso_8601": "2022-12-02T21:12:25.660382Z",
"url": "https://files.pythonhosted.org/packages/c5/05/ec14452d77ce35723d09beaebbffc75d3000604ea842a2dfb7a56e1f3714/vfxtest-0.2.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2022-12-02 21:12:25",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "martin-chatterjee",
"github_project": "vfxtest",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "virtualenv",
"specs": []
},
{
"name": "coverage",
"specs": [
[
">=",
"4.5"
]
]
},
{
"name": "mock",
"specs": [
[
">=",
"3.0"
]
]
},
{
"name": "six",
"specs": []
}
],
"lcname": "vfxtest"
}