{ "info": { "author": "Martin Chatterjee", "author_email": "martin@chatterjee.de", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Quality Assurance", "Topic :: Software Development :: Testing" ], "description": "# vfxtest\r\n\r\n
\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

\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

\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

\r\n\r\n## Documentation\r\n\r\nSoon to be found on **vfxtest.readthedocs.com**. \r\n\r\nStay tuned... :)\r\n

\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

\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\r\n\r\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/martin-chatterjee/vfxtest", "keywords": "unittest coverage tdd test driven development dcc vfx 3d animation pipeline nuke houdini hython maya mayapy nuke", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "vfxtest", "package_url": "https://pypi.org/project/vfxtest/", "platform": "", "project_url": "https://pypi.org/project/vfxtest/", "project_urls": { "Documentation": "https://vfxtest.readthedocs.org", "Homepage": "https://github.com/martin-chatterjee/vfxtest", "Issues": "https://github.com/martin-chatterjee/vfxtest/issues", "Source": "https://github.com/martin-chatterjee/vfxtest" }, "release_url": "https://pypi.org/project/vfxtest/0.2.0/", "requires_dist": [ "virtualenv", "coverage (>=4.5)", "mock (>=3.0) ; python_version < \"3.3\"" ], "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*, <4", "summary": "Manages a test suite across multiple python contexts commonly found in a VFX production environment", "version": "0.2.0" }, "last_serial": 5566829, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "a43f0ae8b8c754aef6d48a681f11bf49", "sha256": "23858ee068db262f09da84f712fcb605b16f810095b456a5876defc733d2f5f0" }, "downloads": -1, "filename": "vfxtest-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "a43f0ae8b8c754aef6d48a681f11bf49", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1888, "upload_time": "2019-02-21T16:34:19", "url": "https://files.pythonhosted.org/packages/5e/2f/b267c6ccd24e62a3c529cf4ec4d8d12616cc2862790bf63974093db899ec/vfxtest-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "893391a8e3e130b3bb6062ed76c1c923", "sha256": "e1119b5c24db979b6732969088afb460c0f42caa02b33602481ce69cd43e7901" }, "downloads": -1, "filename": "vfxtest-0.0.1.tar.gz", "has_sig": false, "md5_digest": "893391a8e3e130b3bb6062ed76c1c923", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1816, "upload_time": "2019-02-21T16:34:21", "url": "https://files.pythonhosted.org/packages/66/00/cbae702e6d2b0e5280ce56f3acfdc1569351151281b721c3322e8d478cb6/vfxtest-0.0.1.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "e5352c580652dcdbc5690ba8e62e08a4", "sha256": "711c46dfd51e5724fb057a6e0cab416e0a35b57f1d1dce117d46fbbd3423a0f9" }, "downloads": -1, "filename": "vfxtest-0.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "e5352c580652dcdbc5690ba8e62e08a4", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*, <4", "size": 29789, "upload_time": "2019-06-13T22:22:41", "url": "https://files.pythonhosted.org/packages/90/aa/cae570b53b464ae95e6b8ab748d527a0e594f00fad1ea4240a2f8c8a8e44/vfxtest-0.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2b5b4655575f54df0584cfc7251f42a0", "sha256": "ffed2c0a323d087ed54c3ceafa83f39c15d6b943b911f2af6c771bb65decf5c1" }, "downloads": -1, "filename": "vfxtest-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "2b5b4655575f54df0584cfc7251f42a0", "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": 29761, "upload_time": "2019-06-13T22:22:43", "url": "https://files.pythonhosted.org/packages/22/6d/65d99c50e547831ae07db04297e7035ee15d39eda1526b131b7c73147a6e/vfxtest-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8909101cffd208a312f8ca1d0b77242a", "sha256": "ac2c048c97f9d36270d675eb1ecaf59c2e248aff4369dbc1b7ddc46169695d12" }, "downloads": -1, "filename": "vfxtest-0.1.0.tar.gz", "has_sig": false, "md5_digest": "8909101cffd208a312f8ca1d0b77242a", "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": 15519, "upload_time": "2019-06-13T22:22:46", "url": "https://files.pythonhosted.org/packages/5c/13/e463079b23f2b6ada7af0247bd00984dc489890b84a7a77b8bccb4217871/vfxtest-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "71ad29cfe24ee4cfea8f514e4fd16618", "sha256": "bdf3a257a7c3fc2f5903281658c14366e2d239a6a46706237c187368e2f7dc05" }, "downloads": -1, "filename": "vfxtest-0.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "71ad29cfe24ee4cfea8f514e4fd16618", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*, <4", "size": 17935, "upload_time": "2019-07-22T10:57:03", "url": "https://files.pythonhosted.org/packages/ab/2d/f949b494219f754c3c54a95d2859eb5ebfa3eaeeff187c56fdd93278c454/vfxtest-0.2.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d5a1f43f4d68bacde4cc99391b1b3d6c", "sha256": "3f0c5b008a9f0c19383a9dd881192d27678c332c7d026889dd6c8a779f92982d" }, "downloads": -1, "filename": "vfxtest-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d5a1f43f4d68bacde4cc99391b1b3d6c", "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": 17906, "upload_time": "2019-07-22T10:57:04", "url": "https://files.pythonhosted.org/packages/f7/6f/fb40558de15b79189b36bdccd1e215dd01fd0aed79f2b848dbbbc911783f/vfxtest-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fdad94a8f82b4afa5cc7ba1e00284da6", "sha256": "7bd0361e51e3e1ae8c43b3d2adc5eb2a3c464213bb82a6f1c73f3283dc7bfd2e" }, "downloads": -1, "filename": "vfxtest-0.2.0.tar.gz", "has_sig": false, "md5_digest": "fdad94a8f82b4afa5cc7ba1e00284da6", "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": 16653, "upload_time": "2019-07-22T10:57:08", "url": "https://files.pythonhosted.org/packages/6c/18/5ded57f5d545742b74569767aae821b4ea1b2694e23dddb39e7a9832c59d/vfxtest-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "71ad29cfe24ee4cfea8f514e4fd16618", "sha256": "bdf3a257a7c3fc2f5903281658c14366e2d239a6a46706237c187368e2f7dc05" }, "downloads": -1, "filename": "vfxtest-0.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "71ad29cfe24ee4cfea8f514e4fd16618", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*, <4", "size": 17935, "upload_time": "2019-07-22T10:57:03", "url": "https://files.pythonhosted.org/packages/ab/2d/f949b494219f754c3c54a95d2859eb5ebfa3eaeeff187c56fdd93278c454/vfxtest-0.2.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d5a1f43f4d68bacde4cc99391b1b3d6c", "sha256": "3f0c5b008a9f0c19383a9dd881192d27678c332c7d026889dd6c8a779f92982d" }, "downloads": -1, "filename": "vfxtest-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d5a1f43f4d68bacde4cc99391b1b3d6c", "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": 17906, "upload_time": "2019-07-22T10:57:04", "url": "https://files.pythonhosted.org/packages/f7/6f/fb40558de15b79189b36bdccd1e215dd01fd0aed79f2b848dbbbc911783f/vfxtest-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fdad94a8f82b4afa5cc7ba1e00284da6", "sha256": "7bd0361e51e3e1ae8c43b3d2adc5eb2a3c464213bb82a6f1c73f3283dc7bfd2e" }, "downloads": -1, "filename": "vfxtest-0.2.0.tar.gz", "has_sig": false, "md5_digest": "fdad94a8f82b4afa5cc7ba1e00284da6", "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": 16653, "upload_time": "2019-07-22T10:57:08", "url": "https://files.pythonhosted.org/packages/6c/18/5ded57f5d545742b74569767aae821b4ea1b2694e23dddb39e7a9832c59d/vfxtest-0.2.0.tar.gz" } ] }