{ "info": { "author": "Todd Sifleet", "author_email": "todd.siflet@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "A mock equality tool for testing\n================================\n\n|PyPi Version|\n|Travis Test Status|\n|Coveralls|\n\ntl;dr Equals is a stricter version of\n`Mock.Any `__.\n\nEquals allows you to assert certain equality constraints between python\nobjects during testing. There are times where we don't want to assert\nabsolute equality, e.g. we need to ensure two lists have the same\nelements, but don't care about order. This was designed specifically for\nusage with `Mock `_ and `doubles `_.\n\n\nUsage with Mock:\n----------------\n\n::\n\n from mock import Mock\n from equals import any_dict\n\n test_object = Mock()\n test_object.method({'bob': 'barker'})\n test_object.method.assert_called_with(any_dict)\n\nUsage with doubles:\n-------------------\n\n::\n\n from doubles import expect\n from equals import any_string\n\n\n class TestClass(object):\n def method(self, arg):\n return arg\n\n\n test_object = TestClass()\n expect(test_object).method.with_args(any_string.containing('bob'))\n\n test_object.method('bob barker')\n\n\nstrings:\n--------\n\n::\n\n from equals import any_string\n\n any_string.containing('abc') == '123 abc 456'\n any_string.starting_with('abc') == 'abcdef'\n any_string.ending_with('abc') == '123abc'\n any_string.matching('^abc$') == 'abc'\n\nnumbers:\n--------\n\n::\n\n from equals import any_number\n\n any_number.less_than(5) == 4\n any_number.less_than_or_equal_to(5) == 5\n any_number.greater_than(4) == 5\n any_number.greater_than_or_equal_to(5) == 5\n any_number.between(1, 3) == 2\n\ndictionaries:\n-------------\n\n::\n\n from equals import any_dict\n\n any_dict.containing(1, 2) == {1: 2, 2:3, 4:5}\n any_dict.containing(foo='bar') == {\n 'foo': 'bar',\n 'bob': 'barker'\n }\n any_dict.not_containing(1, foo=5) == {'foo':3, 4:5}\n\niterators:\n----------\n\n::\n\n from equals import any_iterable\n\n any_iterable.containing(1, 2, 3) == [1, 2, 3, 4, 5]\n any_iterable.containing_only(1, 2, 3) == [2, 3, 1]\n any_iterable.not_containing(1, 2) == [3, 4]\n any_iterable.with_length(2) == [3, 4]\n\nobjects:\n--------\n\n::\n\n from equals import anything\n\n anything == None\n anything == True\n anything == {1: 1}\n anything_true == 'dd'\n anything_false == ''\n\n instance_of(dict) == {}\n anything.with_attrs(foo='bar', bob='barker') == Dummy('bar', 'barker')\n instance_of(Dummy).with_attrs(foo='bar', bob='barker') == Dummy('bar', 'barker')\n\nInstallation:\n-------------\n\n::\n\n >> pip install equals\n\nDevelopment:\n------------\n\n::\n\n >> git clone https://github.com/toddsifleet/equals\n >> cd equals\n >> make bootstrap\n >> make\n\nLicense:\n--------\n\nSee LICENSE\n\n.. |Travis Test Status| image:: https://travis-ci.org/toddsifleet/equals.svg?branch=master\n :target: https://travis-ci.org/toddsifleet/equals\n\n.. |PyPi Version| image:: https://badge.fury.io/py/equals.svg\n :target: http://badge.fury.io/py/equals\n\n.. |Coveralls| image:: https://img.shields.io/coveralls/toddsifleet/equals.svg\n :target: https://coveralls.io/r/toddsifleet/equals", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/toddsifleet/equals", "keywords": null, "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "equals", "package_url": "https://pypi.org/project/equals/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/equals/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/toddsifleet/equals" }, "release_url": "https://pypi.org/project/equals/0.0.25/", "requires_dist": null, "requires_python": null, "summary": "Python Fuzzy Matchers", "version": "0.0.25" }, "last_serial": 1906942, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "257978f0b7805364c50dbb4a8d5d4116", "sha256": "27006689bbd04847156ee0e7f2bc7d2f5dfcc346f392e6f235d912c04e4ce467" }, "downloads": -1, "filename": "equals-0.0.01.tar.gz", "has_sig": false, "md5_digest": "257978f0b7805364c50dbb4a8d5d4116", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 462, "upload_time": "2014-10-23T23:21:32", "url": "https://files.pythonhosted.org/packages/32/8b/cdefc8869ce85a658f10af0802e32070e0d4714d87722ceca01a19800049/equals-0.0.01.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "1ecfe8a4fd2b3919f1c942f3b5ab13c3", "sha256": "31f1003f78de69473197f96dc9a32a16a956d24f634867d6fc453151bd998325" }, "downloads": -1, "filename": "equals-0.0.2.tar.gz", "has_sig": false, "md5_digest": "1ecfe8a4fd2b3919f1c942f3b5ab13c3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1445, "upload_time": "2014-10-28T15:30:30", "url": "https://files.pythonhosted.org/packages/8d/bf/e6e9f99867ba4712a4d5a88c16de15020b7f0d2cd5fdc117786008e1f441/equals-0.0.2.tar.gz" } ], "0.0.21": [ { "comment_text": "", "digests": { "md5": "e3a87c402edc274ebce5e2cea4141500", "sha256": "466025b590b3ec6b3171bce7786503c556d316e0fde31f532409c4f9193ebb03" }, "downloads": -1, "filename": "equals-0.0.21.tar.gz", "has_sig": false, "md5_digest": "e3a87c402edc274ebce5e2cea4141500", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1553, "upload_time": "2014-11-03T04:15:23", "url": "https://files.pythonhosted.org/packages/ac/bf/3fa7bdf22d332cf75877e402d92417e891c421df7dfae03e227c8fca79a2/equals-0.0.21.tar.gz" } ], "0.0.22": [ { "comment_text": "", "digests": { "md5": "b01d823cdd073e5f50ec7c3817e8367b", "sha256": "7e3fe7a3fd2e4ca717e7e24416c7410e466ea5c3a91dd5883e00f6e7ce31510b" }, "downloads": -1, "filename": "equals-0.0.22.tar.gz", "has_sig": false, "md5_digest": "b01d823cdd073e5f50ec7c3817e8367b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3981, "upload_time": "2015-02-11T01:26:16", "url": "https://files.pythonhosted.org/packages/74/e8/520564f6d437d75a2b0b9acb6e2e4f2fe7aed330bbc51d71ee8a739d71d3/equals-0.0.22.tar.gz" } ], "0.0.23": [ { "comment_text": "", "digests": { "md5": "01a8a7fbf531a0ebed75522776bc5b98", "sha256": "850a521907f6dac1e4d2115841066fe4b7de4e833edb54233e6f85460f54d0b9" }, "downloads": -1, "filename": "equals-0.0.23.tar.gz", "has_sig": false, "md5_digest": "01a8a7fbf531a0ebed75522776bc5b98", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3980, "upload_time": "2015-02-17T03:55:31", "url": "https://files.pythonhosted.org/packages/bc/f5/77fc14d8003b094e85bc9e5eb31508730b703a730d79f854d8e4924d4a36/equals-0.0.23.tar.gz" } ], "0.0.24": [ { "comment_text": "", "digests": { "md5": "29561735116102ceb1833e1025dbccbd", "sha256": "e3778534329b04ccb088da9139c7fe1fd815e4de599c862be6f85702e851f94a" }, "downloads": -1, "filename": "equals-0.0.24.tar.gz", "has_sig": false, "md5_digest": "29561735116102ceb1833e1025dbccbd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4105, "upload_time": "2015-03-23T14:48:31", "url": "https://files.pythonhosted.org/packages/83/b8/cebd4d06f23c84703d28c5321bbc4d10f649c398cc405be0ce837e5e2877/equals-0.0.24.tar.gz" } ], "0.0.25": [ { "comment_text": "", "digests": { "md5": "c2f743952d830aceb628bc665b47d6de", "sha256": "2206193e8160c3aa44f89a2a20d1e0925bf0c6c1c1c8eda1fd2a0e6b2552cbcd" }, "downloads": -1, "filename": "equals-0.0.25.tar.gz", "has_sig": false, "md5_digest": "c2f743952d830aceb628bc665b47d6de", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4697, "upload_time": "2016-01-16T00:17:13", "url": "https://files.pythonhosted.org/packages/bf/97/a1b38b77696e90ceda10e3161f81e2b2dc2f7bb7b33b66163ff54f983f89/equals-0.0.25.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c2f743952d830aceb628bc665b47d6de", "sha256": "2206193e8160c3aa44f89a2a20d1e0925bf0c6c1c1c8eda1fd2a0e6b2552cbcd" }, "downloads": -1, "filename": "equals-0.0.25.tar.gz", "has_sig": false, "md5_digest": "c2f743952d830aceb628bc665b47d6de", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4697, "upload_time": "2016-01-16T00:17:13", "url": "https://files.pythonhosted.org/packages/bf/97/a1b38b77696e90ceda10e3161f81e2b2dc2f7bb7b33b66163ff54f983f89/equals-0.0.25.tar.gz" } ] }