{ "info": { "author": "Cykooz", "author_email": "cykooz@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Testing" ], "description": "**************\ncykooz.testing\n**************\n\ncykooz.testing is collection of helper utilities for testing.\n\nUtilities\n*********\n\nDict\n====\n\nA dict object that can be compared with other dict object\nwithout regard to keys that did not presents in the ``Dict`` instance.\n\n.. code-block:: python\n\n >>> from cykooz.testing import Dict\n >>> d1 = Dict(a=1, b='foo')\n >>> d2 = {'a': 1, 'b': 'foo', 'c': True}\n >>> d1 == d2\n True\n >>> d2 == d1\n True\n >>> d1 != d2\n False\n >>> d3 = {'a': 1, 'c': True}\n >>> d1 == d3\n False\n >>> d3 == d1\n False\n >>> d1 != d3\n True\n >>> Dict({'a': 1})\n Dict({'a': 1})\n\nShort alias:\n\n.. code-block:: python\n\n >>> from cykooz.testing import D\n >>> {'a': 1, 'b': 'foo'} == D({'a': 1})\n True\n\nList\n====\n\nA list object that can be compared with other list object\nwithout regard to extra items contains in the other list object.\n\n.. code-block:: python\n\n >>> from cykooz.testing import List\n >>> l1 = List([1, 'foo'])\n >>> l2 = [1, 'foo', True]\n >>> l1 == l2\n True\n >>> l2 == l1\n True\n >>> l1 != l2\n False\n >>> l3 = [1, True]\n >>> l1 == l3\n False\n >>> l3 == l1\n False\n >>> l1 != l3\n True\n >>> l1 == [1]\n False\n >>> List([1, 'foo', True])\n List([1, 'foo', True])\n >>> List([Dict(), Dict()]) == [{'a': 1}, {'b': 2}]\n True\n\nShort alias:\n\n.. code-block:: python\n\n >>> from cykooz.testing import L\n >>> [1, 'foo', True] == L([1, 'foo'])\n True\n\nAnyValue\n========\n\nInstance of this class is equal to any other values.\n\n.. code-block:: python\n\n >>> from cykooz.testing import AnyValue\n >>> v = AnyValue()\n >>> v == 1\n True\n >>> 1 == v\n True\n >>> v != 1\n False\n >>> v == {'a': 1, 'b': 'foo'}\n True\n >>> v == [1, 2, 3, 'b']\n True\n >>> v == AnyValue()\n True\n >>> v\n \n >>> {v: 1}\n Traceback (most recent call last):\n ...\n TypeError: unhashable type: 'AnyValue'\n >>> [v, v, v] == [1, 2, 'foo']\n True\n >>> [v, v, 1] == [1, 2, 'foo']\n False\n >>> [v, v] == [1, 2, 'foo']\n False\n >>> {'a': v, 'b': 2} == {'a': 1, 'b': 2}\n True\n\nShort alias:\n\n.. code-block:: python\n\n >>> from cykooz.testing import ANY\n >>> 1 == ANY\n True\n\nRegExpString\n============\n\nInstance of this class is equal to any other values if it is matched\nto give regexp pattern.\n\n.. code-block:: python\n\n >>> v = RegExpString('first.*')\n >>> v == 1\n False\n >>> 1 == v\n False\n >>> v != 1\n True\n >>> v == 'first class'\n True\n >>> 'first class' == v\n True\n >>> v != 'first class'\n False\n >>> v\n \n >>> {v: 1}\n Traceback (most recent call last):\n ...\n TypeError: unhashable type: 'RegExpString'\n >>> [v, v, v] == [1, 2, 'first class']\n False\n >>> [v, v, v] == ['first class', 'first bus', 'first time']\n True\n\nShort alias:\n\n.. code-block:: python\n\n >>> from cykooz.testing import R\n >>> 'first class' == R('first.*')\n True\n\nUrl\n===\n\nA url object that can be compared with other url objects\nwithout regard to the vagaries of encoding, escaping, and ordering\nof parameters in query strings.\n\n.. code-block:: python\n\n >>> from cykooz.testing import Url\n >>> url1 = Url('http://domain.com/container?limit=6&offset=0')\n >>> url2 = Url('http://domain.com/container?offset=0&limit=6')\n >>> url1 == url2\n True\n >>> url2 = Url('http://domain.com/container?limit=6')\n >>> url1 == url2\n False\n >>> url1 == 'http://domain.com/container?offset=0&limit=6'\n True\n >>> 'http://domain.com/container?offset=0&limit=6' == url1\n True\n >>> {'key': 'http://domain.com/container?offset=0&limit=6'} == {'key': url1}\n True\n\n\n.. Changelog format guide.\n - Before make new release of core egg you MUST add here a header for new version with name \"Next release\".\n - After all headers and paragraphs you MUST add only ONE empty line.\n - At the end of sentence which describes some changes SHOULD be identifier of task from our task manager.\n This identifier MUST be placed in brackets. If a hot fix has not the task identifier then you\n can use the word \"HOTFIX\" instead of it.\n - At the end of sentence MUST stand a point.\n - List of changes in the one version MUST be grouped in the next sections:\n - Features\n - Changes\n - Bug Fixes\n - Docs\n\nCHANGELOG\n*********\n\n1.0.1 (2019-07-12)\n==================\n\nBug Fixes\n---------\n\n- Fixed \"Development Status\" of package.\n\n1.0 (2019-07-12)\n================\n\nFeatures\n--------\n\n- Initial release.\n\n\n", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Cykooz/cykooz.testing", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "cykooz.testing", "package_url": "https://pypi.org/project/cykooz.testing/", "platform": "", "project_url": "https://pypi.org/project/cykooz.testing/", "project_urls": { "Homepage": "https://github.com/Cykooz/cykooz.testing" }, "release_url": "https://pypi.org/project/cykooz.testing/1.0.1/", "requires_dist": [ "setuptools", "six", "pytest ; extra == 'test'" ], "requires_python": "", "summary": "Collection of helper utilities for testing.", "version": "1.0.1" }, "last_serial": 5522167, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "8708a8b2a9cac6d99a23af91c82d762d", "sha256": "bc712fe81a1b54062239c160fc14944b03679d0331c7901d64151d53062675e8" }, "downloads": -1, "filename": "cykooz.testing-1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8708a8b2a9cac6d99a23af91c82d762d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5756, "upload_time": "2019-07-12T08:11:27", "url": "https://files.pythonhosted.org/packages/ec/97/b059d21d58d1e4d5662039daf35e710e8621af07a4f6398a479687b2bb2d/cykooz.testing-1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5fb2f7aad7f4dc29f6e9620421952d5a", "sha256": "88ec5a01bd6391ecafe1905c8831411ebf7f1a9e55750da1e6b7ffd97669ddb7" }, "downloads": -1, "filename": "cykooz.testing-1.0.tar.gz", "has_sig": false, "md5_digest": "5fb2f7aad7f4dc29f6e9620421952d5a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7594, "upload_time": "2019-07-12T08:11:29", "url": "https://files.pythonhosted.org/packages/21/fb/6114eb892a683a26df0c29d0014180e64b10031046cf308a6fced17f7f59/cykooz.testing-1.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "d481bae0396708910adb1f988c0dda57", "sha256": "bb967838bdf41915f4b745c57480e18f83bb5af38b3770428ee2f2e0c4b2fbd4" }, "downloads": -1, "filename": "cykooz.testing-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d481bae0396708910adb1f988c0dda57", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5819, "upload_time": "2019-07-12T08:23:15", "url": "https://files.pythonhosted.org/packages/f1/04/7a4bf2c0cd33f534ae03c0d08d49b80ae2913d7b4e49365cc811b5bf7f2c/cykooz.testing-1.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "69d43a5d64dc423831e702cd89c117c7", "sha256": "eba0aa36a8c2e7dc26b6f1e3848cb313f58af51a84bd083224dd7f92c19226b9" }, "downloads": -1, "filename": "cykooz.testing-1.0.1.tar.gz", "has_sig": false, "md5_digest": "69d43a5d64dc423831e702cd89c117c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7639, "upload_time": "2019-07-12T08:23:17", "url": "https://files.pythonhosted.org/packages/95/3c/4e79d116cceb8b5927f2d690732d54490dc1a29cbe9d8c32ba1f4e014e90/cykooz.testing-1.0.1.tar.gz" } ], "1.0b1": [ { "comment_text": "", "digests": { "md5": "91bb59007f84698bfd588ea85be422f9", "sha256": "36778f88a8f90e1bee5d00065fea6bda6584d876aeb2a103b0c525ea1117fb30" }, "downloads": -1, "filename": "cykooz.testing-1.0b1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "91bb59007f84698bfd588ea85be422f9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5788, "upload_time": "2019-05-13T13:51:43", "url": "https://files.pythonhosted.org/packages/5a/14/5f25aa778847275ccd58b2ef01674b71b629258e61e0dd6e5a2a4601f97b/cykooz.testing-1.0b1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "12d8a3f1117e9932a88190cba706642d", "sha256": "b8caab4c02fe472a7816ca142f96d4b4768c246a5b70efc689b86c33576ce8df" }, "downloads": -1, "filename": "cykooz.testing-1.0b1.tar.gz", "has_sig": false, "md5_digest": "12d8a3f1117e9932a88190cba706642d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7592, "upload_time": "2019-05-13T13:51:45", "url": "https://files.pythonhosted.org/packages/ba/fc/7687d06995afdaf6651dbd3e90738c55e86afae4c8a1ee09d839be209810/cykooz.testing-1.0b1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d481bae0396708910adb1f988c0dda57", "sha256": "bb967838bdf41915f4b745c57480e18f83bb5af38b3770428ee2f2e0c4b2fbd4" }, "downloads": -1, "filename": "cykooz.testing-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d481bae0396708910adb1f988c0dda57", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5819, "upload_time": "2019-07-12T08:23:15", "url": "https://files.pythonhosted.org/packages/f1/04/7a4bf2c0cd33f534ae03c0d08d49b80ae2913d7b4e49365cc811b5bf7f2c/cykooz.testing-1.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "69d43a5d64dc423831e702cd89c117c7", "sha256": "eba0aa36a8c2e7dc26b6f1e3848cb313f58af51a84bd083224dd7f92c19226b9" }, "downloads": -1, "filename": "cykooz.testing-1.0.1.tar.gz", "has_sig": false, "md5_digest": "69d43a5d64dc423831e702cd89c117c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7639, "upload_time": "2019-07-12T08:23:17", "url": "https://files.pythonhosted.org/packages/95/3c/4e79d116cceb8b5927f2d690732d54490dc1a29cbe9d8c32ba1f4e014e90/cykooz.testing-1.0.1.tar.gz" } ] }