Beispiel #1
0
    def test_constructors(self):
        # Test that the new() function works
        defs = Modulemd.Defaults.new(Modulemd.DefaultsVersionEnum.ONE, "foo")
        assert defs

        assert defs.props.mdversion == Modulemd.DefaultsVersionEnum.ONE
        assert defs.get_mdversion() == Modulemd.DefaultsVersionEnum.ONE

        assert defs.props.module_name == "foo"
        assert defs.get_module_name() == "foo"

        # Test that we cannot instantiate directly
        with self.assertRaisesRegexp(TypeError,
                                     "cannot create instance of abstract"):
            Modulemd.Defaults()

        # Test with a zero mdversion
        with self.assertRaisesRegexp(TypeError, "constructor returned NULL"):
            with self.expect_signal():
                defs = Modulemd.Defaults.new(0, "foo")

        # Test with an unknown mdversion
        with self.assertRaisesRegexp(TypeError, "constructor returned NULL"):
            with self.expect_signal():
                defs = Modulemd.Defaults.new(
                    Modulemd.DefaultsVersionEnum.LATEST + 1, "foo")

        # Test with no name
        with self.assertRaisesRegexp(TypeError,
                                     "does not allow None as a value"):
            defs = Modulemd.Defaults.new(Modulemd.DefaultsVersionEnum.ONE,
                                         None)
Beispiel #2
0
    def test_find_module_version(self):
        rmd = RepoModuleDict(None)

        mmd = self._create_mmd(name="module-name", stream="stream", version=1,
                               profiles={"default": {}})
        rmv = RepoModuleVersion(mmd, None, None)
        rmd.add(rmv)

        mmd = self._create_mmd(name="module-name", stream="stream", version=2,
                               profiles={"default": {}})
        rmv = RepoModuleVersion(mmd, None, None)
        rmd.add(rmv)

        mmd = self._create_mmd(name="module-name", stream="enabled_stream", version=1,
                               profiles={"default": {}})
        rmv = RepoModuleVersion(mmd, None, None)
        rmd.add(rmv)

        mmd = self._create_mmd(name="module-name", stream="default_stream", version=1,
                               profiles={"default": {}})
        rmv = RepoModuleVersion(mmd, None, None)
        rmd.add(rmv)

        # set defaults
        defaults = Modulemd.Defaults()
        defaults.set_module_name("module-name")
        defaults.set_default_stream("stream")
        # no default profiles provided
        rmd["module-name"].defaults = defaults

        # no default, no active -> can't find stream automatically
        rmv = rmd.find_module_version(name="module-name")
        self.assertEqual(rmv.full_version, "module-name:stream:2")

        # set enabled stream
        conf = dnf.conf.ModuleConf(section="test")
        conf.state._set("enabled")
        conf.stream._set("enabled_stream")
        rmd["module-name"].conf = conf

        # stream provided by user
        rmv = rmd.find_module_version(name="module-name", stream="stream")
        self.assertEqual(rmv.full_version, "module-name:stream:2")

        # stream and version provided by user
        rmv = rmd.find_module_version(name="module-name", stream="stream", version=1)
        self.assertEqual(rmv.full_version, "module-name:stream:1")

        # stream == active stream
        rmv = rmd.find_module_version(name="module-name")
        self.assertEqual(rmv.full_version, "module-name:enabled_stream:1")

        # stream == default stream
        conf.state._set("")
        rmv = rmd.find_module_version(name="module-name")
        self.assertEqual(rmv.full_version, "module-name:stream:2")
Beispiel #3
0
    def test_construction(self):
        defaults = Modulemd.Defaults()
        defaults.set_version(1)
        defaults.set_module_name("foo")
        defaults.set_default_stream("stable")
        defaults.set_profiles_for_stream("stable", ['default'])

        intent = Modulemd.Intent.new('server')
        intent.set_default_stream('stable')
        intent.set_profiles_for_stream('stable', ['server', 'microservice'])
        intent.set_profiles_for_stream('PoC', ['cloud', 'microservice'])
        defaults.add_intent(intent)

        assert 'server' in defaults.props.intents
        assert 'server' in defaults.props.intents[
            'server'].props.profile_defaults['stable'].dup()
        assert 'microservice' in defaults.props.intents[
            'server'].props.profile_defaults['stable'].dup()
        assert 'cloud' in defaults.props.intents[
            'server'].props.profile_defaults['PoC'].dup()
        assert 'microservice' in defaults.props.intents[
            'server'].props.profile_defaults['PoC'].dup()
Beispiel #4
0
 def defaults(self):
     if self._defaults is None:
         self._defaults = Modulemd.Defaults()
         self._defaults.set_module_name(self.name)
         # default stream and profiles remain unset
     return self._defaults