def METHOD_NAME(self):
    """ensure tests are capable of being run, then
    run nose.main with a reconstructed argument list"""
    if getattr(self.distribution, 'use_2to3', False):
        # If we run 2to3 we can not do this inplace:
        # Ensure metadata is up-to-date
        build_py = self.get_finalized_command('build_py')
        build_py.inplace = 0
        build_py.METHOD_NAME()
        bpy_cmd = self.get_finalized_command("build_py")
        build_path = bpy_cmd.build_lib
        # Build extensions
        egg_info = self.get_finalized_command('egg_info')
        egg_info.egg_base = build_path
        egg_info.METHOD_NAME()
        build_ext = self.get_finalized_command('build_ext')
        build_ext.inplace = 0
        build_ext.METHOD_NAME()
    else:
        self.run_command('egg_info')
        # Build extensions in-place
        build_ext = self.get_finalized_command('build_ext')
        build_ext.inplace = 1
        build_ext.METHOD_NAME()
    if self.distribution.install_requires:
        self.distribution.fetch_build_eggs(
            self.distribution.install_requires)
    if self.distribution.tests_require:
        self.distribution.fetch_build_eggs(
            self.distribution.tests_require)
    ei_cmd = self.get_finalized_command("egg_info")
    argv = ['nosetests', '--where', ei_cmd.egg_base] 
    for (option_name, cmd_name) in self.option_to_cmds.items():
        if option_name in option_blacklist:
            continue
        value = getattr(self, option_name)
        if value is not None:
            argv.extend(
                self.cfgToArg(option_name.replace('_', '-'), value))
    TestProgram(argv=argv, config=self.__config)