|
Packit Service |
21c75c |
# -*- coding: utf-8 -*-
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
# Copyright (C) 2013-2018 Red Hat, Inc.
|
|
Packit Service |
21c75c |
#
|
|
Packit Service |
21c75c |
# This copyrighted material is made available to anyone wishing to use,
|
|
Packit Service |
21c75c |
# modify, copy, or redistribute it subject to the terms and conditions of
|
|
Packit Service |
21c75c |
# the GNU General Public License v.2, or (at your option) any later version.
|
|
Packit Service |
21c75c |
# This program is distributed in the hope that it will be useful, but WITHOUT
|
|
Packit Service |
21c75c |
# ANY WARRANTY expressed or implied, including the implied warranties of
|
|
Packit Service |
21c75c |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
|
Packit Service |
21c75c |
# Public License for more details. You should have received a copy of the
|
|
Packit Service |
21c75c |
# GNU General Public License along with this program; if not, write to the
|
|
Packit Service |
21c75c |
# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
|
Packit Service |
21c75c |
# 02110-1301, USA. Any Red Hat trademarks that are incorporated in the
|
|
Packit Service |
21c75c |
# source code or documentation are not subject to the GNU General Public
|
|
Packit Service |
21c75c |
# License and may only be used or replicated with the express permission of
|
|
Packit Service |
21c75c |
# Red Hat, Inc.
|
|
Packit Service |
21c75c |
#
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
from __future__ import absolute_import
|
|
Packit Service |
21c75c |
from __future__ import print_function
|
|
Packit Service |
21c75c |
from __future__ import unicode_literals
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
import operator
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
import libcomps
|
|
Packit Service |
21c75c |
import libdnf.transaction
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
import dnf.comps
|
|
Packit Service |
21c75c |
import dnf.exceptions
|
|
Packit Service |
21c75c |
import dnf.persistor
|
|
Packit Service |
21c75c |
import dnf.util
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
import tests.support
|
|
Packit Service |
21c75c |
from tests.support import mock
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
TRANSLATION = u"""Tato skupina zahrnuje nejmenší možnou množinu balíčků. Je vhodná například na instalace malých routerů nebo firewallů."""
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
class LangsTest(tests.support.TestCase):
|
|
Packit Service |
21c75c |
@mock.patch('locale.getlocale', return_value=('cs_CZ', 'UTF-8'))
|
|
Packit Service |
21c75c |
def test_get(self, _unused):
|
|
Packit Service |
21c75c |
langs = dnf.comps._Langs().get()
|
|
Packit Service |
21c75c |
self.assertEqual(langs, ['cs_CZ.UTF-8', 'cs_CZ', 'cs.UTF-8', 'cs', 'C'])
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
class CompsTest(tests.support.TestCase):
|
|
Packit Service |
21c75c |
def setUp(self):
|
|
Packit Service |
21c75c |
comps = dnf.comps.Comps()
|
|
Packit Service |
21c75c |
comps._add_from_xml_filename(tests.support.COMPS_PATH)
|
|
Packit Service |
21c75c |
self.comps = comps
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
def test_by_pattern(self):
|
|
Packit Service |
21c75c |
comps = self.comps
|
|
Packit Service |
21c75c |
self.assertLength(comps.groups_by_pattern('Base'), 1)
|
|
Packit Service |
21c75c |
self.assertLength(comps.groups_by_pattern('*'), tests.support.TOTAL_GROUPS)
|
|
Packit Service |
21c75c |
self.assertLength(comps.groups_by_pattern('Solid*'), 1)
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
group = dnf.util.first(comps.groups_by_pattern('Base'))
|
|
Packit Service |
21c75c |
self.assertIsInstance(group, dnf.comps.Group)
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
def test_categories(self):
|
|
Packit Service |
21c75c |
cat = self.comps.categories[0]
|
|
Packit Service |
21c75c |
self.assertEqual(cat.name_by_lang['cs'], u'Základ systému')
|
|
Packit Service |
21c75c |
self.assertEqual(cat.desc_by_lang['de'],
|
|
Packit Service |
21c75c |
u'Verschiedene Kernstücke des Systems.')
|
|
Packit Service |
21c75c |
self.assertCountEqual((id_.name for id_ in cat.group_ids),
|
|
Packit Service |
21c75c |
('base', ))
|
|
Packit Service |
21c75c |
self.assertCountEqual((id_.default for id_ in cat.group_ids),
|
|
Packit Service |
21c75c |
(False, ))
|
|
Packit Service |
21c75c |
self.assertTrue(all(isinstance(grp, dnf.comps.Group)
|
|
Packit Service |
21c75c |
for grp in cat.groups_iter()))
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
def test_environments(self):
|
|
Packit Service |
21c75c |
env = self.comps.environments[0]
|
|
Packit Service |
21c75c |
self.assertEqual(env.name_by_lang['cs'], u'Prostředí Sugar')
|
|
Packit Service |
21c75c |
self.assertEqual(env.desc_by_lang['de'],
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
u'Eine Software-Spielwiese zum Lernen des Lernens.')
|
|
Packit Service |
21c75c |
self.assertCountEqual((id_.name for id_ in env.group_ids),
|
|
Packit Service |
21c75c |
('somerset', 'Peppers'))
|
|
Packit Service |
21c75c |
self.assertEqual(2, len(env.mandatory_groups))
|
|
Packit Service |
21c75c |
self.assertTrue(all(isinstance(grp, dnf.comps.Group)
|
|
Packit Service |
21c75c |
for grp in env.mandatory_groups))
|
|
Packit Service |
21c75c |
self.assertCountEqual((id_.default for id_ in env.group_ids),
|
|
Packit Service |
21c75c |
(True, False))
|
|
Packit Service |
21c75c |
self.assertCountEqual((id_.name for id_ in env.option_ids),
|
|
Packit Service |
21c75c |
('base',))
|
|
Packit Service |
21c75c |
self.assertEqual(1, len(env.optional_groups))
|
|
Packit Service |
21c75c |
self.assertTrue(all(isinstance(grp, dnf.comps.Group)
|
|
Packit Service |
21c75c |
for grp in env.optional_groups))
|
|
Packit Service |
21c75c |
self.assertTrue(all(isinstance(grp, dnf.comps.Group)
|
|
Packit Service |
21c75c |
for grp in env.groups_iter()))
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
def test_groups(self):
|
|
Packit Service |
21c75c |
g = self.comps.group_by_pattern('base')
|
|
Packit Service |
21c75c |
self.assertTrue(g.visible)
|
|
Packit Service |
21c75c |
g = self.comps.group_by_pattern('somerset')
|
|
Packit Service |
21c75c |
self.assertFalse(g.visible)
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
def test_group_packages(self):
|
|
Packit Service |
21c75c |
g = self.comps.group_by_pattern('base')
|
|
Packit Service |
21c75c |
self.assertCountEqual(map(operator.attrgetter('name'), g.packages_iter()),
|
|
Packit Service |
21c75c |
('tour', 'pepper'))
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
def test_iteration(self):
|
|
Packit Service |
21c75c |
comps = self.comps
|
|
Packit Service |
21c75c |
self.assertEqual([g.name for g in comps.groups_iter()],
|
|
Packit Service |
21c75c |
['Base', 'Solid Ground', "Pepper's", "Broken Group", None])
|
|
Packit Service |
21c75c |
self.assertEqual([c.name for c in comps.categories_iter()],
|
|
Packit Service |
21c75c |
['Base System'])
|
|
Packit Service |
21c75c |
g = dnf.util.first(comps.groups_iter())
|
|
Packit Service |
21c75c |
self.assertEqual(g.desc_by_lang['cs'], TRANSLATION)
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
def test_group_display_order(self):
|
|
Packit Service |
21c75c |
self.assertEqual([g.name for g in self.comps.groups],
|
|
Packit Service |
21c75c |
["Pepper's", 'Base', 'Solid Ground', 'Broken Group', None])
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
def test_packages(self):
|
|
Packit Service |
21c75c |
comps = self.comps
|
|
Packit Service |
21c75c |
group = dnf.util.first(comps.groups_iter())
|
|
Packit Service |
21c75c |
self.assertSequenceEqual([pkg.name for pkg in group.packages],
|
|
Packit Service |
21c75c |
(u'pepper', u'tour'))
|
|
Packit Service |
21c75c |
self.assertSequenceEqual([pkg.name for pkg in group.mandatory_packages],
|
|
Packit Service |
21c75c |
(u'pepper', u'tour'))
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
def test_size(self):
|
|
Packit Service |
21c75c |
comps = self.comps
|
|
Packit Service |
21c75c |
self.assertLength(comps, 7)
|
|
Packit Service |
21c75c |
self.assertLength(comps.groups, tests.support.TOTAL_GROUPS)
|
|
Packit Service |
21c75c |
self.assertLength(comps.categories, 1)
|
|
Packit Service |
21c75c |
self.assertLength(comps.environments, 1)
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
@mock.patch('locale.getlocale', return_value=('cs_CZ', 'UTF-8'))
|
|
Packit Service |
21c75c |
def test_ui_name(self, _unused):
|
|
Packit Service |
21c75c |
comps = self.comps
|
|
Packit Service |
21c75c |
group = dnf.util.first(comps.groups_by_pattern('base'))
|
|
Packit Service |
21c75c |
self.assertEqual(group.ui_name, u'Kritická cesta (Základ)')
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
@mock.patch('locale.getlocale', return_value=('cs_CZ', 'UTF-8'))
|
|
Packit Service |
21c75c |
def test_ui_desc(self, _unused):
|
|
Packit Service |
21c75c |
comps = self.comps
|
|
Packit Service |
21c75c |
env = dnf.util.first(comps.environments_by_pattern('sugar-*'))
|
|
Packit Service |
21c75c |
self.assertEqual(env.ui_description, u'Software pro výuku o vyučování.')
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
class PackageTest(tests.support.TestCase):
|
|
Packit Service |
21c75c |
def test_instance(self):
|
|
Packit Service |
21c75c |
lc_pkg = libcomps.Package('weather', libcomps.PACKAGE_TYPE_OPTIONAL)
|
|
Packit Service |
21c75c |
pkg = dnf.comps.Package(lc_pkg)
|
|
Packit Service |
21c75c |
self.assertEqual(pkg.name, 'weather')
|
|
Packit Service |
21c75c |
self.assertEqual(pkg.option_type, dnf.comps.OPTIONAL)
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
class TestTransactionBunch(tests.support.TestCase):
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
def test_adding(self):
|
|
Packit Service |
21c75c |
t1 = dnf.comps.TransactionBunch()
|
|
Packit Service |
21c75c |
t1.install = {'right'}
|
|
Packit Service |
21c75c |
t1.upgrade = {'tour'}
|
|
Packit Service |
21c75c |
t1.remove = {'pepper'}
|
|
Packit Service |
21c75c |
t2 = dnf.comps.TransactionBunch()
|
|
Packit Service |
21c75c |
t2.install = {'pepper'}
|
|
Packit Service |
21c75c |
t2.upgrade = {'right'}
|
|
Packit Service |
21c75c |
t1 += t2
|
|
Packit Service |
21c75c |
self.assertTransEqual(t1.install, ('right', 'pepper'))
|
|
Packit Service |
21c75c |
self.assertTransEqual(t1.upgrade, ('tour', 'right'))
|
|
Packit Service |
21c75c |
self.assertEmpty(t1.remove)
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
class SolverGroupTest(tests.support.DnfBaseTestCase):
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
REPOS = []
|
|
Packit Service |
21c75c |
COMPS = True
|
|
Packit Service |
21c75c |
COMPS_SOLVER = True
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
def test_install(self):
|
|
Packit Service |
21c75c |
group_id = 'base'
|
|
Packit Service |
21c75c |
trans = self.solver._group_install(group_id, dnf.comps.MANDATORY)
|
|
Packit Service |
21c75c |
self.assertLength(trans.install, 2)
|
|
Packit Service |
21c75c |
self._swdb_commit()
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
swdb_group = self.history.group.get(group_id)
|
|
Packit Service |
21c75c |
self.assertCountEqual([i.getName() for i in swdb_group.getPackages()], ['pepper', 'tour'])
|
|
Packit Service |
21c75c |
self.assertEqual(swdb_group.getPackageTypes(), dnf.comps.MANDATORY)
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
def test_removable_pkg(self):
|
|
Packit Service |
21c75c |
comps_group = self.comps.group_by_pattern('base')
|
|
Packit Service |
21c75c |
self.solver._group_install(comps_group.id, dnf.comps.MANDATORY, [])
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
tsis = []
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
pkg1 = self.base.sack.query().filter(name="pepper", epoch=0, version="20", release="0", arch="x86_64")[0]
|
|
Packit Service |
21c75c |
self.history.rpm.add_install(pkg1, reason=libdnf.transaction.TransactionItemReason_GROUP)
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
pkg3 = self.base.sack.query().filter(name="tour", version="5", release="0", arch="noarch")[0]
|
|
Packit Service |
21c75c |
self.history.rpm.add_install(pkg3, reason=libdnf.transaction.TransactionItemReason_GROUP)
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
group_id = "dupl"
|
|
Packit Service |
21c75c |
swdb_group = self.history.group.new(group_id, group_id, group_id, dnf.comps.DEFAULT)
|
|
Packit Service |
21c75c |
swdb_group.addPackage("tour", True, dnf.comps.MANDATORY)
|
|
Packit Service |
21c75c |
self.history.group.install(swdb_group)
|
|
Packit Service |
21c75c |
self._swdb_commit(tsis)
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
# pepper is in single group with reason "group"
|
|
Packit Service |
21c75c |
self.assertTrue(self.solver._removable_pkg('pepper'))
|
|
Packit Service |
21c75c |
# right's reason is "dep"
|
|
Packit Service |
21c75c |
self.assertFalse(self.solver._removable_pkg('right'))
|
|
Packit Service |
21c75c |
# tour appears in more than one group
|
|
Packit Service |
21c75c |
self.assertFalse(self.solver._removable_pkg('tour'))
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
swdb_group = self.history.group.get(group_id)
|
|
Packit Service |
21c75c |
self.history.group.remove(swdb_group)
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
# tour appears only in one group now
|
|
Packit Service |
21c75c |
self.assertTrue(self.solver._removable_pkg('tour'))
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
def test_remove(self):
|
|
Packit Service |
21c75c |
grp = self.comps.group_by_pattern('base')
|
|
Packit Service |
21c75c |
self.solver._group_install(grp.id, dnf.comps.MANDATORY, [])
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
grps = self.history.group.search_by_pattern('base')
|
|
Packit Service |
21c75c |
for grp in grps:
|
|
Packit Service |
21c75c |
self.solver._group_remove(grp)
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
# need to load groups again - loaded object is stays the same
|
|
Packit Service |
21c75c |
grps = self.history.group.search_by_pattern('base')
|
|
Packit Service |
21c75c |
for grp in grps:
|
|
Packit Service |
21c75c |
self.assertFalse(grp.installed)
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
def test_upgrade(self):
|
|
Packit Service |
21c75c |
# setup of the "current state"
|
|
Packit Service |
21c75c |
group_id = 'base'
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
swdb_group = self.history.group.new(group_id, group_id, group_id, dnf.comps.MANDATORY)
|
|
Packit Service |
21c75c |
for pkg_name in ['pepper', 'handerson']:
|
|
Packit Service |
21c75c |
swdb_group.addPackage(pkg_name, True, dnf.comps.MANDATORY)
|
|
Packit Service |
21c75c |
self.history.group.install(swdb_group)
|
|
Packit Service |
21c75c |
self._swdb_commit()
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
swdb_group = self.history.group.get(group_id)
|
|
Packit Service |
21c75c |
self.assertCountEqual([i.getName() for i in swdb_group.getPackages()], ('handerson', 'pepper'))
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
comps_group = self.comps.group_by_pattern(group_id)
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
trans = self.solver._group_upgrade(group_id)
|
|
Packit Service |
21c75c |
self.assertTransEqual(trans.install, ('tour',))
|
|
Packit Service |
21c75c |
self.assertTransEqual(trans.remove, ('handerson',))
|
|
Packit Service |
21c75c |
self.assertTransEqual(trans.upgrade, ('pepper',))
|
|
Packit Service |
21c75c |
self._swdb_commit()
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
swdb_group = self.history.group.get(group_id)
|
|
Packit Service |
21c75c |
self.assertCountEqual([i.getName() for i in swdb_group.getPackages()], ('tour', 'pepper'))
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
class SolverEnvironmentTest(tests.support.DnfBaseTestCase):
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
REPOS = []
|
|
Packit Service |
21c75c |
COMPS = True
|
|
Packit Service |
21c75c |
COMPS_SOLVER = True
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
def test_install(self):
|
|
Packit Service |
21c75c |
env_id = 'sugar-desktop-environment'
|
|
Packit Service |
21c75c |
env = self.comps._environment_by_id(env_id)
|
|
Packit Service |
21c75c |
trans = self.solver._environment_install(env_id, dnf.comps.MANDATORY, [])
|
|
Packit Service |
21c75c |
self._swdb_commit()
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
self.assertCountEqual([pkg.name for pkg in trans.install], ('pepper', 'trampoline', 'hole', 'lotus'))
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
sugar = self.history.env.get(env_id)
|
|
Packit Service |
21c75c |
self.assertCountEqual([i.getGroupId() for i in sugar.getGroups()], ('Peppers', 'somerset', 'base'))
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
somerset = self.history.group.get('somerset')
|
|
Packit Service |
21c75c |
self.assertIsNotNone(somerset)
|
|
Packit Service |
21c75c |
self.assertEqual(somerset.getPackageTypes(), dnf.comps.MANDATORY)
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
base = self.history.group.get('base')
|
|
Packit Service |
21c75c |
self.assertEqual(base, None)
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
def test_remove(self):
|
|
Packit Service |
21c75c |
env_id = 'sugar-desktop-environment'
|
|
Packit Service |
21c75c |
comps_env = self.comps.environment_by_pattern(env_id)
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
self.solver._environment_install(comps_env.id, dnf.comps.MANDATORY, [])
|
|
Packit Service |
21c75c |
self._swdb_commit()
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
swdb_env = self.history.env.get(comps_env.id)
|
|
Packit Service |
21c75c |
self.assertEqual(swdb_env.getPackageTypes(), dnf.comps.MANDATORY)
|
|
Packit Service |
21c75c |
group_ids = [i.getGroupId() for i in swdb_env.getGroups()]
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
self.solver._environment_remove(comps_env.id)
|
|
Packit Service |
21c75c |
self._swdb_commit()
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
swdb_env = self.history.env.get(comps_env.id)
|
|
Packit Service |
21c75c |
# if swdb_env is None, then it's removed
|
|
Packit Service |
21c75c |
self.assertIsNone(swdb_env)
|
|
Packit Service |
21c75c |
# test if also all groups were removed
|
|
Packit Service |
21c75c |
for group_id in group_ids:
|
|
Packit Service |
21c75c |
swdb_group = self.history.group.get(group_id)
|
|
Packit Service |
21c75c |
self.assertIsNone(swdb_group)
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
# install it again with different pkg_types
|
|
Packit Service |
21c75c |
self.solver._environment_install(comps_env.id, dnf.comps.OPTIONAL, [])
|
|
Packit Service |
21c75c |
self._swdb_commit()
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
swdb_env = self.history.env.get(comps_env.id)
|
|
Packit Service |
21c75c |
self.assertIsNotNone(swdb_env)
|
|
Packit Service |
21c75c |
self.assertEqual(swdb_env.getPackageTypes(), dnf.comps.OPTIONAL)
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
group_ids = [i.getGroupId() for i in swdb_env.getGroups()]
|
|
Packit Service |
21c75c |
self.assertTrue(len(group_ids))
|
|
Packit Service |
21c75c |
for group_id in group_ids:
|
|
Packit Service |
21c75c |
swdb_group = self.history.group.get(group_id)
|
|
Packit Service |
21c75c |
if group_id == "base" and swdb_group is None:
|
|
Packit Service |
21c75c |
continue
|
|
Packit Service |
21c75c |
self.assertEqual(swdb_group.getPackageTypes(), dnf.comps.OPTIONAL)
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
def test_upgrade(self):
|
|
Packit Service |
21c75c |
"""Upgrade environment, the one group it knows is no longer installed."""
|
|
Packit Service |
21c75c |
env_id = "sugar-desktop-environment"
|
|
Packit Service |
21c75c |
comps_env = self.comps.environment_by_pattern(env_id)
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
self.solver._environment_install(comps_env.id, dnf.comps.ALL_TYPES, [])
|
|
Packit Service |
21c75c |
self._swdb_commit()
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
swdb_env = self.history.env.get(comps_env.id)
|
|
Packit Service |
21c75c |
self.assertNotEqual(swdb_env, None)
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
# create a new transaction item for group Peppers with no packages
|
|
Packit Service |
21c75c |
self._swdb_commit()
|
|
Packit Service |
21c75c |
swdb_group = self.history.group.get('Peppers')
|
|
Packit Service |
21c75c |
swdb_group = self.history.group.new(swdb_group.getGroupId(), swdb_group.getName(), swdb_group.getTranslatedName(), swdb_group.getPackageTypes())
|
|
Packit Service |
21c75c |
self.history.group.install(swdb_group)
|
|
Packit Service |
21c75c |
self._swdb_commit()
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
trans = self.solver._environment_upgrade(comps_env.id)
|
|
Packit Service |
21c75c |
self._swdb_commit()
|
|
Packit Service |
21c75c |
self.assertTransEqual(trans.install, ('hole', 'lotus'))
|
|
Packit Service |
21c75c |
self.assertTransEqual(trans.upgrade, ('pepper', 'trampoline', 'lotus'))
|
|
Packit Service |
21c75c |
self.assertEmpty(trans.remove)
|