How sure works ============== The class ``sure.AssertionBuilder`` creates objects capable of doing assertions. The AssertionBuilder simply arranges a vast set of possible assertions that are composed by a ``source`` object and a ``destination`` object. Every assertion, even implicitly if implicitly like in ``(2 < 3).should.be.true``, is doing a source/destination matching. Chainability ------------ Some specific assertion methods are chainable, it can be useful for short assertions like: .. code:: python PERSON = { "name": "John", "facebook_info": { "token": "abcd" } } PERSON.should.have.key("facebook_info").being.a(dict) Monkey-patching =============== Lincoln Clarete has written the module [``sure/magic.py``] which I simply added to sure. The most exciting part of the story is that Lincoln exposed the code with a super clean API, it's called `forbidden fruit `__ Why CPython-only ? ------------------ Sure uses the `ctypes `__ module to break in python protections against monkey patching. Although ctypes might also be available in other implementations such as `Jython `__, only the CPython provide ```ctypes.pythonapi`` `__ the features required by sure.