def __init__(self, *args, **keywords): self._number_of_calls = keywords.pop('number_of_calls', 100) self._verbose = keywords.pop('verbose', False) self._argument_generators = [PayCheckGenerator.get(t) for t in args] self._keyword_generators = [ izip(repeat(name), PayCheckGenerator.get(t)) for (name, t) in keywords.iteritems() ]
def __call__(self, test_func): if test_func.func_defaults: self._argument_generators += [ PayCheckGenerator.get(t) for t in test_func.func_defaults ] if len(self._argument_generators) + len(self._keyword_generators) > 0: argument_generators = izip(*self._argument_generators) keyword_generators = izip(*self._keyword_generators) generator = islice( izip_longest(argument_generators, keyword_generators, fillvalue=()), self._number_of_calls) else: generator = repeat(((), ()), self._number_of_calls) def wrapper(*pre_args): i = 0 for (args, keywords) in generator: try: if self._verbose: sys.stderr.write("%d: %r\n" % (i, args)) test_func(*(pre_args + args), **dict(keywords)) except Exception, e: if sys.version_info[0] < 3: raise e.__class__( "Failed for input %s with message '%s'" % (args + keywords, e)), None, sys.exc_traceback else: raise e.__class__( "Failed for input {}".format(args)).with_traceback( e.__traceback__) i += 1
def __call__(self, test_func): if test_func.func_defaults: self._argument_generators += [PayCheckGenerator.get(t) for t in test_func.func_defaults] if len(self._argument_generators) + len(self._keyword_generators) > 0: argument_generators = izip(*self._argument_generators) keyword_generators = izip(*self._keyword_generators) generator = islice(izip_longest(argument_generators,keyword_generators,fillvalue=()),self._number_of_calls) else: generator = repeat(((),()),self._number_of_calls) def wrapper(*pre_args): i = 0 for (args,keywords) in generator: if self._verbose: sys.stderr.write("%d: %r\n" % (i, args)) try: test_func(*(pre_args+args), **dict(keywords)) except Exception, e: if not self._throw_arguments_exception: raise if sys.version_info[0] < 3: try: new_e = e.__class__("Failed for input %s with message '%s'" % (args+keywords,e)) except: new_e = e raise new_e, None, sys.exc_traceback else: raise Exception("Failed for input {}".format(args)) i += 1
def test_dict_of_str_int(self): generator = PayCheckGenerator.get({str:int}) self.assertTrue(isinstance(generator, DictGenerator)) self.assertTrue(isinstance(generator.inner, TupleGenerator)) print(generator.inner.generators[0].__class__) self.assertTrue(isinstance(generator.inner.generators[0], StringGenerator)) self.assertTrue(isinstance(generator.inner.generators[1], IntGenerator))
def test_dict_of_str_int(self): generator = PayCheckGenerator.get({str: int}) self.assertTrue(isinstance(generator, DictGenerator)) self.assertTrue(isinstance(generator.inner, TupleGenerator)) print(generator.inner.generators[0].__class__) self.assertTrue( isinstance(generator.inner.generators[0], StringGenerator)) self.assertTrue(isinstance(generator.inner.generators[1], IntGenerator))
def test_get_int(self): self.assert_(isinstance(PayCheckGenerator.get(int), IntGenerator))
def test_get_int(self): self.assert_(isinstance( PayCheckGenerator.get(int), IntGenerator ))
def __init__(self, t_def): PayCheckGenerator.__init__(self) self.inner = PayCheckGenerator.get(t_def)
def test_get_nested_list_of_type(self): generator = PayCheckGenerator.get([[int]]) self.assertTrue(isinstance(generator, ListGenerator)) self.assertTrue(isinstance(generator.inner, ListGenerator)) self.assertTrue(isinstance(generator.inner.inner, IntGenerator))
def test_get_unknown_type_throws_exception(self): getter = lambda: PayCheckGenerator.get(TestGenerator) self.assertRaises(UnknownTypeException, getter)
def test_get_boolean(self): self.assert_(isinstance(PayCheckGenerator.get(bool), BooleanGenerator))
def test_bad_object_throws_exception(self): getter = lambda: PayCheckGenerator.get("what?") self.assertRaises(UnknownTypeException, getter)
def test_get_float(self): self.assert_(isinstance( PayCheckGenerator.get(float), FloatGenerator ))
def test_get_boolean(self): self.assert_(isinstance( PayCheckGenerator.get(bool), BooleanGenerator ))
def test_get_unicode(self): self.assert_(isinstance( PayCheckGenerator.get(unicode), UnicodeGenerator ))
def test_get_string(self): self.assert_(isinstance( PayCheckGenerator.get(str), StringGenerator ))
def test_get_string(self): self.assert_(isinstance(PayCheckGenerator.get(str), StringGenerator))
def test_get_unicode(self): self.assert_( isinstance(PayCheckGenerator.get(unicode), UnicodeGenerator))
def test_get_float(self): self.assert_(isinstance(PayCheckGenerator.get(float), FloatGenerator))
def test_empty_dict(self): getter = lambda: PayCheckGenerator.get({}) self.assertRaises(IncompleteTypeException, getter)
def __init__(self, min=MIN_INT, max=MAX_INT, step=1): PayCheckGenerator.__init__(self) self._min = min self._boundary = (max - min) // step self._step = step
def __init__(self, min=MIN_INT, max=MAX_INT, step=1): PayCheckGenerator.__init__(self) self._min = min self._boundary = (max-min)//step self._step = step
def __init__(self, *args, **keywords): self._number_of_calls = keywords.pop('number_of_calls', 100) self._verbose = keywords.pop('verbose', False) self._argument_generators = [PayCheckGenerator.get(t) for t in args] self._keyword_generators = [izip(repeat(name),PayCheckGenerator.get(t)) for (name,t) in keywords.iteritems()]
def __init__(self, example): PayCheckGenerator.__init__(self) self.generators = map(PayCheckGenerator.get, example)
def __init__(self, example): PayCheckGenerator.__init__(self) self.generators = map(PayCheckGenerator.get,example)