def test_cannot_define_a_setting_with_default_not_valid(): with pytest.raises(InvalidArgument): Settings.define_setting( 'kittens', default=8, description='Kittens are pretty great', options=(1, 2, 3, 4), )
def test_define_setting_then_loading_profile(): x = Settings() Settings.define_setting( u'fun_times', default=3, description=u'Something something spoon', options=(1, 2, 3, 4), ) Settings.register_profile('hi', Settings(fun_times=2)) assert x.fun_times == 3 assert Settings.get_profile('hi').fun_times == 2
@strategy.extend(frozenset) def define_frozen_set_strategy(specifier, settings): return FrozenSetStrategy(strategy(set(specifier), settings)) @strategy.extend(list) def define_list_strategy(specifier, settings): return ListStrategy( [strategy(d, settings) for d in specifier], average_length=settings.average_list_length ) Settings.define_setting( 'average_list_length', default=50.0, description='Average length of lists to use' ) @strategy.extend(tuple) def define_tuple_strategy(specifier, settings): return TupleStrategy( tuple(strategy(d, settings) for d in specifier), tuple_type=type(specifier) ) @strategy.extend(dict) def define_dict_strategy(specifier, settings): strategy_dict = {}
# obtain one at http://mozilla.org/MPL/2.0/. # END HEADER from __future__ import division, print_function, absolute_import, \ unicode_literals import pytest from hypothesis.errors import InvalidArgument from hypothesis.settings import Settings, Verbosity TEST_DESCRIPTION = 'This is a setting just for these tests' Settings.define_setting( 'a_setting_just_for_these_tests', default=3, description=TEST_DESCRIPTION, ) Settings.define_setting( 'a_setting_with_limited_options', default=3, description='Something something spoon', options=(1, 2, 3, 4), ) def test_has_docstrings(): assert TEST_DESCRIPTION in Settings.a_setting_just_for_these_tests.__doc__
from hypothesis.errors import Flaky, NoSuchExample, InvalidDefinition, \ UnsatisfiedAssumption from hypothesis.settings import Settings, Verbosity from hypothesis.reporting import report, verbose_report, current_verbosity from hypothesis.internal.compat import hrange, integer_types from hypothesis.searchstrategy.misc import JustStrategy, \ SampledFromStrategy from hypothesis.searchstrategy.strategies import BadData, SearchStrategy, \ strategy, check_length, check_data_type, one_of_strategies from hypothesis.searchstrategy.collections import TupleStrategy, \ FixedKeysDictStrategy Settings.define_setting( name='stateful_step_count', default=50, description=""" Number of steps to run a stateful program for before giving up on it breaking. """ ) class TestCaseProperty(object): # pragma: no cover def __get__(self, obj, typ=None): if obj is not None: typ = type(obj) return typ._to_test_case() def __set__(self, obj, value): raise AttributeError('Cannot set TestCase')
""" def __init__(self, strategy_dict): self.dict_type = type(strategy_dict) if isinstance(strategy_dict, OrderedDict): self.keys = tuple(strategy_dict.keys()) else: try: self.keys = tuple(sorted(strategy_dict.keys(), )) except TypeError: self.keys = tuple(sorted( strategy_dict.keys(), key=show, )) super( FixedKeysDictStrategy, self).__init__(strategy=TupleStrategy((strategy_dict[k] for k in self.keys), tuple)) def __repr__(self): return 'FixedKeysDictStrategy(%r, %r)' % (self.keys, self.mapped_strategy) def pack(self, value): return self.dict_type(zip(self.keys, value)) Settings.define_setting('average_list_length', default=25.0, description='Average length of lists to use')
from hypothesis.core import find from hypothesis.errors import Flaky, NoSuchExample, InvalidDefinition, \ UnsatisfiedAssumption from hypothesis.settings import Settings, Verbosity from hypothesis.reporting import report, verbose_report, current_verbosity from hypothesis.internal.compat import hrange, integer_types from hypothesis.searchstrategy.misc import JustStrategy, \ SampledFromStrategy from hypothesis.searchstrategy.strategies import BadData, SearchStrategy, \ strategy, check_length, check_data_type, one_of_strategies from hypothesis.searchstrategy.collections import TupleStrategy, \ FixedKeysDictStrategy Settings.define_setting(name=u'stateful_step_count', default=50, description=""" Number of steps to run a stateful program for before giving up on it breaking. """) class TestCaseProperty(object): # pragma: no cover def __get__(self, obj, typ=None): if obj is not None: typ = type(obj) return typ._to_test_case() def __set__(self, obj, value): raise AttributeError(u'Cannot set TestCase') def __delete__(self, obj): raise AttributeError(u'Cannot delete TestCase')
"""A strategy which produces dicts with a fixed set of keys, given a strategy for each of their equivalent values. e.g. {'foo' : some_int_strategy} would generate dicts with the single key 'foo' mapping to some integer. """ def __init__(self, strategy_dict): self.dict_type = type(strategy_dict) if isinstance(strategy_dict, OrderedDict): self.keys = tuple(strategy_dict.keys()) else: try: self.keys = tuple(sorted(strategy_dict.keys())) except TypeError: self.keys = tuple(sorted(strategy_dict.keys(), key=show)) super(FixedKeysDictStrategy, self).__init__( strategy=TupleStrategy((strategy_dict[k] for k in self.keys), tuple) ) def __repr__(self): return u"FixedKeysDictStrategy(%r, %r)" % (self.keys, self.mapped_strategy) def pack(self, value): return self.dict_type(zip(self.keys, value)) Settings.define_setting(u"average_list_length", default=25.0, description=u"Average length of lists to use")
# This Source Code Form is subject to the terms of the Mozilla Public License, # v. 2.0. If a copy of the MPL was not distributed with this file, You can # obtain one at http://mozilla.org/MPL/2.0/. # END HEADER from __future__ import division, print_function, absolute_import import pytest from hypothesis.errors import InvalidArgument from hypothesis.settings import Settings, Verbosity TEST_DESCRIPTION = u"This is a setting just for these tests" Settings.define_setting(u"a_setting_just_for_these_tests", default=3, description=TEST_DESCRIPTION) Settings.define_setting( u"a_setting_with_limited_options", default=3, description=u"Something something spoon", options=(1, 2, 3, 4) ) def test_has_docstrings(): assert TEST_DESCRIPTION in Settings.a_setting_just_for_these_tests.__doc__ def setup_function(fn): try: delattr(Settings.default, u"a_setting_just_for_these_tests") except AttributeError: