Exemple #1
0
 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()
     ]
Exemple #2
0
    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
Exemple #3
0
 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
Exemple #4
0
 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))
Exemple #5
0
 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))
Exemple #6
0
 def test_get_int(self):
     self.assert_(isinstance(PayCheckGenerator.get(int), IntGenerator))
Exemple #7
0
 def test_get_int(self):
     self.assert_(isinstance(
                 PayCheckGenerator.get(int),
                 IntGenerator
                 ))
Exemple #8
0
 def __init__(self, t_def):
     PayCheckGenerator.__init__(self)
     self.inner = PayCheckGenerator.get(t_def)
Exemple #9
0
 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))
Exemple #10
0
 def test_get_unknown_type_throws_exception(self):
     getter = lambda: PayCheckGenerator.get(TestGenerator)
     self.assertRaises(UnknownTypeException, getter)
Exemple #11
0
 def test_get_boolean(self):
     self.assert_(isinstance(PayCheckGenerator.get(bool), BooleanGenerator))
Exemple #12
0
 def test_bad_object_throws_exception(self):
     getter = lambda: PayCheckGenerator.get("what?")
     self.assertRaises(UnknownTypeException, getter)
Exemple #13
0
 def test_get_unknown_type_throws_exception(self):
     getter = lambda: PayCheckGenerator.get(TestGenerator)
     self.assertRaises(UnknownTypeException, getter)
Exemple #14
0
 def test_get_float(self):
     self.assert_(isinstance(
                 PayCheckGenerator.get(float),
                 FloatGenerator
                 ))
Exemple #15
0
 def test_get_boolean(self):
     self.assert_(isinstance(
                 PayCheckGenerator.get(bool),
                 BooleanGenerator
                 ))
Exemple #16
0
 def test_get_unicode(self):
     self.assert_(isinstance(
                 PayCheckGenerator.get(unicode),
                 UnicodeGenerator
                 ))
Exemple #17
0
 def test_get_string(self):
     self.assert_(isinstance(
                 PayCheckGenerator.get(str),
                 StringGenerator
                 ))
Exemple #18
0
 def test_get_string(self):
     self.assert_(isinstance(PayCheckGenerator.get(str), StringGenerator))
Exemple #19
0
 def test_get_unicode(self):
     self.assert_(
         isinstance(PayCheckGenerator.get(unicode), UnicodeGenerator))
Exemple #20
0
 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))
Exemple #21
0
 def test_get_float(self):
     self.assert_(isinstance(PayCheckGenerator.get(float), FloatGenerator))
Exemple #22
0
 def test_empty_dict(self):
     getter = lambda: PayCheckGenerator.get({})
     self.assertRaises(IncompleteTypeException, getter)
Exemple #23
0
 def test_bad_object_throws_exception(self):
     getter = lambda: PayCheckGenerator.get("what?")
     self.assertRaises(UnknownTypeException, getter)
Exemple #24
0
 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
Exemple #25
0
 def test_empty_dict(self):
     getter = lambda: PayCheckGenerator.get({})
     self.assertRaises(IncompleteTypeException, getter)
Exemple #26
0
 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
Exemple #27
0
 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()]
Exemple #28
0
 def __init__(self, example):
     PayCheckGenerator.__init__(self)
     self.generators = map(PayCheckGenerator.get, example)
Exemple #29
0
 def __init__(self, t_def):
     PayCheckGenerator.__init__(self)
     self.inner = PayCheckGenerator.get(t_def)
Exemple #30
0
 def __init__(self, example):
     PayCheckGenerator.__init__(self)
     self.generators = map(PayCheckGenerator.get,example)