{ "info": { "author": "Taric S.A.", "author_email": "appregs@taric.es", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Software Development :: Testing" ], "description": "Custom Hamcrest Matchers\n========================\n\nHighly reusable custom hamcrest matchers\n\nFunctions\n---------\n\n- assert\\_that\\_raises\n\nAvailable matchers\n------------------\n\n- empty\n- date\\_iso (ISO 8601 formatted date string)\n- iterable\n- has\\_len\n- has\\_keys\n- matches\\_re\n- callable\\_\n- json\\_\n- subset\\_of\n- superset\\_of\n- disjoint\\_with\n\nxml matchers\n~~~~~~~~~~~~\n\n- xml\\_document\n- xml\\_root\n- xml\\_element\n- xml\\_contains\\_element\n- xml\\_namespaced\n- soap\\_document\n- soap\\_message\n\nselenium matchers\n~~~~~~~~~~~~~~~~~\n\n- is\\_displayed\n\nInstallation\n------------\n\n::\n\n python setup.py install\n\nDependences\n-----------\n\n- pyHamcrest\n\nDocumentation\n-------------\n\nassert\\_that\\_raises\n~~~~~~~~~~~~~~~~~~~~\n\n.. code:: python\n\n from hamcrest import *\n from matchers import assert_that_raises\n\n with assert_that_raises(Warning):\n raise Warning()\n\n with assert_that_raises(instance_of(Warning)):\n raise Warning()\n\n with assert_that_raises(has_property('message', has_string(u'warning'))):\n raise Warning(u'this is a warning')\n\n # this raises AssertionError: no Exception raised\n with assert_that_raises(NameError):\n raise Warning()\n\n # {'exception': Warning(u'this is a warning')}\n with assert_that_raises(Warning) as captured:\n raise Warning(u'this is a warning')\n\n print captured['exception']\n\nempty\n~~~~~\n\n.. code:: python\n\n from hamcrest import *\n from matchers import empty\n\n assert_that(str(), is_(empty()))\n assert_that(set(), is_(empty()))\n assert_that(dict(), is_(empty()))\n assert_that(list(), is_(empty()))\n assert_that(tuple(), is_(empty()))\n assert_that(unicode(), is_(empty()))\n\nIt's smart enough to deal with iterators and generators\n\n.. code:: python\n\n assert_that(iter([]), is_(empty()))\n assert_that((i for i in []), is_(empty()))\n\ndate\\_iso (ISO 8601 formatted date string)\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. code:: python\n\n from hamcrest import *\n from matchers import date_iso\n\n assert_that('1988-10-04T06:15:00.230943Z', is_(date_iso()))\n\niterable\n~~~~~~~~\n\n.. code:: python\n\n from hamcrest import *\n from matchers import iterable\n\n\n assert_that(list(), is_(iterable()))\n assert_that(dict(), is_(iterable()))\n assert_that(tuple(), is_(iterable()))\n assert_that(set(), is_(iterable()))\n\n assert_that(str(), is_(iterable()))\n assert_that(unicode(), is_(iterable()))\n\n assert_that((i for i in []), is_(iterable()))\n assert_that(iter([]), is_(iterable()))\n\n class IterateMe(object):\n l = list()\n def __iter__(self):\n return iter(l)\n\n assert_that(IterateMe(), is_(iterable()))\n\nhas\\_len\n~~~~~~~~\n\nReimplementation of has\\_length made to work with generators as well\n\n.. code:: python\n\n from hamcrest import *\n from matchers import has_len\n\n assert_that((i for i in [1, 2, 3]), has_len(3))\n\nhas\\_keys\n~~~~~~~~~\n\n.. code:: python\n\n from hamcrest import *\n from matchers import has_keys\n\n dictionary = {\n 'first': 'foo',\n 'second': 'bar'\n }\n\n assert_that(dictionary, has_keys(['first', 'second']))\n\nmatches\\_re\n~~~~~~~~~~~\n\n.. code:: python\n\n from hamcrest import *\n from matchers import matches_re\n\n assert_that('pattern', matches_re(r'pattern'))\n\ncallable\\_\n~~~~~~~~~~\n\n.. code:: python\n\n from hamcrest import *\n from matchers import callable_\n\n assert_that(lambda : 'foo', is_(callable_()))\n\njson\\_\n~~~~~~\n\n.. code:: python\n\n from hamcrest import *\n from matchers import json_\n\n assert_that(\"{'foo': ['bar']}\", is_(json_()))\n assert_that(\"{'foo': ['bar']}\", is_(json_(has_key('foo'))))\n\nsubset\\_of\n~~~~~~~~~~\n\n.. code:: python\n\n from hamcrest import *\n from matchers import subset_of\n\n assert_that([1, 2], is_(subset_of([1, 2, 3])))\n\nsuperset\\_of\n~~~~~~~~~~~~\n\n.. code:: python\n\n from hamcrest import *\n from matchers import superset_of\n\n assert_that([1, 2, 3], is_(superset_of([1, 2])))\n\ndisjoint\\_with\n~~~~~~~~~~~~~~\n\n.. code:: python\n\n from hamcrest import *\n from matchers import disjoint_with\n\n assert_that([1, 2, 3], is_(disjoint_with([4, 5, 6])))\n\nxml\\_document\n~~~~~~~~~~~~~\n\n.. code:: python\n\n from hamcrest import *\n from matchers import xml_document\n from xml.etree import Element\n\n assert_that('', is_(xml_document()))\n assert_that('', is_(xml_document(instance_of(Element))))\n\nxml\\_root\n~~~~~~~~~\n\n.. code:: python\n\n from hamcrest import *\n from matchers import xml_root\n\n assert_that('', xml_root(tag='element'))\n\nxml\\_element\n~~~~~~~~~~~~\n\n.. code:: python\n\n from hamcrest import *\n from matchers import xml_document, xml_element\n\n assert_that('', is_(xml_element('element')))\n assert_that('', is_(xml_element('element', another_matcher)))\n assert_that('', is_(xml_element(tag='element', ns='foo')))\n\nxml\\_contains\\_element\n~~~~~~~~~~~~~~~~~~~~~~\n\n.. code:: python\n\n from hamcrest import *\n from matchers import xml_root, xml_element, xml_contains_element\n\n assert_that('', \n is_(xml_element('parent', xml_contains_element('child'))))\n\n assert_that('', \n xml_root(is_(xml_element('parent', xml_contains_element('child')))))\n\nxml\\_namespaced\n~~~~~~~~~~~~~~~\n\n.. code:: python\n\n from hamcrest import *\n from matchers import xml_namespaced\n\n assert_that('',\n is_(xml_namespaced('http://foo.com')))\n\nsoap\\_document\n~~~~~~~~~~~~~~\n\n.. code:: python\n\n from hamcrest import *\n from matchers import xml_document, soap_document\n\n ns_url = \"http://schemas.xmlsoap.org/soap/envelope/\"\n string = \"\"\n\n assert_that(string, is_(xml_document(is_(soap_document()))))\n\nsoap\\_message\n~~~~~~~~~~~~~\n\n.. code:: python\n\n from hamcrest import *\n from matchers import xml_document, soap_document, soap_message\n\n ns_url = \"http://schemas.xmlsoap.org/soap/envelope/\"\n string = \"\"\"\n \"\n \n \n \"\"\"\n\n assert_that(string, \n is_(xml_document(is_(soap_document(is_(soap_message()))))))\n\nis\\_displayed\n~~~~~~~~~~~~~\n\n.. code:: python\n\n from hamcrest import *\n from matchers import is_displayed\n\n from selenium import webdriver\n\n browser = webdriver.Firefox()\n browser.open('wwww.google.com')\n\n logo = browser.find_element_by_css_selector('#hplogo')\n\n assert_that(logo, is_displayed())", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/grupotaric/matchers/tags", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/grupotaric/matchers", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "matchers", "package_url": "https://pypi.org/project/matchers/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/matchers/", "project_urls": { "Download": "https://github.com/grupotaric/matchers/tags", "Homepage": "https://github.com/grupotaric/matchers" }, "release_url": "https://pypi.org/project/matchers/0.22/", "requires_dist": null, "requires_python": null, "summary": "Collection of highly reusable hamcrest matchers", "version": "0.22" }, "last_serial": 794559, "releases": { "0.18": [ { "comment_text": "", "digests": { "md5": "33df2febcc1631d4bebbd4dd87287f57", "sha256": "bd026a1b553183f9e8253dc59c97c7d631dfde097e6a815448048bd52443fbcd" }, "downloads": -1, "filename": "matchers-0.18.tar.gz", "has_sig": false, "md5_digest": "33df2febcc1631d4bebbd4dd87287f57", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6096, "upload_time": "2013-02-28T17:02:41", "url": "https://files.pythonhosted.org/packages/b3/40/a7b45025560c622f0c18bf741bb35c5486dc74019dc1e01b19615b7e7a26/matchers-0.18.tar.gz" } ], "0.19": [ { "comment_text": "", "digests": { "md5": "8e6a9406a4ac2f698fd719527675c99f", "sha256": "d47ff9286916dd758b8e17d906c4b94b627de8b6d1c857e37f15a37b10d9993d" }, "downloads": -1, "filename": "matchers-0.19.tar.gz", "has_sig": false, "md5_digest": "8e6a9406a4ac2f698fd719527675c99f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6639, "upload_time": "2013-03-04T11:47:39", "url": "https://files.pythonhosted.org/packages/9c/d4/65bd6840fc884dd0406a1145b92e315da2d7b38c7d46c5b5055bf8065771/matchers-0.19.tar.gz" } ], "0.20": [ { "comment_text": "", "digests": { "md5": "bd22a5882b8cb1f6def9e32d11662d94", "sha256": "d4b86a6fc4dfb1ae32292f34fb1a43391ce2971b88ccb9698af6c7b3a599824e" }, "downloads": -1, "filename": "matchers-0.20.tar.gz", "has_sig": false, "md5_digest": "bd22a5882b8cb1f6def9e32d11662d94", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6780, "upload_time": "2013-03-04T12:03:28", "url": "https://files.pythonhosted.org/packages/c4/f7/15d9f139d703c73d28d5a45d3b10aa2847ef1af19154e2e9173ea25d4912/matchers-0.20.tar.gz" } ], "0.22": [ { "comment_text": "", "digests": { "md5": "fd8aaa814175cc2653924399cda4476e", "sha256": "9061dc4827e3de8a52c5643a4fc5103947023b3718ca24707925949b1674ec70" }, "downloads": -1, "filename": "matchers-0.22.tar.gz", "has_sig": false, "md5_digest": "fd8aaa814175cc2653924399cda4476e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6993, "upload_time": "2013-03-12T09:59:11", "url": "https://files.pythonhosted.org/packages/70/21/65db7b32dfd506a71f896c5b12cebf7e9b38080604406195ebae4434f2b1/matchers-0.22.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "fd8aaa814175cc2653924399cda4476e", "sha256": "9061dc4827e3de8a52c5643a4fc5103947023b3718ca24707925949b1674ec70" }, "downloads": -1, "filename": "matchers-0.22.tar.gz", "has_sig": false, "md5_digest": "fd8aaa814175cc2653924399cda4476e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6993, "upload_time": "2013-03-12T09:59:11", "url": "https://files.pythonhosted.org/packages/70/21/65db7b32dfd506a71f896c5b12cebf7e9b38080604406195ebae4434f2b1/matchers-0.22.tar.gz" } ] }