{ "info": { "author": "Jane Adams, Leif Walsh", "author_email": "jane@twosigma.com, leif@twosigma.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: Financial and Insurance Industry", "Intended Audience :: Healthcare Industry", "Intended Audience :: Information Technology", "Intended Audience :: Manufacturing", "Intended Audience :: Science/Research", "Intended Audience :: System Administrators", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Documentation", "Topic :: Scientific/Engineering", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Software Development :: Testing" ], "description": ".. image:: marbles.svg\n :height: 150px\n :width: 150px\n :align: right\n\n=======\nmarbles\n=======\n\n.. image:: https://img.shields.io/pypi/v/marbles.svg\n :target: https://pypi.python.org/pypi/marbles\n\n.. image:: https://img.shields.io/travis/twosigma/marbles.svg\n :target: https://travis-ci.org/twosigma/marbles\n\n.. image:: https://readthedocs.org/projects/marbles/badge/?version=latest\n :target: https://marbles.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\n.. image:: https://codecov.io/gh/twosigma/marbles/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/twosigma/marbles\n\nRead better test failures.\n\n* Free software: MIT license\n* Documentation: https://marbles.readthedocs.io\n\nOverview\n--------\n\n`marbles` is a Python `unittest` extension that allows test authors to write\nricher tests that expose more information on test failure to help you debug\nfailing tests faster.\n\n* Treat test failures as documentation\n* Contextualize failures without digging through test code\n and dropping debugging statements everywhere\n* Write clearer, more explicit tests\n\nFeatures\n--------\n\n* Drop-in `unittest` replacement\n* Information-rich failure messages\n\n * The full statement that failed (instead of just the last line)\n * Local variables in scope at the time the test failed\n * Optional annotation provided by the test author with details about the test\n * Ability to toggle traceback\n\n* Semantically-rich assertion methods\n* Assertion logging\n\nDemo\n----\n\nYou can run the example tests provided to see what a `marbles` failure message\nlooks like\n\n.. image:: getting_started.png\n\nYou can also run your existing `unittest` tests with `marbles`\n\n.. code-block:: bash\n\n python -m marbles test_module.py\n\nInstalling\n----------\n\n.. code-block:: bash\n\n pip install marbles\n\n\n", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "https://github.com/twosigma/marbles/archive/0.10.0.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/twosigma/marbles", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "marbles", "package_url": "https://pypi.org/project/marbles/", "platform": "", "project_url": "https://pypi.org/project/marbles/", "project_urls": { "Documentation": "https://marbles.readthedocs.io", "Download": "https://github.com/twosigma/marbles/archive/0.10.0.tar.gz", "Homepage": "https://github.com/twosigma/marbles", "Source": "https://github.com/twosigma/marbles", "Tracker": "https://github.com/twosigma/marbles/issues" }, "release_url": "https://pypi.org/project/marbles/0.10.0/", "requires_dist": [ "marbles.core", "marbles.mixins", "releases; extra == 'dev'", "Sphinx; extra == 'dev'", "sphinx-rtd-theme; extra == 'dev'" ], "requires_python": "", "summary": "Read better test failures", "version": "0.10.0" }, "last_serial": 4303381, "releases": { "0.10.0": [ { "comment_text": "", "digests": { "md5": "55bf19c3639f7ed7bc62aef73cb14583", "sha256": "147bc31787df219238a7ce9e066cafe520bfaea360a2f202a9dcd3b5f4250d62" }, "downloads": -1, "filename": "marbles-0.10.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "55bf19c3639f7ed7bc62aef73cb14583", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3107, "upload_time": "2018-09-24T02:39:05", "url": "https://files.pythonhosted.org/packages/b0/38/16f993b8c82511d326bfc576768380d412fe59b7d213ea93dfc5e222a045/marbles-0.10.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2b54833b637f0a91c023b89d5281a5c8", "sha256": "398d6d24ae147ecb4a40d00d689795e5d2ffa5c442c37fb52e98f3baa408fdca" }, "downloads": -1, "filename": "marbles-0.10.0.tar.gz", "has_sig": false, "md5_digest": "2b54833b637f0a91c023b89d5281a5c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3633, "upload_time": "2018-09-24T02:39:09", "url": "https://files.pythonhosted.org/packages/07/a7/ad766803805c0d3eb3847f43cdf065a0d574cc12f0ef90ed60153bf07ab4/marbles-0.10.0.tar.gz" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "b31066a46b93cdccd140284224abd40b", "sha256": "a2981af9934734c98db50f739ce2ada08a7335c071d699d16d1dc8d725995494" }, "downloads": -1, "filename": "marbles-0.9.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b31066a46b93cdccd140284224abd40b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 1941, "upload_time": "2018-05-20T01:20:29", "url": "https://files.pythonhosted.org/packages/3e/b5/308ecec62e09f807dda822a5ab9f447d7ff237fac03fba26b776dda662d8/marbles-0.9.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cb523fdb071878de3ed6a5723034f7c6", "sha256": "68e382b22dcce53fc4d2e4b9789ae4838513c191e1b21bf88a7cd58f5f009ca3" }, "downloads": -1, "filename": "marbles-0.9.1.tar.gz", "has_sig": false, "md5_digest": "cb523fdb071878de3ed6a5723034f7c6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2841, "upload_time": "2018-05-20T01:20:32", "url": "https://files.pythonhosted.org/packages/3e/c8/b79f4dce6d64b8ce8b6b691cabcb839d452a0043f8f4edf6e0432093a6a9/marbles-0.9.1.tar.gz" } ], "0.9.2": [ { "comment_text": "", "digests": { "md5": "328db0d610c3dc4aaf5427421fa415a9", "sha256": "38116b91975833aa9997aa386e33636446aca65f0bb952fd7e5905e57f469228" }, "downloads": -1, "filename": "marbles-0.9.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "328db0d610c3dc4aaf5427421fa415a9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 1941, "upload_time": "2018-05-20T01:40:49", "url": "https://files.pythonhosted.org/packages/fb/6a/63ee17de738b1b81a223a2541b6ecc0249000727af24ffd01900a1620955/marbles-0.9.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "20c070d8307695d19415f821a5baa1b5", "sha256": "0726332b95ff830dd6237793325eba31edea5f0e3b563c4192989454291cbfb6" }, "downloads": -1, "filename": "marbles-0.9.2.tar.gz", "has_sig": false, "md5_digest": "20c070d8307695d19415f821a5baa1b5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2842, "upload_time": "2018-05-20T01:40:52", "url": "https://files.pythonhosted.org/packages/15/4c/56bdbcdb3cd33770d0e28f7a86dcfed7e52ffd3a1a8b6c68c90fb98195ca/marbles-0.9.2.tar.gz" } ], "0.9.3": [ { "comment_text": "", "digests": { "md5": "1c1b4ce8abae082dc79d7a2a6b534395", "sha256": "17e4b84dfe72ea032d0d8e3f289e1d18392e8e3988bad1cc08547441fa9f879f" }, "downloads": -1, "filename": "marbles-0.9.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1c1b4ce8abae082dc79d7a2a6b534395", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3335, "upload_time": "2018-06-02T15:24:52", "url": "https://files.pythonhosted.org/packages/ec/9f/bb061a946283b12b458357ccc85fb1c0723afd90108b774f0ae984465721/marbles-0.9.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "31e68ceac8a3a08073e3c7070b8fb131", "sha256": "213a82362e57de78f5116a3c6963a7dd6d2d3b011ce9e972adddcc9ed222b602" }, "downloads": -1, "filename": "marbles-0.9.3.tar.gz", "has_sig": false, "md5_digest": "31e68ceac8a3a08073e3c7070b8fb131", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3838, "upload_time": "2018-06-02T15:24:55", "url": "https://files.pythonhosted.org/packages/4f/43/19ba1ec2003c6a0b668bda9f01733fc797fd859f3a9a1ca69ea69616ec12/marbles-0.9.3.tar.gz" } ], "0.9.4": [ { "comment_text": "", "digests": { "md5": "8e06275c6dadbee97ed4c90bc8c9574c", "sha256": "d76f9ac4f50247d3ee9f481058298542dd6850a975819b9cc2f79ebe88d27b53" }, "downloads": -1, "filename": "marbles-0.9.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8e06275c6dadbee97ed4c90bc8c9574c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3368, "upload_time": "2018-06-03T23:08:05", "url": "https://files.pythonhosted.org/packages/87/94/773190fdb748fe5a29ce112b1b66e7434b95dfb3894a3cbceb7305ad6f8b/marbles-0.9.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c84045e6aa36bc6a684e1739314f344d", "sha256": "42a13a22e17340d4fad9651de0d723d06978c7e7d6ad36c1a541c8cf6fe4f76c" }, "downloads": -1, "filename": "marbles-0.9.4.tar.gz", "has_sig": false, "md5_digest": "c84045e6aa36bc6a684e1739314f344d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3973, "upload_time": "2018-06-03T23:08:08", "url": "https://files.pythonhosted.org/packages/8f/22/89a16c201ffa7907d316959772fec3fd72e122e0f7adb02a5119103dc072/marbles-0.9.4.tar.gz" } ], "0.9.5": [ { "comment_text": "", "digests": { "md5": "8fcf25f228c6d13e6bcefe44fc5f5957", "sha256": "8cc6a281dad2bec1d45bad8ee186926195f683b2cd91a9ae7637096d322ee309" }, "downloads": -1, "filename": "marbles-0.9.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8fcf25f228c6d13e6bcefe44fc5f5957", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3368, "upload_time": "2018-06-24T22:26:11", "url": "https://files.pythonhosted.org/packages/b1/94/d64ac791bb0887f07442c6534c64f7aa5fe76b99e6f7866ef83cdc3bdcd0/marbles-0.9.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "24ef7b6464834901d827530f149e5c99", "sha256": "dfdd7b9959b778c797862845d251c7ff9ef6fa19e51d2389209c9b8fc9fbad3f" }, "downloads": -1, "filename": "marbles-0.9.5.tar.gz", "has_sig": false, "md5_digest": "24ef7b6464834901d827530f149e5c99", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3978, "upload_time": "2018-06-24T22:26:15", "url": "https://files.pythonhosted.org/packages/43/c2/7d6b5140a74ae7c10cf7e8fbd0f812df783eeafab5be6acda46710159316/marbles-0.9.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "55bf19c3639f7ed7bc62aef73cb14583", "sha256": "147bc31787df219238a7ce9e066cafe520bfaea360a2f202a9dcd3b5f4250d62" }, "downloads": -1, "filename": "marbles-0.10.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "55bf19c3639f7ed7bc62aef73cb14583", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3107, "upload_time": "2018-09-24T02:39:05", "url": "https://files.pythonhosted.org/packages/b0/38/16f993b8c82511d326bfc576768380d412fe59b7d213ea93dfc5e222a045/marbles-0.10.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2b54833b637f0a91c023b89d5281a5c8", "sha256": "398d6d24ae147ecb4a40d00d689795e5d2ffa5c442c37fb52e98f3baa408fdca" }, "downloads": -1, "filename": "marbles-0.10.0.tar.gz", "has_sig": false, "md5_digest": "2b54833b637f0a91c023b89d5281a5c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3633, "upload_time": "2018-09-24T02:39:09", "url": "https://files.pythonhosted.org/packages/07/a7/ad766803805c0d3eb3847f43cdf065a0d574cc12f0ef90ed60153bf07ab4/marbles-0.10.0.tar.gz" } ] }