def test_hooks_callable(self): temp_home = self.mkdtemp() config_file = os.path.join(temp_home, "config1.cfg") self.write_file(config_file, textwrap.dedent('''\ [test_dist] pre-hook.test = distutils2.tests.test_dist.__doc__''')) use_command(self, 'distutils2.tests.test_dist.test_dist') d = create_distribution([config_file]) cmd = d.get_command_obj("test_dist") cmd.ensure_finalized() self.assertRaises(PackagingOptionError, d.run_command, 'test_dist')
def test_hooks_callable(self): temp_home = self.mkdtemp() config_file = os.path.join(temp_home, "config1.cfg") self.write_file( config_file, textwrap.dedent('''\ [test_dist] pre-hook.test = distutils2.tests.test_dist.__doc__''')) use_command(self, 'distutils2.tests.test_dist.test_dist') d = create_distribution([config_file]) cmd = d.get_command_obj("test_dist") cmd.ensure_finalized() self.assertRaises(PackagingOptionError, d.run_command, 'test_dist')
def test_special_hooks_parsing(self): temp_home = self.mkdtemp() config_files = [os.path.join(temp_home, "config1.cfg"), os.path.join(temp_home, "config2.cfg")] # Store two aliased hooks in config files self.write_file((temp_home, "config1.cfg"), '[test_dist]\npre-hook.a = type') self.write_file((temp_home, "config2.cfg"), '[test_dist]\npre-hook.b = type') use_command(self, 'distutils2.tests.test_dist.test_dist') dist = create_distribution(config_files) cmd = dist.get_command_obj("test_dist") self.assertEqual(cmd.pre_hook, {"a": 'type', "b": 'type'})
def test_special_hooks_parsing(self): temp_home = self.mkdtemp() config_files = [ os.path.join(temp_home, "config1.cfg"), os.path.join(temp_home, "config2.cfg") ] # Store two aliased hooks in config files self.write_file((temp_home, "config1.cfg"), '[test_dist]\npre-hook.a = type') self.write_file((temp_home, "config2.cfg"), '[test_dist]\npre-hook.b = type') use_command(self, 'distutils2.tests.test_dist.test_dist') dist = create_distribution(config_files) cmd = dist.get_command_obj("test_dist") self.assertEqual(cmd.pre_hook, {"a": 'type', "b": 'type'})
def test_hooks_get_run(self): temp_home = self.mkdtemp() module_name = os.path.split(temp_home)[-1] pyname = '%s.py' % module_name config_file = os.path.join(temp_home, "config1.cfg") hooks_module = os.path.join(temp_home, pyname) self.write_file( config_file, textwrap.dedent('''\ [test_dist] pre-hook.test = %(modname)s.log_pre_call post-hook.test = %(modname)s.log_post_call''' % {'modname': module_name})) self.write_file( hooks_module, textwrap.dedent('''\ record = [] def log_pre_call(cmd): record.append('pre-%s' % cmd.get_command_name()) def log_post_call(cmd): record.append('post-%s' % cmd.get_command_name()) ''')) use_command(self, 'distutils2.tests.test_dist.test_dist') d = create_distribution([config_file]) cmd = d.get_command_obj("test_dist") # prepare the call recorders sys.path.append(temp_home) self.addCleanup(sys.path.remove, temp_home) self.addCleanup(unload, module_name) record = __import__(module_name).record cmd.run = lambda: record.append('run') cmd.finalize_options = lambda: record.append('finalize') d.run_command('test_dist') self.assertEqual( record, ['finalize', 'pre-test_dist', 'run', 'post-test_dist'])
def test_hooks_get_run(self): temp_home = self.mkdtemp() module_name = os.path.split(temp_home)[-1] pyname = '%s.py' % module_name config_file = os.path.join(temp_home, "config1.cfg") hooks_module = os.path.join(temp_home, pyname) self.write_file(config_file, textwrap.dedent('''\ [test_dist] pre-hook.test = %(modname)s.log_pre_call post-hook.test = %(modname)s.log_post_call''' % {'modname': module_name})) self.write_file(hooks_module, textwrap.dedent('''\ record = [] def log_pre_call(cmd): record.append('pre-%s' % cmd.get_command_name()) def log_post_call(cmd): record.append('post-%s' % cmd.get_command_name()) ''')) use_command(self, 'distutils2.tests.test_dist.test_dist') d = create_distribution([config_file]) cmd = d.get_command_obj("test_dist") # prepare the call recorders sys.path.append(temp_home) self.addCleanup(sys.path.remove, temp_home) self.addCleanup(unload, module_name) record = __import__(module_name).record cmd.run = lambda: record.append('run') cmd.finalize_options = lambda: record.append('finalize') d.run_command('test_dist') self.assertEqual(record, ['finalize', 'pre-test_dist', 'run', 'post-test_dist'])