def test_render_build_name(self, tmpdir, extra_args, expected_name):
        user_params = get_sample_user_params(extra_args=extra_args)
        self.mock_repo_info()
        build_json = PluginsConfiguration(user_params).render()

        assert get_plugins_from_build_json(build_json)
    def test_render_flatpak(self, compose_ids, signing_intent, build_type):
        extra_args = {
            'flatpak': True,
            'compose_ids': compose_ids,
            'signing_intent': signing_intent,
            'base_image': TEST_FLATPAK_BASE_IMAGE,
            'build_type': build_type,
        }

        user_params = get_sample_user_params(extra_args=extra_args)

        self.mock_repo_info()
        build_json = PluginsConfiguration(user_params).render()

        plugins = get_plugins_from_build_json(build_json)

        if build_type == BUILD_TYPE_ORCHESTRATOR:
            plugin = get_plugin(plugins, "prebuild_plugins",
                                "resolve_composes")
            assert plugin

            plugin = get_plugin(plugins, "prebuild_plugins",
                                "check_user_settings")
            assert plugin
            assert plugin['args'][
                'flatpak'], "Plugin has not set flatpak arg to True"

        plugin = get_plugin(plugins, "prebuild_plugins",
                            "flatpak_create_dockerfile")
        assert plugin

        plugin = get_plugin(plugins, "prebuild_plugins",
                            "flatpak_update_dockerfile")
        assert plugin

        args = plugin['args']
        # compose_ids will always have a value of at least []
        if compose_ids is None:
            assert args['compose_ids'] == []
        else:
            assert args['compose_ids'] == compose_ids

        plugin = get_plugin(plugins, "prebuild_plugins", "add_flatpak_labels")
        assert plugin

        if build_type == BUILD_TYPE_ORCHESTRATOR:
            plugin = get_plugin(plugins, "prebuild_plugins", "bump_release")
            assert plugin

            args = plugin['args']
            assert args['append'] is True
        else:
            plugin = get_plugin(plugins, "prebuild_plugins", "koji")
            assert plugin

            args = plugin['args']
            assert args['target'] == "koji-target"

            with pytest.raises(NoSuchPluginException):
                plugin = get_plugin(plugins, "prebuild_plugins",
                                    "bump_release")
 def test_bad_customize_conf(self):
     user_params = BuildUserParams(build_json_dir=INPUTS_PATH,
                                   customize_conf='invalid_dir')
     build_json = PluginsConfiguration(user_params)
     assert build_json.pt.customize_conf == {}