class_docstr: Metaclass for test cases with test generators.
  
  A test generator is an iterable in a testcase that produces callables. These
  callables must be single-argument methods. These methods are injected into
  the class namespace and the original iterable is removed. If the name of the
  iterable conforms to the test pattern, the injected methods will be picked
  up as tests by the unittest framework.
  
  In general, it is supposed to be used in conjunction with the
  Parameters decorator.
class_docstr_tok: ["Metaclass","for","test","cases","with","test","generators",".","A","test","generator","is","an","iterable","in","a","testcase","that","produces","callables",".","These","callables","must","be","single-argument","methods",".","These","methods","are","injected","into","the","class","namespace","and","the","original","iterable","is","removed",".","If","the","name","of","the","iterable","conforms","to","the","test","pattern",",","the","injected","methods","will","be","picked","up","as","tests","by","the","unittest","framework",".","In","general",",","it","is","supposed","to","be","used","in","conjunction","with","the","Parameters","decorator","."]
code: def __new__(mcs, class_name, bases, dct):
      dct["_id_suffix"] = id_suffix = {}
      for name, obj in dct.items():
          if name.startswith(
              unittest.TestLoader.testMethodPrefix
          ) and _NonStringIterable(obj):
              iterator = iter(obj)
              dct.pop(name)
              _UpdateClassDictForParamTestCase(
                  dct, id_suffix, name, iterator
              )
  
      return type.__new__(mcs, class_name, bases, dct)
  
imports: import collections
  import functools
  import re
  import types
  import uuid
  import six
label_desc: Use image node_id 1 for calling the TestGeneratorMetaclass obj's underlying member method code with example usage: obj.__new__(mcs, class_name, bases, dct) and returns: type