{ "info": { "author": "David Villa Alises", "author_email": "David.Villa@gmail.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "Operating System :: OS Independent", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.1", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Software Development", "Topic :: Software Development :: Quality Assurance", "Topic :: Software Development :: Testing" ], "description": ".. image:: https://img.shields.io/pypi/v/doublex.png\n :target: http://pypi.python.org/pypi/doublex\n :alt: Latest PyPI version\n\n\n.. image:: https://img.shields.io/pypi/l/doublex.png?maxAge=2592000\n :alt: License\n\n.. image:: https://img.shields.io/pypi/pyversions/doublex.png?maxAge=2592000\n :target: http://pypi.python.org/pypi/doublex\n :alt: Supported Python Versions\n\n.. image:: https://travis-ci.org/davidvilla/python-doublex.svg?branch=master\n :target: https://travis-ci.org/davidvilla/python-doublex\n :alt: Travis CI status\n\nPowerful test doubles framework for Python\n\n\n[\n`install `_ |\n`docs `_ |\n`changelog `_ |\n`sources `_ |\n`issues `_ |\n`PyPI `_ |\n`github clone `_ |\n`travis `_\n]\n\n\na trivial example\n-----------------\n\n.. sourcecode:: python\n\n import unittest\n from doublex import Spy, assert_that, called\n\n class SpyUseExample(unittest.TestCase):\n def test_spy_example(self):\n # given\n spy = Spy(SomeCollaboratorClass)\n cut = YourClassUnderTest(spy)\n\n # when\n cut.a_method_that_call_the_collaborator()\n\n # then\n assert_that(spy.some_method, called())\n\nSee more about `doublex doubles `_.\n\n\nFeatures\n--------\n\n* doubles have not public API framework methods. It could cause silent misspelling.\n* doubles do not require collaborator instances, just classes, and it never instantiate them.\n* ``assert_that()`` is used for ALL assertions.\n* mock invocation order is relevant by default.\n* supports old and new style classes.\n* **supports Python versions: 2.6, 2.7, 3.3, 3.4, 3.5. 3.6, 3.7**\n\n\nDebian\n^^^^^^\n\n* `official package `_ (may be outdated)\n* amateur repository: ``deb http://pike.esi.uclm.es/arco/ sid main`` (always updated)\n* `official ubuntu package `_\n* debian dir: ``svn://svn.debian.org/svn/python-modules/packages/doublex/trunk``\n\n\nrelated\n-------\n\n* `slides `_\n* `pyDoubles `_\n* `doublex-expects `_\n* `crate `_\n* `other doubles `_\n* `ludibrio `_\n* `doubles `_\n\n\n.. Local Variables:\n.. coding: utf-8\n.. mode: rst\n.. mode: flyspell\n.. ispell-local-dictionary: \"american\"\n.. fill-columnd: 90\n.. End:\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/DavidVilla/python-doublex", "keywords": "unit tests", "license": "GPLv3", "maintainer": "", "maintainer_email": "", "name": "doublex", "package_url": "https://pypi.org/project/doublex/", "platform": "", "project_url": "https://pypi.org/project/doublex/", "project_urls": { "Homepage": "https://bitbucket.org/DavidVilla/python-doublex" }, "release_url": "https://pypi.org/project/doublex/1.9.2/", "requires_dist": null, "requires_python": "", "summary": "Python test doubles", "version": "1.9.2" }, "last_serial": 5102848, "releases": { "0.2": [ { "comment_text": "", "digests": { "md5": "8859ca4de6e3ec4f7429ccbc143813d6", "sha256": "e8376422235898413b6911426f19f9b08d18137de81f7d23d18cf62fdaefe27f" }, "downloads": -1, "filename": "doublex-0.2.tar.gz", "has_sig": false, "md5_digest": "8859ca4de6e3ec4f7429ccbc143813d6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9861, "upload_time": "2012-08-17T22:00:40", "url": "https://files.pythonhosted.org/packages/c1/b3/42d2f6e0a3db38f142fd7ea17a21a24f05a82eadcacc0e3b71d3351df32c/doublex-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "099db0ae0c2292f0ac728baefc80efc2", "sha256": "3c8ab018e5ab91c853d0e00346e2973626abcbbea31f6077e9411cfe9d1fdf37" }, "downloads": -1, "filename": "doublex-0.3.tar.gz", "has_sig": false, "md5_digest": "099db0ae0c2292f0ac728baefc80efc2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11784, "upload_time": "2012-09-03T11:52:55", "url": "https://files.pythonhosted.org/packages/5c/71/af5ea5d06261e7086a89cc521de0707c28e3a18cf7b04f422214869bc5fb/doublex-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "b69dadc9fa42a63cad72e0b3345d171d", "sha256": "a8cbc16771d5046fe9d609ddeba17749859e6d34184b973b078bd3fc66309b94" }, "downloads": -1, "filename": "doublex-0.4.tar.gz", "has_sig": false, "md5_digest": "b69dadc9fa42a63cad72e0b3345d171d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11767, "upload_time": "2012-09-04T11:06:16", "url": "https://files.pythonhosted.org/packages/f2/5b/f239dcacdc56595f9cb6810bf721df3ecf3120ad0ed2d8e3c99eaf85cfe9/doublex-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "64fedd4987e50be54d9cb9082f7b4ed3", "sha256": "b41212b43306347e94bf386d8695759263e0d31adf654135c7505dc6089859b5" }, "downloads": -1, "filename": "doublex-0.5.tar.gz", "has_sig": false, "md5_digest": "64fedd4987e50be54d9cb9082f7b4ed3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13371, "upload_time": "2012-09-10T12:15:42", "url": "https://files.pythonhosted.org/packages/88/bb/f26a947be80e32a75b4e2467b712a39e752c9240c9ecfaf7a2f44a4d09ba/doublex-0.5.tar.gz" } ], "0.6.3": [ { "comment_text": "", "digests": { "md5": "31334de95b0c8e0450b38d6b97ce6289", "sha256": "5cfbfa8ec0620204ce7531a5a722719a54afeb8b2b432748a08ad0282ed553cc" }, "downloads": -1, "filename": "doublex-0.6.3.tar.gz", "has_sig": false, "md5_digest": "31334de95b0c8e0450b38d6b97ce6289", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14861, "upload_time": "2012-10-03T13:50:29", "url": "https://files.pythonhosted.org/packages/6d/4d/6c28bd0aed2ca130019e8f3f132dc86a91613a80170c88dcea1e94173915/doublex-0.6.3.tar.gz" } ], "1.5": [ { "comment_text": "", "digests": { "md5": "a86343ff165afd754887a714528a4cd3", "sha256": "9ca38000c32995f81ee14a664f08473f0241cda28d2b01f2d62f696258b73646" }, "downloads": -1, "filename": "doublex-1.5.tar.gz", "has_sig": false, "md5_digest": "a86343ff165afd754887a714528a4cd3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14982, "upload_time": "2012-10-08T19:08:42", "url": "https://files.pythonhosted.org/packages/66/33/ba423fa98c5a245a6b9aac7941ae74ae15abdb0ddb98b9c40b7a226ea4fd/doublex-1.5.tar.gz" } ], "1.5.1": [ { "comment_text": "", "digests": { "md5": "2df8307c5cafcd1f22f58da9bae6fe8a", "sha256": "3aafeaba7a41c6234863fee449b2442f440fe79b0b48db09f4dc063bf0ba1ee3" }, "downloads": -1, "filename": "doublex-1.5.1.tar.gz", "has_sig": false, "md5_digest": "2df8307c5cafcd1f22f58da9bae6fe8a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15620, "upload_time": "2012-10-28T21:30:50", "url": "https://files.pythonhosted.org/packages/a9/ff/7691f3bb30fd9ec87c7abfaa627d2cacd074b15bf4983e3451fa7dc41216/doublex-1.5.1.tar.gz" } ], "1.6": [ { "comment_text": "", "digests": { "md5": "3386f54067e21270252ff190ee67fb7f", "sha256": "6d45005142a479bb9db9e2928ca2893b461bffddb02beb385fa80c5cd4b48fbb" }, "downloads": -1, "filename": "doublex-1.6.tar.gz", "has_sig": false, "md5_digest": "3386f54067e21270252ff190ee67fb7f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23183, "upload_time": "2013-01-30T14:28:17", "url": "https://files.pythonhosted.org/packages/c8/01/3d328a1ead9b9fe0241fca68f07b340082aa48f12c01c482d8c9c3ce60e3/doublex-1.6.tar.gz" } ], "1.6.1": [ { "comment_text": "", "digests": { "md5": "fa0c784448fabffda4bf1015cffe5e1b", "sha256": "39e462bd09365117f489880cb4f8ac4af0b1e4fcf0e72d6d4189be02d427c89c" }, "downloads": -1, "filename": "doublex-1.6.1.tar.gz", "has_sig": false, "md5_digest": "fa0c784448fabffda4bf1015cffe5e1b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23346, "upload_time": "2013-02-04T12:30:28", "url": "https://files.pythonhosted.org/packages/ee/f4/7cf0ce4f896cf82f6a41ef06e7079425fbe7fbfd277b55ffad3c1423ae91/doublex-1.6.1.tar.gz" } ], "1.6.4": [ { "comment_text": "", "digests": { "md5": "c0762d745cdfc391e61c9ab3a845f92d", "sha256": "5f74ec0b72bdfa5a75a99096e3d776405fe36795ac854ad69e0bc5935ea558a4" }, "downloads": -1, "filename": "doublex-1.6.4.tar.gz", "has_sig": false, "md5_digest": "c0762d745cdfc391e61c9ab3a845f92d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26441, "upload_time": "2013-04-20T23:41:19", "url": "https://files.pythonhosted.org/packages/c7/2d/6c7c16476c487ed647f7e996574e8c2f2ac840a2cb00e0447e5e3ee75097/doublex-1.6.4.tar.gz" } ], "1.6.5": [ { "comment_text": "", "digests": { "md5": "869e77d102f86f9a21e36bb332a866f4", "sha256": "d9fb2acf44424eba50e2bb3ecedafa1313a6fed27340a23a9f2a7bc1c2a1b3d5" }, "downloads": -1, "filename": "doublex-1.6.5.tar.gz", "has_sig": false, "md5_digest": "869e77d102f86f9a21e36bb332a866f4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24953, "upload_time": "2013-04-25T07:38:06", "url": "https://files.pythonhosted.org/packages/b9/7a/966d2863460677f52d4d4225cd1d0ff531db3d6f5e330f273322392d9ec8/doublex-1.6.5.tar.gz" } ], "1.6.6": [ { "comment_text": "", "digests": { "md5": "eac4a540e476183792e2ae9be744ace6", "sha256": "835165ca34fe0fafb345cf5de45ce9409479d651e3b5f8f0d05ffbe3daf5a1cb" }, "downloads": -1, "filename": "doublex-1.6.6.tar.gz", "has_sig": false, "md5_digest": "eac4a540e476183792e2ae9be744ace6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27175, "upload_time": "2013-04-27T16:03:57", "url": "https://files.pythonhosted.org/packages/0c/ec/9a8737706def16177a5b8ee0db0f8c1b7ed949b02cddd3e5377dfcdd28ca/doublex-1.6.6.tar.gz" } ], "1.7": [ { "comment_text": "", "digests": { "md5": "0c4161ca20c2b4ab08686ed69a71b786", "sha256": "b8488c08cae47039671a343d54346e28ba7532f55963b5fd78a03cdae6a60391" }, "downloads": -1, "filename": "doublex-1.7.tar.gz", "has_sig": false, "md5_digest": "0c4161ca20c2b4ab08686ed69a71b786", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28964, "upload_time": "2013-07-14T13:23:37", "url": "https://files.pythonhosted.org/packages/78/fa/dfdb2a8530347ccdfa6fa7ab16ff554d50820a7b548da30c72b5bfc0302b/doublex-1.7.tar.gz" } ], "1.7.1": [ { "comment_text": "", "digests": { "md5": "55dcb277527ff31fe4808458abc58033", "sha256": "c0669ce2804d99d7c024b114c5fc39501b6322bdc02f7047fd64482b4d1f5881" }, "downloads": -1, "filename": "doublex-1.7.1.tar.gz", "has_sig": false, "md5_digest": "55dcb277527ff31fe4808458abc58033", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28280, "upload_time": "2013-10-28T14:21:40", "url": "https://files.pythonhosted.org/packages/16/d4/7eadacc9109b3d588e2896f932a6f1794a72c1063f13ad09df64e29f9af4/doublex-1.7.1.tar.gz" } ], "1.7.2": [ { "comment_text": "", "digests": { "md5": "65cbf494ba011be7e43cda45085bc675", "sha256": "fab9e07f4cb1d47e1e07f03b81c26ee02d3548ac359378b90c40ffdce56af97c" }, "downloads": -1, "filename": "doublex-1.7.2.tar.gz", "has_sig": false, "md5_digest": "65cbf494ba011be7e43cda45085bc675", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29674, "upload_time": "2013-11-07T16:11:31", "url": "https://files.pythonhosted.org/packages/32/9e/cc9c4894a0d83a0f19fee3b76b964de059cba4e5ec3daf9d3aa1abcbbd87/doublex-1.7.2.tar.gz" } ], "1.7.3": [ { "comment_text": "", "digests": { "md5": "a6ec2596787097087b25ff2ce17bbceb", "sha256": "4f3127cd3141feb9bdac467a52e4b76a6a84e1afbfc2816f27fbd38d197d9711" }, "downloads": -1, "filename": "doublex-1.7.3.tar.gz", "has_sig": false, "md5_digest": "a6ec2596787097087b25ff2ce17bbceb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29674, "upload_time": "2013-11-28T20:44:16", "url": "https://files.pythonhosted.org/packages/63/ad/bee345f72ed841e330137e74a793193f22494fee4a7b4037647944ea8340/doublex-1.7.3.tar.gz" } ], "1.8.1": [ { "comment_text": "", "digests": { "md5": "b92d6ad03a840e26e0f7cafe1f7c99b3", "sha256": "7f5ff21fbdebcff9bd490e99fc3d3d11495c86ba039ea099b6db9b282657baf6" }, "downloads": -1, "filename": "doublex-1.8.1.tar.gz", "has_sig": false, "md5_digest": "b92d6ad03a840e26e0f7cafe1f7c99b3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34783, "upload_time": "2014-01-07T15:51:01", "url": "https://files.pythonhosted.org/packages/5c/5b/c75b87e9fe275321dd8dac3863f09c96ec1c80f5cf160dac0522789873cd/doublex-1.8.1.tar.gz" } ], "1.8.2": [ { "comment_text": "", "digests": { "md5": "688ccb34c37516f43272026536e282a5", "sha256": "c6dc9b510a0b7e001fee03f24a558965760464650e415eeadeb51eb90994e733" }, "downloads": -1, "filename": "doublex-1.8.2.tar.gz", "has_sig": false, "md5_digest": "688ccb34c37516f43272026536e282a5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36182, "upload_time": "2014-11-26T10:22:40", "url": "https://files.pythonhosted.org/packages/f8/94/59308735b3a94bf1c110d7e280e88a831e49014495d3238c271c9f0704ae/doublex-1.8.2.tar.gz" } ], "1.8.3": [ { "comment_text": "", "digests": { "md5": "92a1aaeca9c8c697c21317bfc914af18", "sha256": "4cec1ed9449f35f0f03aecb2b44b12de15457c5768f1157133efe96c185c2b29" }, "downloads": -1, "filename": "doublex-1.8.3.tar.gz", "has_sig": false, "md5_digest": "92a1aaeca9c8c697c21317bfc914af18", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 52928, "upload_time": "2016-09-27T11:01:48", "url": "https://files.pythonhosted.org/packages/1f/92/a0646ab93de5b24309377e84ef6d6ed4dc4fb481a95595074c077713c4a8/doublex-1.8.3.tar.gz" } ], "1.8.4": [ { "comment_text": "", "digests": { "md5": "ebd8442cc0f4ceaf8f59990b6a05ca59", "sha256": "062af49d9e4148bc47b7512d3fdc8e145dea4671d074ffd54b2464a19d3757ab" }, "downloads": -1, "filename": "doublex-1.8.4.tar.gz", "has_sig": false, "md5_digest": "ebd8442cc0f4ceaf8f59990b6a05ca59", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14034, "upload_time": "2016-11-09T23:56:49", "url": "https://files.pythonhosted.org/packages/1e/cc/49160062bb7c676c0a631d66bb0b864edc32d4e6797e8517141fda6cc12e/doublex-1.8.4.tar.gz" } ], "1.9.0": [ { "comment_text": "", "digests": { "md5": "d19f3c984565e49df3247b779fbd0bb9", "sha256": "d9eb9a308f90d8c963049f430b85aad2efa920d1614aa23942281a30b1f517bb" }, "downloads": -1, "filename": "doublex-1.9.0.tar.gz", "has_sig": false, "md5_digest": "d19f3c984565e49df3247b779fbd0bb9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13311, "upload_time": "2018-07-20T20:41:31", "url": "https://files.pythonhosted.org/packages/be/2b/a475fc25eab1eb1305f7bb0d072a81070c3f4c95449634a31c1f7ab3aa2d/doublex-1.9.0.tar.gz" } ], "1.9.1": [ { "comment_text": "", "digests": { "md5": "30015c3104a10599956f9e096917f569", "sha256": "bdfa5007ec6f93fcdb05683ef559dd7919b7fe217df41fd240f8d4b2f681ba21" }, "downloads": -1, "filename": "doublex-1.9.1.tar.gz", "has_sig": false, "md5_digest": "30015c3104a10599956f9e096917f569", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13195, "upload_time": "2018-07-24T10:38:53", "url": "https://files.pythonhosted.org/packages/37/3a/57a032940ea86ef496e074366460d63d85332f065ffc4de9e4be9bb5e0b9/doublex-1.9.1.tar.gz" } ], "1.9.2": [ { "comment_text": "", "digests": { "md5": "188eace646b4f31d72a53fb1f1f444c0", "sha256": "4e9f17f346276db7faa461dfa105f17de7f837e5ceccca34f4c70d4ff9d2f20c" }, "downloads": -1, "filename": "doublex-1.9.2.tar.gz", "has_sig": false, "md5_digest": "188eace646b4f31d72a53fb1f1f444c0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14652, "upload_time": "2019-04-05T09:37:49", "url": "https://files.pythonhosted.org/packages/b1/d3/592155ee9c7486ea3ff4071d1bd6de6c4606c621b3fa8849520aef7ca3ce/doublex-1.9.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "188eace646b4f31d72a53fb1f1f444c0", "sha256": "4e9f17f346276db7faa461dfa105f17de7f837e5ceccca34f4c70d4ff9d2f20c" }, "downloads": -1, "filename": "doublex-1.9.2.tar.gz", "has_sig": false, "md5_digest": "188eace646b4f31d72a53fb1f1f444c0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14652, "upload_time": "2019-04-05T09:37:49", "url": "https://files.pythonhosted.org/packages/b1/d3/592155ee9c7486ea3ff4071d1bd6de6c4606c621b3fa8849520aef7ca3ce/doublex-1.9.2.tar.gz" } ] }