class_docstr: Parameterize a test case::
  
  class TestInt(object):
      @parameterized([
          ("A", 10),
          ("F", 15),
          param("10", 42, base=42)
      ])
      def test_int(self, input, expected, base=16):
          actual = int(input, base=base)
          assert_equal(actual, expected)
  
  @parameterized([
      (2, 3, 5)
      (3, 5, 8),
  ])
  def test_add(a, b, expected):
      assert_equal(a + b, expected)
class_docstr_tok: ["Parameterize","a","test","case",":",":","class","TestInt","(","object",")",":","@","parameterized","(","[","(","``","A","''",",","10",")",",","(","``","F","''",",","15",")",",","param","(","``","10","''",",","42",",","base=42",")","]",")","def","test_int","(","self",",","input",",","expected",",","base=16",")",":","actual","=","int","(","input",",","base=base",")","assert_equal","(","actual",",","expected",")","@","parameterized","(","[","(","2",",","3",",","5",")","(","3",",","5",",","8",")",",","]",")","def","test_add","(","a",",","b",",","expected",")",":","assert_equal","(","a","+","b",",","expected",")"]
code: def param_as_nose_tuple(self, test_self, func, num, p):
      nose_func = wraps(func)(
          lambda *args: func(*args[:-1], **args[-1])
      )
      nose_func.__doc__ = self.doc_func(func, num, p)
      # Track the unbound function because we need to setattr the unbound
      # function onto the class for nose to work (see comments above), and
      # Python 3 doesn't let us pull the function out of a bound method.
      unbound_func = nose_func
      if test_self is not None:
          # Under nose on Py2 we need to return an unbound method to make
          # sure that the `self` in the method is properly shared with the
          # `self` used in `setUp` and `tearDown`. But only there. Everyone
          # else needs a bound method.
          func_self = (
              None if PY2 and detect_runner() == "nose" else test_self
          )
          nose_func = make_method(nose_func, func_self, type(test_self))
      return unbound_func, (nose_func,) + p.args + (p.kwargs or {},)
  
imports: import re
  import sys
  import inspect
  import warnings
  from functools import wraps
  from types import MethodType
  from collections import namedtuple
  from unittest import TestCase
label_desc: Use image node_id 3 for calling the parameterized obj's underlying member method code with example usage: obj.param_as_nose_tuple(test_func, num, p) and returns: unbound_func,  unknown