Exemplo n.º 1
0
def test_minor_variations_in_code_change_the_randomization():
    table = StrategyTable()
    settings = hs.Settings(derandomize=True)
    settings.database = None
    table.define_specification_for(float, lambda *_: BrokenFloatStrategy())
    v1 = Verifier(strategy_table=table, settings=settings)
    x1 = v1.falsify(lambda x: x == 42, float)
    x2 = v1.falsify(lambda x: x == 1, float)
    assert x1 != x2
Exemplo n.º 2
0
def test_a_derandomized_verifier_produces_the_same_results_called_twice():
    table = StrategyTable()
    settings = hs.Settings(derandomize=True)
    table.define_specification_for(float, lambda *_: BrokenFloatStrategy())
    v1 = Verifier(strategy_table=table, settings=settings)
    foo = lambda x: False
    x1 = v1.falsify(foo, float)
    x2 = v1.falsify(foo, float)
    assert x1 == x2
Exemplo n.º 3
0
def test_two_verifiers_produce_different_results_in_normal_mode():
    settings = hs.Settings()
    settings.database = None
    table = StrategyTable()
    table.define_specification_for(float, lambda *_: BrokenFloatStrategy())
    v1 = Verifier(strategy_table=table, settings=settings)
    v2 = Verifier(strategy_table=table, settings=settings)
    x1 = v1.falsify(lambda x: False, float)
    x2 = v2.falsify(lambda x: False, float)
    assert x1 != x2
Exemplo n.º 4
0
def test_can_falsify_types_without_default_productions():
    strategies = StrategyTable()
    strategies.define_specification_for(
        Bar, lambda s, d: BarStrategy(
            s.strategy(descriptors.integers_in_range(0, 100))))

    with pytest.raises(MissingSpecification):
        StrategyTable.default().strategy(Bar)

    verifier = Verifier(strategy_table=strategies)
    assert verifier.falsify(
        lambda x: False,
        Bar,
    )[0] == Bar()
    assert verifier.falsify(lambda x: x.size() < 3, Bar)[0] == Bar(Bar(Bar()))
Exemplo n.º 5
0
def test_storage_does_not_return_things_not_matching_strategy():
    table = StrategyTable()
    strategy = JustStrategy(PickyStrategyLazyFormat())

    strategy.could_have_produced = lambda *args: False
    table.define_specification_for(PickyStrategyLazyFormat,
                                   lambda s, d: strategy)
    converters = ConverterTable(strategy_table=table)
    converters.define_specification_for(
        PickyStrategyLazyFormat,
        lambda s, d: JustConverter(PickyStrategyLazyFormat()))
    database = ExampleDatabase(
        converters=converters,
        backend=SQLiteBackend(),
    )
    stor = database.storage_for(PickyStrategyLazyFormat)
    database.backend.save(stor.key, 'null')
    assert list(database.backend.fetch(stor.key)) != []
    assert list(stor.fetch()) == []
    assert list(database.backend.fetch(stor.key)) == []