Example #1
0
    def test_args_call_pos (self):
        assert _args(isstring)()
        assert _args(isstring)('dharma')
        assert _args(isstring)('dharma', 'miles')

        assert not _args(isstring)(4, "bad robot!")

        assert _and(_args(isstring),
                    _args(_not(isempty)))('jack', 'sawyer')
        assert not _and(_args(isstring),
                        _args(_not(isempty)))('jack', 'sawyer', '')
Example #2
0
    def test_args_idx (self):
        assert _args[0](isstring)("bad robot!", 4, 8)
        assert _args[-1](isint)(4, (), 8)
        assert _and(_args[0](isstring),
                    _args[1](isnone))("bad robot!", None)

        assert not _args[0](isstring)(4, "bad robot!")
Example #3
0
    def test_args_mix_call_idx (self):
        assert _args[0](isstring, ricardo=isstring)("bad robot!", 4, 8, ricardo='#2')
        assert _args[-1](isint, ricardo=isstring)(4, (), 8, ricardo='#2')
        assert _and(_args[0](isstring),
                    _args[1](isnone))("bad robot!", None)

        assert not _args[0](isint, ricardo=isstring)("bad robot!", ricardo='#2')
        assert not _args[0](isint, ricardo=isstring)(4, "bad robot!", ricardo=2)
Example #4
0
    def test_and (self):
        # no predicates
        assert _and()(True)

        # single predicate
        assert _and(isempty)('')
        assert _and(istrue)(True)
        assert not _and(isfalse)(True)
        assert not _and(istrue)(False)

        # multiple predicates
        assert _and(isempty, not_)('')
        assert not _and(isfalse, isstring)(False)
        assert not _and(isfalse, isstring)(True)
        assert not _and(istrue, isstring)(False)
Example #5
0
    def test_args_idx_slice (self):
        assert _args[:](isstring)()
        assert _args[:](isstring)('dharma')
        assert _args[:](isstring)('dharma', 'miles')
        assert _args[:2](isstring)('dharma', 'miles')
        assert _args[0:1](isstring)("bad robot!", 4, 8)
        assert _args[2:4](isstring)(4, 8, 'linus', 'juliet')
        assert _args[2:](isstring)(4, 8, 'linus', 'juliet')
        assert _args[1::2](isstring)(4, 'linus', 8, 'juliet', 15, 'hurley', 16)
        assert _args[1:2](isiterable)(4, (), 8)
        assert _args[:-1](isint)(4, 8, ())
        assert _args[-3:-1](isint)(4, 8, ())

        assert not _args[0:1](isstring)(4, "bad robot!")
        assert not _args[:](isstring)('dharma', 4, 8, 15, 16, 23, 42)

        assert _and(_args[0:1](isstring),
                    _args[1:2](isnone))("bad robot!", None)
Example #6
0
 def test_short_circuit (self):
     assert not _and(false, fail)()
     assert _or(true, fail)()
     assert not _not(true, fail)()
Example #7
0
 def test_composition (self):
     assert not _and(_not(isstring), _or(isempty, isatom))('')
     assert _and(_not(isstring), _or(isempty, isatom))(())
     assert _and(_not(isstring), _or(isempty, isatom))(42)