This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

Highly reusable custom hamcrest matchers

Functions

  • assert_that_raises

Available matchers

  • empty
  • date_iso (ISO 8601 formatted date string)
  • iterable
  • has_len
  • has_keys
  • matches_re
  • callable_
  • json_
  • subset_of
  • superset_of
  • disjoint_with

xml matchers

  • xml_document
  • xml_root
  • xml_element
  • xml_contains_element
  • xml_namespaced
  • soap_document
  • soap_message

selenium matchers

  • is_displayed

Installation

python setup.py install

Dependences

  • pyHamcrest

Documentation

assert_that_raises

from hamcrest import *
from matchers import assert_that_raises

with assert_that_raises(Warning):
    raise Warning()

with assert_that_raises(instance_of(Warning)):
    raise Warning()

with assert_that_raises(has_property('message', has_string(u'warning'))):
    raise Warning(u'this is a warning')

# this raises AssertionError: no Exception raised
with assert_that_raises(NameError):
    raise Warning()

# {'exception': Warning(u'this is a warning')}
with assert_that_raises(Warning) as captured:
    raise Warning(u'this is a warning')

print captured['exception']

empty

from hamcrest import *
from matchers import empty

assert_that(str(), is_(empty()))
assert_that(set(), is_(empty()))
assert_that(dict(), is_(empty()))
assert_that(list(), is_(empty()))
assert_that(tuple(), is_(empty()))
assert_that(unicode(), is_(empty()))

It’s smart enough to deal with iterators and generators

assert_that(iter([]), is_(empty()))
assert_that((i for i in []), is_(empty()))

date_iso (ISO 8601 formatted date string)

from hamcrest import *
from matchers import date_iso

assert_that('1988-10-04T06:15:00.230943Z', is_(date_iso()))

iterable

from hamcrest import *
from matchers import iterable


assert_that(list(), is_(iterable()))
assert_that(dict(), is_(iterable()))
assert_that(tuple(), is_(iterable()))
assert_that(set(), is_(iterable()))

assert_that(str(), is_(iterable()))
assert_that(unicode(), is_(iterable()))

assert_that((i for i in []), is_(iterable()))
assert_that(iter([]), is_(iterable()))

class IterateMe(object):
    l = list()
    def __iter__(self):
        return iter(l)

assert_that(IterateMe(), is_(iterable()))

has_len

Reimplementation of has_length made to work with generators as well

from hamcrest import *
from matchers import has_len

assert_that((i for i in [1, 2, 3]), has_len(3))

has_keys

from hamcrest import *
from matchers import has_keys

dictionary = {
    'first': 'foo',
    'second': 'bar'
}

assert_that(dictionary, has_keys(['first', 'second']))

matches_re

from hamcrest import *
from matchers import matches_re

assert_that('pattern', matches_re(r'pattern'))

callable_

from hamcrest import *
from matchers import callable_

assert_that(lambda : 'foo', is_(callable_()))

json_

from hamcrest import *
from matchers import json_

assert_that("{'foo': ['bar']}", is_(json_()))
assert_that("{'foo': ['bar']}", is_(json_(has_key('foo'))))

subset_of

from hamcrest import *
from matchers import subset_of

assert_that([1, 2], is_(subset_of([1, 2, 3])))

superset_of

from hamcrest import *
from matchers import superset_of

assert_that([1, 2, 3], is_(superset_of([1, 2])))

disjoint_with

from hamcrest import *
from matchers import disjoint_with

assert_that([1, 2, 3], is_(disjoint_with([4, 5, 6])))

xml_document

from hamcrest import *
from matchers import xml_document
from xml.etree import Element

assert_that('<element/>', is_(xml_document()))
assert_that('<element/>', is_(xml_document(instance_of(Element))))

xml_root

from hamcrest import *
from matchers import xml_root

assert_that('<element/>', xml_root(tag='element'))

xml_element

from hamcrest import *
from matchers import xml_document, xml_element

assert_that('<element/>', is_(xml_element('element')))
assert_that('<element/>', is_(xml_element('element', another_matcher)))
assert_that('<foo:element/>', is_(xml_element(tag='element', ns='foo')))

xml_contains_element

from hamcrest import *
from matchers import xml_root, xml_element, xml_contains_element

assert_that('<parent><child/></parent>',
    is_(xml_element('parent', xml_contains_element('child'))))

assert_that('<parent><child/></parent>',
    xml_root(is_(xml_element('parent', xml_contains_element('child')))))

xml_namespaced

from hamcrest import *
from matchers import xml_namespaced

assert_that('<element xmlns="http://foo.com"/>',
    is_(xml_namespaced('http://foo.com')))

soap_document

from hamcrest import *
from matchers import xml_document, soap_document

ns_url = "http://schemas.xmlsoap.org/soap/envelope/"
string = "<Envelope xmlns='" + ns_url + "' />"

assert_that(string, is_(xml_document(is_(soap_document()))))

soap_message

from hamcrest import *
from matchers import xml_document, soap_document, soap_message

ns_url = "http://schemas.xmlsoap.org/soap/envelope/"
string = """
    <Envelope xmlns='""" + ns_url + """' >"
        <Body/>
    </Envelope>
"""

assert_that(string,
        is_(xml_document(is_(soap_document(is_(soap_message()))))))

is_displayed

from hamcrest import *
from matchers import is_displayed

from selenium import webdriver

browser = webdriver.Firefox()
browser.open('wwww.google.com')

logo = browser.find_element_by_css_selector('#hplogo')

assert_that(logo, is_displayed())
Release History

Release History

0.22

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.20

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.19

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.18

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
matchers-0.22.tar.gz (7.0 kB) Copy SHA256 Checksum SHA256 Source Mar 12, 2013

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting