Commit ae6c8e49 authored by Dom Sekotill's avatar Dom Sekotill
Browse files

if generating a single test, leave it unnumbered

parent 2abc030e
Loading
Loading
Loading
Loading
+12 −4
Original line number Diff line number Diff line
@@ -131,7 +131,7 @@ class test_generator(object):
		if self.values is None:
			# __init__ passed a None or no args; single test without arguments
			wrap = self._make_wrap(tuple(), dict())
			setattr(testcase_class, 'test_{0}'.format(wrap.__name__), wrap)
			self._attach_test(testcase_class, wrap)
			return
		elif isinstance(self.values, string_types):
			values = getattr(testcase_class, self.values)
@@ -140,10 +140,11 @@ class test_generator(object):
				return
		else:
			values = self.values
		for name, func in self._wrap(values):
			setattr(testcase_class, name, func)
		for number, func in self._wrap(values):
			self._attach_test(testcase_class, func, number=number)

	def _wrap(self, value_list):
		unnumbered = (len(value_list) == 1)
		for number, values in enumerate(value_list):
			if self._is_args_kwds(values):
				args, kwds = values
@@ -157,7 +158,14 @@ class test_generator(object):
				args = values,
				kwds = {}
			wrapper = self._make_wrap(tuple(args), dict(kwds))
			yield 'test_{0}_{1}'.format(wrapper.__name__, number), wrapper
			yield (None if unnumbered else number), wrapper

	@staticmethod
	def _attach_test(testcase, func, name=None, number=None):
		name = 'test_{0}'.format(name or func.__name__)
		if number is not None:
			name += '_{0}'.format(number)
		setattr(testcase, name, func)

	def _make_wrap(self, args, kwds):
		@wraps(self.func)