class TestGlobalContextCustomizedOptions(unittest.TestCase): def setUp(self): self.context = GlobalContext(None) self.maxDiff = None def _test(self, package_options, r_scheme): self.context.register_package_options(package_options) scheme = self.context.retrieve_scheme() default_scheme, _ = get_scheme(sys.platform) r_scheme.update(default_scheme) r_scheme['py_version_short'] = ".".join(str(part) for part in sys.version_info[:2]) r_scheme['pkgname'] = package_options.name self.assertEqual(scheme, r_scheme) def test_no_options(self): package_options = PackageOptions.from_string("""\ Name: foo """) self._test(package_options, {}) def test_path_option(self): package_options = PackageOptions.from_string("""\ Name: foo Path: floupi Description: yoyo Default: /yeah """) self._test(package_options, {"floupi": "/yeah"})
class TestGlobalContextCustomizedOptions(unittest.TestCase): def setUp(self): self.context = GlobalContext(None) self.maxDiff = None def _test(self, package_options, r_scheme): self.context.register_package_options(package_options) scheme = self.context.retrieve_scheme() default_scheme, _ = get_scheme(sys.platform) r_scheme.update(default_scheme) r_scheme['py_version_short'] = ".".join( str(part) for part in sys.version_info[:2]) r_scheme['pkgname'] = package_options.name self.assertEqual(scheme, r_scheme) def test_no_options(self): package_options = PackageOptions.from_string("""\ Name: foo """) self._test(package_options, {}) def test_path_option(self): package_options = PackageOptions.from_string("""\ Name: foo Path: floupi Description: yoyo Default: /yeah """) self._test(package_options, {"floupi": "/yeah"})
def _run_configure_and_build(self, bento_info, install_prefix): top_node = self.top_node create_fake_package_from_bento_info(top_node, bento_info) context = GlobalContext(None) options = PackageOptions.from_string(bento_info) context.register_package_options(options) cmd_argv = [ "--prefix=%s" % install_prefix, "--exec-prefix=%s" % install_prefix ] conf, configure = prepare_configure(top_node, bento_info, ConfigureYakuContext, cmd_argv) context.register_command("configure", configure) options_context = OptionsContext.from_command(configure) if not context.is_options_context_registered("configure"): context.register_options_context("configure", options_context) context.save_command_argv("configure", cmd_argv) run_command_in_context(conf, configure) bld, build = prepare_build(top_node, bento_info) run_command_in_context(bld, build) return context, conf, configure, bld, build
def _run_configure_and_build(self, bento_info, install_prefix): top_node = self.top_node create_fake_package_from_bento_info(top_node, bento_info) context = GlobalContext(None) options = PackageOptions.from_string(bento_info) context.register_package_options(options) cmd_argv = ["--prefix=%s" % install_prefix, "--exec-prefix=%s" % install_prefix] conf, configure = prepare_configure(top_node, bento_info, ConfigureYakuContext, cmd_argv) context.register_command("configure", configure) options_context = OptionsContext.from_command(configure) if not context.is_options_context_registered("configure"): context.register_options_context("configure", options_context) context.save_command_argv("configure", cmd_argv) run_command_in_context(conf, configure) bld, build = prepare_build(top_node, bento_info) run_command_in_context(bld, build) return context, conf, configure, bld, build
def global_context_factory(package_options): # FIXME: factor this out with the similar code in bentomakerlib global_context = GlobalContext(None) global_context.register_package_options(package_options) register_commands(global_context) register_command_contexts(global_context) for cmd_name in global_context.command_names(): cmd = global_context.retrieve_command(cmd_name) options_context = OptionsContext.from_command(cmd) if not global_context.is_options_context_registered(cmd_name): global_context.register_options_context(cmd_name, options_context) return global_context
def global_context_factory(package_options): # FIXME: factor this out with the similar code in bentomakerlib global_context = GlobalContext(None) global_context.register_package_options(package_options) register_commands(global_context) register_command_contexts(global_context) for cmd_name in global_context.command_names(): cmd = global_context.retrieve_command(cmd_name) options_context = OptionsContext.from_command(cmd) if not global_context.is_options_context_registered(cmd_name): global_context.register_options_context(cmd_name, options_context) return global_context
def _prepare_command(run_node, bento_info, cmd_klass, context_klass, cmd_argv): top_node = run_node._ctx.srcnode top_node.make_node("bento.info").safe_write(bento_info) package = PackageDescription.from_string(bento_info) package_options = PackageOptions.from_string(bento_info) cmd = cmd_klass() options_context = OptionsContext.from_command(cmd) cmd.register_options(options_context, package_options) global_context = GlobalContext(None) global_context.register_package_options(package_options) context = context_klass(global_context, cmd_argv, options_context, package, run_node) return context, cmd
def _prepare_command(run_node, bento_info, cmd_klass, context_klass, cmd_argv): top_node = run_node._ctx.srcnode top_node.make_node("bento.info").safe_write(bento_info) package = PackageDescription.from_string(bento_info) package_options = PackageOptions.from_string(bento_info) cmd = cmd_klass() options_context = OptionsContext.from_command(cmd) cmd.register_options(options_context, package_options) global_context = GlobalContext(None) global_context.register_package_options(package_options) context = context_klass(global_context, cmd_argv, options_context, package, run_node) return context, cmd
def create_global_context(package, package_options, backend=None): if backend is None: backend = YakuBackend() global_context = GlobalContext(None) global_context.register_package_options(package_options) if backend: global_context.backend = backend build = BuildCommand() configure = ConfigureCommand() commands = (("configure", configure), ("build", build)) for cmd_name, cmd in commands: global_context.register_command(cmd_name, cmd) options_context = OptionsContext.from_command(cmd) global_context.register_options_context(cmd_name, options_context) global_context.backend.register_command_contexts(global_context) global_context.backend.register_options_contexts(global_context) return global_context
def create_global_context(package, package_options, backend=None): if backend is None: backend = YakuBackend() global_context = GlobalContext(None) global_context.register_package_options(package_options) if backend: global_context.backend = backend build = BuildCommand() configure = ConfigureCommand() commands = (("configure", configure), ("build", build)) for cmd_name, cmd in commands: global_context.register_command(cmd_name, cmd) options_context = OptionsContext.from_command(cmd) global_context.register_options_context(cmd_name, options_context) global_context.backend.register_command_contexts(global_context) global_context.backend.register_options_contexts(global_context) return global_context