Exemplo n.º 1
0
def basic(basic=None,
          generate_parameter=None,
          generate=None,
          simplify=None,
          copy=None):
    """Provides a facility to write your own strategies with significantly less
    work.

    See documentation for more details.

    """
    from hypothesis.searchstrategy.basic import basic_strategy, BasicStrategy
    from copy import deepcopy
    if basic is not None:
        if isinstance(basic, type):
            basic = basic()
        check_type(BasicStrategy, basic)
        generate_parameter = generate_parameter or basic.generate_parameter
        generate = generate or basic.generate
        simplify = simplify or basic.simplify
        copy = copy or basic.copy
    return basic_strategy(parameter=generate_parameter,
                          generate=generate,
                          simplify=simplify,
                          copy=copy or deepcopy)
Exemplo n.º 2
0
def basic(
    basic=None,
    generate_parameter=None, generate=None, simplify=None, copy=None
):
    """Provides a facility to write your own strategies with significantly less
    work.

    See documentation for more details.

    """
    note_deprecation(
        'basic() is deprecated as Hypothesis will be moving to a new '
        'model that cannot support it. There is probably no one-size fits all '
        'replacement solution here. If you can\'t figure out a good '
        'solution, please ask.'
    )

    from hypothesis.searchstrategy.basic import basic_strategy, BasicStrategy
    from copy import deepcopy
    if basic is not None:
        if isinstance(basic, type):
            basic = basic()
        check_type(BasicStrategy, basic)
        generate_parameter = generate_parameter or basic.generate_parameter
        generate = generate or basic.generate
        simplify = simplify or basic.simplify
        copy = copy or basic.copy
    return basic_strategy(
        parameter=generate_parameter,
        generate=generate, simplify=simplify, copy=copy or deepcopy
    )
def test_can_simplify_bitfields(i):
    bitfield = basic_strategy(
        parameter=lambda r: r.getrandbits(128),
        generate=lambda r, p: r.getrandbits(128) & p,
        simplify=simplify_bitfield,
        copy=lambda x: x,
    )

    assert minimal(bitfield, lambda x: x & (1 << i)) == 1 << i
def test_can_simplify_bitfields(i):
    bitfield = basic_strategy(
        parameter=lambda r: r.getrandbits(128),
        generate=lambda r, p: r.getrandbits(128) & p,
        simplify=simplify_bitfield,
        copy=lambda x: x,
    )

    assert minimal(bitfield, lambda x: x & (1 << i)) == 1 << i
def test_can_simplify_bitfields_with_composite(c):
    bitfield = basic_strategy(
        parameter=lambda r: r.getrandbits(128),
        generate=lambda r, p: r.getrandbits(128) & p,
        simplify=simplify_bitfield,
        copy=lambda x: x,
    )

    t = minimal(bitfield, lambda x: popcount(x) >= c)
    assert popcount(t) == c
def test_can_simplify_bitfields_with_composite(c):
    bitfield = basic_strategy(
        parameter=lambda r: r.getrandbits(128),
        generate=lambda r, p: r.getrandbits(128) & p,
        simplify=simplify_bitfield,
        copy=lambda x: x,
    )

    t = minimal(bitfield, lambda x: popcount(x) >= c)
    assert popcount(t) == c
def test_does_not_get_stuck_in_a_loop():
    bad_strategy = basic_strategy(generate=lambda r, p: 1,
                                  simplify=lambda r, v: [v])

    @timeout(2)
    @given(bad_strategy)
    def oh_noes(x):
        assert x != 1

    with pytest.raises(AssertionError):
        oh_noes()
def test_does_not_get_stuck_in_a_loop():
    bad_strategy = basic_strategy(
        generate=lambda r, p: 1,
        simplify=lambda r, v: [v]
    )

    @timeout(2)
    @given(bad_strategy)
    def oh_noes(x):
        assert x != 1
    with pytest.raises(AssertionError):
        oh_noes()
Exemplo n.º 9
0
def test_can_load_a_very_deep_example_from_the_db():
    bad_strategy = basic_strategy(generate=lambda r, p: 1,
                                  simplify=lambda r, v: [v])

    @timeout(2)
    @given(bad_strategy, settings=Settings(database=ExampleDatabase()))
    def oh_noes(x):
        assert x != 1

    with pytest.raises(AssertionError):
        oh_noes()
    with pytest.raises(AssertionError):
        oh_noes()
def test_can_load_a_very_deep_example_from_the_db():
    bad_strategy = basic_strategy(
        generate=lambda r, p: 1,
        simplify=lambda r, v: [v]
    )

    @timeout(2)
    @given(bad_strategy, settings=Settings(database=ExampleDatabase()))
    def oh_noes(x):
        assert x != 1
    with pytest.raises(AssertionError):
        oh_noes()
    with pytest.raises(AssertionError):
        oh_noes()
Exemplo n.º 11
0
def test_cache_is_cleaned_up_on_gc_1():
    st = basic_strategy(
        generate=lambda r, p: r.getrandbits(128),
        simplify=simplify_bitfield,
        copy=lambda x: x,
    )

    @given(st)
    def test_all_good(x):
        pass

    test_all_good()

    gc_clear()

    assert len(st.reify_cache) == 0
def test_cache_is_cleaned_up_on_gc_1():
    st = basic_strategy(
        generate=lambda r, p: r.getrandbits(128),
        simplify=simplify_bitfield,
        copy=lambda x: x,
    )

    @given(st)
    def test_all_good(x):
        pass

    test_all_good()

    gc_clear()

    assert len(st.reify_cache) == 0
Exemplo n.º 13
0
def test_cache_is_cleaned_up_on_gc_2():
    st = basic_strategy(
        generate=lambda r, p: r.getrandbits(128),
        simplify=simplify_bitfield,
        copy=lambda x: x,
    )

    @given(st)
    def test_all_bad(x):
        assert False

    try:
        test_all_bad()
    except AssertionError:
        pass

    gc_clear()

    assert all(isinstance(v, integer_types) for v in st.reify_cache.values())
    assert len(st.reify_cache) == 0, len(st.reify_cache)
def test_cache_is_cleaned_up_on_gc_2():
    st = basic_strategy(
        generate=lambda r, p: r.getrandbits(128),
        simplify=simplify_bitfield,
        copy=lambda x: x,
    )

    @given(st)
    def test_all_bad(x):
        assert False

    try:
        test_all_bad()
    except AssertionError:
        pass

    gc_clear()

    assert all(isinstance(v, integer_types) for v in st.reify_cache.values())
    assert len(st.reify_cache) == 0, len(st.reify_cache)
Exemplo n.º 15
0
def basic(
    basic=None,
    generate_parameter=None, generate=None, simplify=None, copy=None
):
    """Provides a facility to write your own strategies with significantly less
    work.

    See documentation for more details.

    """
    from hypothesis.searchstrategy.basic import basic_strategy, BasicStrategy
    from copy import deepcopy
    if basic is not None:
        if isinstance(basic, type):
            basic = basic()
        check_type(BasicStrategy, basic)
        generate_parameter = generate_parameter or basic.generate_parameter
        generate = generate or basic.generate
        simplify = simplify or basic.simplify
        copy = copy or basic.copy
    return basic_strategy(
        parameter=generate_parameter,
        generate=generate, simplify=simplify, copy=copy or deepcopy
    )
Exemplo n.º 16
0
 def basic_to_strategy(basic, settings):
     return basic_strategy(
         generate=basic.generate,
         parameter=basic.generate_parameter,
         simplify=basic.simplify, copy=basic.copy
     )
Exemplo n.º 17
0
TestManyFlatmaps = strategy_test_suite(
    strategy(int).flatmap(integers_from).flatmap(integers_from).flatmap(
        integers_from).flatmap(integers_from))

TestIntStreams = strategy_test_suite(streaming(int))
TestStreamLists = strategy_test_suite(streaming(int))
TestIntStreamStreams = strategy_test_suite(streaming(streaming(int)))

TestBoringBitfieldsClass = strategy_test_suite(BoringBitfields)
TestBitfieldsClass = strategy_test_suite(Bitfields)
TestBitfieldsInstance = strategy_test_suite(Bitfields())

TestBitfields = strategy_test_suite([
    basic_strategy(
        generate=lambda r, p: r.getrandbits(128),
        simplify=simplify_bitfield,
        copy=lambda x: x,
    )
])

TestBitfieldsSet = strategy_test_suite({
    basic_strategy(
        generate=lambda r, p: r.getrandbits(128),
        simplify=simplify_bitfield,
        copy=lambda x: x,
    )
})

TestBitfield = strategy_test_suite(
    basic_strategy(
        generate=lambda r, p: r.getrandbits(128),
Exemplo n.º 18
0
 def basic_to_strategy(basic, settings):
     return basic_strategy(generate=basic.generate,
                           parameter=basic.generate_parameter,
                           simplify=basic.simplify,
                           copy=basic.copy)
Exemplo n.º 19
0
def test_can_find_bitfields_without_simplifying():
    assert minimal(
        basic_strategy(generate=lambda r, p: r.getrandbits(128)),
        lambda x: x & 1
    )
def test_can_find_bitfields_without_simplifying():
    assert minimal(basic_strategy(generate=lambda r, p: r.getrandbits(128)),
                   lambda x: x & 1)
Exemplo n.º 21
0
)

TestIntStreams = strategy_test_suite(streaming(int))
TestStreamLists = strategy_test_suite(streaming(int))
TestIntStreamStreams = strategy_test_suite(streaming(streaming(int)))


TestBoringBitfieldsClass = strategy_test_suite(BoringBitfields)
TestBitfieldsClass = strategy_test_suite(Bitfields)
TestBitfieldsInstance = strategy_test_suite(Bitfields())


TestBitfields = strategy_test_suite([
    basic_strategy(
        generate=lambda r, p: r.getrandbits(128),
        simplify=simplify_bitfield,
        copy=lambda x: x,
    )
])

TestBitfieldsSet = strategy_test_suite({
    basic_strategy(
        generate=lambda r, p: r.getrandbits(128),
        simplify=simplify_bitfield,
        copy=lambda x: x,
    )
})


TestBitfield = strategy_test_suite(
    basic_strategy(