def METHOD_NAME(self):
    """ Create 5 pairs of modules. Each pair consists of two equally named
        files with a different inner value, and saved in different
        directories.
    """
    def check_routine(module_check_data):
        module = _wrappers.import_module(module_check_data["name"],
                                         module_check_data["path"])
        val = module.inner_variable
        return val
    def check(module_val, module_data):
        self.assertEqual(module_val, module_data["value"])
    def get_random_name(length=20):
        return "".join([random.choice(ascii_lc) for _ in range(length)])
    check_mod_names = [get_random_name() for _ in range(50)]
    check_import_data = []
    for mod_name in check_mod_names:
        value = random.randint(0, 100)
        create_module(mod_name, value, self._aux_sub_mod_dir)
        in_dir = {"name": mod_name, "value": value,
                  "path": self._aux_sub_mod_dir}
        value = random.randint(0, 100)
        create_module(mod_name, value, self._tmp_sub_module_dir)
        sub_dir = {"name": mod_name, "value": value,
                   "path": self._tmp_sub_module_dir}
        # We don't want to test if two modules with the same name
        # are imported safely in the same execution.
        # We want to test that sys.path priorities are not mixed up
        # So select only one
        check_import_data.append(random.choice([in_dir, sub_dir]))
    results = []
    with ThreadPoolExecutor(max_workers=len(check_mod_names)) as executor:
        for mod_data in check_import_data:
            results.append(executor.submit(check_routine, mod_data))
    wait(results)
    for res, mod_data in zip(results, check_import_data):
        check(res.result(), mod_data)