|
Packit |
6f3914 |
# -*- coding: utf-8 -*-
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
# Copyright (C) 2012-2018 Red Hat, Inc.
|
|
Packit |
6f3914 |
#
|
|
Packit |
6f3914 |
# This copyrighted material is made available to anyone wishing to use,
|
|
Packit |
6f3914 |
# modify, copy, or redistribute it subject to the terms and conditions of
|
|
Packit |
6f3914 |
# the GNU General Public License v.2, or (at your option) any later version.
|
|
Packit |
6f3914 |
# This program is distributed in the hope that it will be useful, but WITHOUT
|
|
Packit |
6f3914 |
# ANY WARRANTY expressed or implied, including the implied warranties of
|
|
Packit |
6f3914 |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
|
Packit |
6f3914 |
# Public License for more details. You should have received a copy of the
|
|
Packit |
6f3914 |
# GNU General Public License along with this program; if not, write to the
|
|
Packit |
6f3914 |
# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
|
Packit |
6f3914 |
# 02110-1301, USA. Any Red Hat trademarks that are incorporated in the
|
|
Packit |
6f3914 |
# source code or documentation are not subject to the GNU General Public
|
|
Packit |
6f3914 |
# License and may only be used or replicated with the express permission of
|
|
Packit |
6f3914 |
# Red Hat, Inc.
|
|
Packit |
6f3914 |
#
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
from __future__ import absolute_import
|
|
Packit |
6f3914 |
from __future__ import unicode_literals
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
import libdnf.transaction
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
import dnf.history
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
import tests.support
|
|
Packit |
6f3914 |
from tests.support import mock
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
'''
|
|
Packit |
6f3914 |
class NEVRAOperationsTest(tests.support.TestCase):
|
|
Packit |
6f3914 |
"""Unit tests of dnf.history.NEVRAOperations."""
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
def test_add_erase_installed(self):
|
|
Packit |
6f3914 |
"""Test add with an erasure of NEVRA which was installed before."""
|
|
Packit |
6f3914 |
ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
ops.add('Install', 'tour-0:4.6-1.noarch', obsoleted_nevras=('lotus-0:3-16.x86_64',))
|
|
Packit |
6f3914 |
ops.add('Erase', 'tour-0:4.6-1.noarch')
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
self.assertCountEqual(
|
|
Packit |
6f3914 |
ops,
|
|
Packit |
6f3914 |
(('Erase', 'lotus-0:3-16.x86_64', None, set()),))
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
def test_add_erase_removed(self):
|
|
Packit |
6f3914 |
"""Test add with an erasure of NEVRA which was removed before."""
|
|
Packit |
6f3914 |
ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
ops.add('Erase', 'tour-0:4.6-1.noarch')
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
self.assertRaises(
|
|
Packit |
6f3914 |
ValueError,
|
|
Packit |
6f3914 |
ops.add, 'Erase', 'tour-0:4.6-1.noarch')
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
def test_add_install_installed(self):
|
|
Packit |
6f3914 |
"""Test add with two installs of the same NEVRA."""
|
|
Packit |
6f3914 |
ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
ops.add('Install', 'tour-0:4.6-1.noarch')
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
self.assertRaises(
|
|
Packit |
6f3914 |
ValueError,
|
|
Packit |
6f3914 |
ops.add, 'Install', 'tour-0:4.6-1.noarch')
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
def test_add_install_removed(self):
|
|
Packit |
6f3914 |
"""Test add with an install of NEVRA which was removed before."""
|
|
Packit |
6f3914 |
ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
ops.add('Erase', 'tour-0:4.6-1.noarch')
|
|
Packit |
6f3914 |
ops.add('Install', 'tour-0:4.6-1.noarch')
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
self.assertCountEqual(
|
|
Packit |
6f3914 |
ops,
|
|
Packit |
6f3914 |
(('Reinstall', 'tour-0:4.6-1.noarch', 'tour-0:4.6-1.noarch', set()),))
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
def test_add_obsoleted_installed(self):
|
|
Packit |
6f3914 |
"""Test add with an obsoleted NEVRA which was installed before."""
|
|
Packit |
6f3914 |
ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
ops.add('Install', 'lotus-0:3-16.x86_64')
|
|
Packit |
6f3914 |
ops.add('Install', 'tour-0:4.6-1.noarch', obsoleted_nevras=('lotus-0:3-16.x86_64',))
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
self.assertCountEqual(
|
|
Packit |
6f3914 |
ops,
|
|
Packit |
6f3914 |
(('Install', 'tour-0:4.6-1.noarch', None, set()),))
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
def test_add_obsoleted_obsoleted(self):
|
|
Packit |
6f3914 |
"""Test add with an obsoleted NEVRA which was obsoleted before."""
|
|
Packit |
6f3914 |
ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
ops.add(
|
|
Packit |
6f3914 |
'Install',
|
|
Packit |
6f3914 |
'tour-0:4.6-1.noarch',
|
|
Packit |
6f3914 |
obsoleted_nevras=('lotus-0:3-16.x86_64', 'mrkite-0:2-0.x86_64')
|
|
Packit |
6f3914 |
)
|
|
Packit |
6f3914 |
ops.add(
|
|
Packit |
6f3914 |
'Install',
|
|
Packit |
6f3914 |
'pepper-0:20-0.x86_64',
|
|
Packit |
6f3914 |
obsoleted_nevras=('lotus-0:3-16.x86_64', 'librita-0:1-1.x86_64')
|
|
Packit |
6f3914 |
)
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
self.assertCountEqual(
|
|
Packit |
6f3914 |
ops,
|
|
Packit |
6f3914 |
(
|
|
Packit |
6f3914 |
(
|
|
Packit |
6f3914 |
'Install',
|
|
Packit |
6f3914 |
'tour-0:4.6-1.noarch',
|
|
Packit |
6f3914 |
None,
|
|
Packit |
6f3914 |
{'lotus-0:3-16.x86_64', 'mrkite-0:2-0.x86_64'}
|
|
Packit |
6f3914 |
),
|
|
Packit |
6f3914 |
(
|
|
Packit |
6f3914 |
'Install',
|
|
Packit |
6f3914 |
'pepper-0:20-0.x86_64',
|
|
Packit |
6f3914 |
None,
|
|
Packit |
6f3914 |
{'lotus-0:3-16.x86_64', 'librita-0:1-1.x86_64'}
|
|
Packit |
6f3914 |
)
|
|
Packit |
6f3914 |
)
|
|
Packit |
6f3914 |
)
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
def test_add_obsoleted_removed(self):
|
|
Packit |
6f3914 |
"""Test add with an obsoleted NEVRA which was removed before."""
|
|
Packit |
6f3914 |
ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
ops.add('Erase', 'lotus-0:3-16.x86_64')
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
self.assertRaises(
|
|
Packit |
6f3914 |
ValueError,
|
|
Packit |
6f3914 |
ops.add, 'Install', 'tour-0:4.6-1.noarch', obsoleted_nevras=('lotus-0:3-16.x86_64',))
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
def test_add_reinstall_installed(self):
|
|
Packit |
6f3914 |
"""Test add with a reinstall of NEVRA which was installed before."""
|
|
Packit |
6f3914 |
ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
ops.add('Install', 'tour-0:4.6-1.noarch')
|
|
Packit |
6f3914 |
ops.add('Reinstall', 'tour-0:4.6-1.noarch', 'tour-0:4.6-1.noarch')
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
self.assertCountEqual(
|
|
Packit |
6f3914 |
ops,
|
|
Packit |
6f3914 |
(('Install', 'tour-0:4.6-1.noarch', None, set()),))
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
def test_add_replace_installed(self):
|
|
Packit |
6f3914 |
"""Test add with a replacing NEVRA which was installed before."""
|
|
Packit |
6f3914 |
ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
ops.add('Install', 'tour-0:4.8-1.noarch')
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
self.assertRaises(
|
|
Packit |
6f3914 |
ValueError,
|
|
Packit |
6f3914 |
ops.add, 'Update', 'tour-0:4.8-1.noarch', 'tour-0:4.6-1.noarch')
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
def test_add_replace_opposite(self):
|
|
Packit |
6f3914 |
"""Test add with a replacement which was done before, but swapped."""
|
|
Packit |
6f3914 |
ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
ops.add('Downgrade', 'tour-0:4.6-1.noarch', 'tour-0:4.8-1.noarch')
|
|
Packit |
6f3914 |
ops.add('Update', 'tour-0:4.8-1.noarch', 'tour-0:4.6-1.noarch')
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
self.assertCountEqual(
|
|
Packit |
6f3914 |
ops,
|
|
Packit |
6f3914 |
(('Reinstall', 'tour-0:4.8-1.noarch', 'tour-0:4.8-1.noarch', set()),))
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
def test_add_replace_opposite_manual(self):
|
|
Packit |
6f3914 |
"""Test add with a manual replacement which was done before, but swapped."""
|
|
Packit |
6f3914 |
ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
ops.add('Erase', 'tour-0:4.8-1.noarch')
|
|
Packit |
6f3914 |
ops.add('Install', 'tour-0:4.6-1.noarch')
|
|
Packit |
6f3914 |
ops.add('Update', 'tour-0:4.8-1.noarch', 'tour-0:4.6-1.noarch')
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
self.assertCountEqual(
|
|
Packit |
6f3914 |
ops,
|
|
Packit |
6f3914 |
(('Reinstall', 'tour-0:4.8-1.noarch', 'tour-0:4.8-1.noarch', set()),))
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
def test_add_replace_removed(self):
|
|
Packit |
6f3914 |
"""Test add with a replacing NEVRA which was removed before."""
|
|
Packit |
6f3914 |
ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
ops.add('Erase', 'tour-0:4.8-1.noarch')
|
|
Packit |
6f3914 |
ops.add('Update', 'tour-0:4.8-1.noarch', 'tour-0:4.6-1.noarch')
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
self.assertCountEqual(
|
|
Packit |
6f3914 |
ops,
|
|
Packit |
6f3914 |
(('Reinstall', 'tour-0:4.8-1.noarch', 'tour-0:4.8-1.noarch', set()),
|
|
Packit |
6f3914 |
('Erase', 'tour-0:4.6-1.noarch', None, set())))
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
def test_add_replaced_opposite(self):
|
|
Packit |
6f3914 |
"""Test add with a replaced NEVRA which replaced a NEVRA before in the opposite direction."""
|
|
Packit |
6f3914 |
ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
ops.add('Downgrade', 'tour-0:4.6-1.noarch', 'tour-0:4.9-1.noarch')
|
|
Packit |
6f3914 |
ops.add('Update', 'tour-0:4.8-1.noarch', 'tour-0:4.6-1.noarch')
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
self.assertCountEqual(
|
|
Packit |
6f3914 |
ops,
|
|
Packit |
6f3914 |
(('Erase', 'tour-0:4.9-1.noarch', None, set()),
|
|
Packit |
6f3914 |
('Install', 'tour-0:4.8-1.noarch', None, set())))
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
def test_add_replaced_removed(self):
|
|
Packit |
6f3914 |
"""Test add with a replaced NEVRA which was removed before."""
|
|
Packit |
6f3914 |
ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
ops.add('Erase', 'tour-0:4.6-1.noarch')
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
self.assertRaises(
|
|
Packit |
6f3914 |
ValueError,
|
|
Packit |
6f3914 |
ops.add, 'Update', 'tour-0:4.8-1.noarch', 'tour-0:4.6-1.noarch')
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
def test_add_replaced_reinstall(self):
|
|
Packit |
6f3914 |
"""Test add with a replaced NEVRA which was reinstalled before."""
|
|
Packit |
6f3914 |
ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
ops.add('Reinstall', 'tour-0:4.6-1.noarch', 'tour-0:4.6-1.noarch')
|
|
Packit |
6f3914 |
ops.add('Update', 'tour-0:4.8-1.noarch', 'tour-0:4.6-1.noarch')
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
self.assertCountEqual(
|
|
Packit |
6f3914 |
ops,
|
|
Packit |
6f3914 |
(('Update', 'tour-0:4.8-1.noarch', 'tour-0:4.6-1.noarch', set()),))
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
def test_add_replaced_replacement(self):
|
|
Packit |
6f3914 |
"""Test add with a replaced NEVRA which replaced a NEVRA before."""
|
|
Packit |
6f3914 |
ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
ops.add('Update', 'tour-0:4.8-1.noarch', 'tour-0:4.6-1.noarch')
|
|
Packit |
6f3914 |
ops.add('Update', 'tour-0:4.9-1.noarch', 'tour-0:4.8-1.noarch')
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
self.assertCountEqual(
|
|
Packit |
6f3914 |
ops,
|
|
Packit |
6f3914 |
(('Update', 'tour-0:4.9-1.noarch', 'tour-0:4.6-1.noarch', set()),))
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
def test_addition(self):
|
|
Packit |
6f3914 |
"""Test addition of two instances."""
|
|
Packit |
6f3914 |
left_ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
left_ops.add('Update', 'tour-0:4.8-1.noarch', 'tour-0:4.6-1.noarch')
|
|
Packit |
6f3914 |
right_ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
right_ops.add('Update', 'tour-0:4.9-1.noarch', 'tour-0:4.8-1.noarch')
|
|
Packit |
6f3914 |
expected_ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
expected_ops.add('Update', 'tour-0:4.9-1.noarch', 'tour-0:4.6-1.noarch')
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
result_ops = left_ops + right_ops
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
self.assertEqual(result_ops, expected_ops)
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
def test_addition_inplace(self):
|
|
Packit |
6f3914 |
"""Test in-place addition of two instances."""
|
|
Packit |
6f3914 |
left_ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
left_ops.add('Update', 'tour-0:4.8-1.noarch', 'tour-0:4.6-1.noarch')
|
|
Packit |
6f3914 |
right_ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
right_ops.add('Update', 'tour-0:4.9-1.noarch', 'tour-0:4.8-1.noarch')
|
|
Packit |
6f3914 |
expected_ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
expected_ops.add('Update', 'tour-0:4.9-1.noarch', 'tour-0:4.6-1.noarch')
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
left_ops += right_ops
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
self.assertEqual(left_ops, expected_ops)
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
def test_equality(self):
|
|
Packit |
6f3914 |
"""Test equality of two equal instances."""
|
|
Packit |
6f3914 |
left_ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
left_ops.add('Update', 'tour-0:4.8-1.noarch', 'tour-0:4.6-1.noarch')
|
|
Packit |
6f3914 |
right_ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
right_ops.add('Update', 'tour-0:4.8-1.noarch', 'tour-0:4.6-1.noarch')
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
is_equal = left_ops == right_ops
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
self.assertTrue(is_equal)
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
def test_equality_differentcontent(self):
|
|
Packit |
6f3914 |
"""Test equality of two instances with different contents."""
|
|
Packit |
6f3914 |
left_ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
left_ops.add('Downgrade', 'tour-0:4.6-1.noarch', 'tour-0:4.8-1.noarch')
|
|
Packit |
6f3914 |
right_ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
right_ops.add('Update', 'tour-0:4.8-1.noarch', 'tour-0:4.6-1.noarch')
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
is_equal = left_ops == right_ops
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
self.assertFalse(is_equal)
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
def test_equality_differentlength(self):
|
|
Packit |
6f3914 |
"""Test equality of two instances with different lengths."""
|
|
Packit |
6f3914 |
left_ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
right_ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
right_ops.add('Update', 'tour-0:4.8-1.noarch', 'tour-0:4.6-1.noarch')
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
is_equal = left_ops == right_ops
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
self.assertFalse(is_equal)
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
def test_equality_differenttype(self):
|
|
Packit |
6f3914 |
"""Test equality of an instance and an object of a different type."""
|
|
Packit |
6f3914 |
ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
ops.add('Update', 'tour-0:4.8-1.noarch', 'tour-0:4.6-1.noarch')
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
is_equal = ops == 'tour-0:4.8-1.noarch'
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
self.assertFalse(is_equal)
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
def test_equality_identity(self):
|
|
Packit |
6f3914 |
"""Test equality of the same instance."""
|
|
Packit |
6f3914 |
ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
ops.add('Update', 'tour-0:4.8-1.noarch', 'tour-0:4.6-1.noarch')
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
is_equal = ops == ops
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
self.assertTrue(is_equal)
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
def test_inequality(self):
|
|
Packit |
6f3914 |
"""Test inequality of two different instances."""
|
|
Packit |
6f3914 |
left_ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
left_ops.add('Downgrade', 'tour-0:4.6-1.noarch', 'tour-0:4.8-1.noarch')
|
|
Packit |
6f3914 |
right_ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
right_ops.add('Update', 'tour-0:4.8-1.noarch', 'tour-0:4.6-1.noarch')
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
is_inequal = left_ops != right_ops
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
self.assertTrue(is_inequal)
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
def test_inequality_equal(self):
|
|
Packit |
6f3914 |
"""Test inequality of two equal instances."""
|
|
Packit |
6f3914 |
left_ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
left_ops.add('Update', 'tour-0:4.8-1.noarch', 'tour-0:4.6-1.noarch')
|
|
Packit |
6f3914 |
right_ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
right_ops.add('Update', 'tour-0:4.8-1.noarch', 'tour-0:4.6-1.noarch')
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
is_inequal = left_ops != right_ops
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
self.assertFalse(is_inequal)
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
def test_iterator(self):
|
|
Packit |
6f3914 |
"""Test iterator of an instance."""
|
|
Packit |
6f3914 |
ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
ops.add('Update', 'tour-0:4.8-1.noarch', 'tour-0:4.6-1.noarch')
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
iterator = iter(ops)
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
self.assertEqual(
|
|
Packit |
6f3914 |
next(iterator),
|
|
Packit |
6f3914 |
('Update', 'tour-0:4.8-1.noarch', 'tour-0:4.6-1.noarch', set()))
|
|
Packit |
6f3914 |
self.assertRaises(StopIteration, next, iterator)
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
def test_length(self):
|
|
Packit |
6f3914 |
"""Test length of an instance."""
|
|
Packit |
6f3914 |
ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
ops.add('Update', 'tour-0:4.8-1.noarch', 'tour-0:4.6-1.noarch')
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
length = len(ops)
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
self.assertEqual(length, 1)
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
def test_membership(self):
|
|
Packit |
6f3914 |
"""Test membership of a contained operation."""
|
|
Packit |
6f3914 |
ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
ops.add('Update', 'tour-0:4.9-1.noarch', 'tour-0:4.8-1.noarch')
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
is_in = ('Update', 'tour-0:4.9-1.noarch', 'tour-0:4.8-1.noarch', ()) in ops
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
self.assertTrue(is_in)
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
def test_membership_differentnevra(self):
|
|
Packit |
6f3914 |
"""Test membership of an operation with different (replacing) NEVRA."""
|
|
Packit |
6f3914 |
ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
ops.add('Update', 'tour-0:4.9-1.noarch', 'tour-0:4.8-1.noarch')
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
is_in = ('Update', 'pepper-0:20-0.x86_64', 'tour-0:4.8-1.noarch', ()) in ops
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
self.assertFalse(is_in)
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
def test_membership_differentobsoleted(self):
|
|
Packit |
6f3914 |
"""Test membership of an operation with different obsoleted NEVRAs."""
|
|
Packit |
6f3914 |
ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
ops.add('Update', 'tour-0:4.9-1.noarch', 'tour-0:4.8-1.noarch')
|
|
Packit |
6f3914 |
op = (
|
|
Packit |
6f3914 |
'Update',
|
|
Packit |
6f3914 |
'tour-0:4.9-1.noarch',
|
|
Packit |
6f3914 |
'tour-0:4.8-1.noarch',
|
|
Packit |
6f3914 |
('pepper-0:20-0.x86_64',)
|
|
Packit |
6f3914 |
)
|
|
Packit |
6f3914 |
self.assertFalse(op in ops)
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
def test_membership_differentreplaced(self):
|
|
Packit |
6f3914 |
"""Test membership of an operation with different replaced NEVRA."""
|
|
Packit |
6f3914 |
ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
ops.add('Update', 'tour-0:4.9-1.noarch', 'tour-0:4.8-1.noarch')
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
is_in = ('Update', 'tour-0:4.9-1.noarch', 'pepper-0:20-0.x86_64', ()) in ops
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
self.assertFalse(is_in)
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
def test_membership_differentstate(self):
|
|
Packit |
6f3914 |
"""Test membership of an operation with different state."""
|
|
Packit |
6f3914 |
ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
ops.add('Update', 'tour-0:4.9-1.noarch', 'tour-0:4.8-1.noarch')
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
is_in = ('Downgrade', 'tour-0:4.9-1.noarch', 'tour-0:4.8-1.noarch', ()) in ops
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
self.assertFalse(is_in)
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
def test_membership_differenttype(self):
|
|
Packit |
6f3914 |
"""Test membership of an object of a different type."""
|
|
Packit |
6f3914 |
ops = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
ops.add('Update', 'tour-0:4.9-1.noarch', 'tour-0:4.8-1.noarch')
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
is_in = 'tour-0:4.9-1.noarch' in ops
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
self.assertFalse(is_in)
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
class TransactionConverterTest(tests.support.TestCase):
|
|
Packit |
6f3914 |
"""Unit tests of dnf.history.TransactionConverter."""
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
def assert_transaction_equal(self, actual, expected):
|
|
Packit |
6f3914 |
"""Assert that two transactions are equal."""
|
|
Packit |
6f3914 |
self.assertCountEqual(self.transaction2tuples(actual),
|
|
Packit |
6f3914 |
self.transaction2tuples(expected))
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
def test_find_available_na(self):
|
|
Packit |
6f3914 |
"""Test finding with an unavailable NEVRA."""
|
|
Packit |
6f3914 |
sack = tests.support.mock_sack('main')
|
|
Packit |
6f3914 |
converter = dnf.history.TransactionConverter(sack)
|
|
Packit |
6f3914 |
with self.assertRaises(dnf.exceptions.PackagesNotAvailableError) as ctx:
|
|
Packit |
6f3914 |
converter._find_available('none-1-0.noarch')
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
self.assertEqual(ctx.exception.pkg_spec, 'none-1-0.noarch')
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
def test_find_installed_ni(self):
|
|
Packit |
6f3914 |
"""Test finding with an unistalled NEVRA."""
|
|
Packit |
6f3914 |
sack = tests.support.mock_sack('main')
|
|
Packit |
6f3914 |
converter = dnf.history.TransactionConverter(sack)
|
|
Packit |
6f3914 |
with self.assertRaises(dnf.exceptions.PackagesNotInstalledError) as ctx:
|
|
Packit |
6f3914 |
converter._find_installed('none-1-0.noarch')
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
self.assertEqual(ctx.exception.pkg_spec, 'none-1-0.noarch')
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
def test_convert_downgrade(self):
|
|
Packit |
6f3914 |
"""Test conversion with a downgrade."""
|
|
Packit |
6f3914 |
operations = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
operations.add('Downgrade', 'tour-4.6-1.noarch', 'tour-5-0.noarch',
|
|
Packit |
6f3914 |
['hole-1-1.x86_64'])
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
sack = tests.support.mock_sack('main')
|
|
Packit |
6f3914 |
converter = dnf.history.TransactionConverter(sack)
|
|
Packit |
6f3914 |
actual = converter.convert(operations)
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
expected = dnf.transaction.Transaction()
|
|
Packit |
6f3914 |
expected.add_downgrade(
|
|
Packit |
6f3914 |
next(iter(sack.query().available()._nevra('tour-4.6-1.noarch'))),
|
|
Packit |
6f3914 |
next(iter(sack.query().installed()._nevra('tour-5-0.noarch'))),
|
|
Packit |
6f3914 |
[next(iter(sack.query().installed()._nevra('hole-1-1.x86_64')))])
|
|
Packit |
6f3914 |
self.assert_transaction_equal(actual, expected)
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
def test_convert_erase(self):
|
|
Packit |
6f3914 |
"""Test conversion with an erasure."""
|
|
Packit |
6f3914 |
operations = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
operations.add('Erase', 'pepper-20-0.x86_64')
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
sack = tests.support.mock_sack()
|
|
Packit |
6f3914 |
converter = dnf.history.TransactionConverter(sack)
|
|
Packit |
6f3914 |
actual = converter.convert(operations)
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
expected = dnf.transaction.Transaction()
|
|
Packit |
6f3914 |
expected.add_erase(
|
|
Packit |
6f3914 |
next(iter(sack.query().installed()._nevra('pepper-20-0.x86_64'))))
|
|
Packit |
6f3914 |
self.assert_transaction_equal(actual, expected)
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
def test_convert_install(self):
|
|
Packit |
6f3914 |
"""Test conversion with an installation."""
|
|
Packit |
6f3914 |
operations = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
operations.add('Install', 'lotus-3-16.x86_64',
|
|
Packit |
6f3914 |
obsoleted_nevras=['hole-1-1.x86_64'])
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
sack = tests.support.mock_sack('main')
|
|
Packit |
6f3914 |
converter = dnf.history.TransactionConverter(sack)
|
|
Packit |
6f3914 |
actual = converter.convert(operations, libdnf.transaction.TransactionItemReason_USER)
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
expected = dnf.transaction.Transaction()
|
|
Packit |
6f3914 |
expected.add_install(
|
|
Packit |
6f3914 |
next(iter(sack.query().available()._nevra('lotus-3-16.x86_64'))),
|
|
Packit |
6f3914 |
[next(iter(sack.query().installed()._nevra('hole-1-1.x86_64')))],
|
|
Packit |
6f3914 |
libdnf.transaction.TransactionItemReason_USER)
|
|
Packit |
6f3914 |
self.assert_transaction_equal(actual, expected)
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
def test_convert_reinstall(self):
|
|
Packit |
6f3914 |
"""Test conversion with a reinstallation."""
|
|
Packit |
6f3914 |
operations = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
operations.add('Reinstall', 'pepper-20-0.x86_64', 'pepper-20-0.x86_64',
|
|
Packit |
6f3914 |
['hole-1-1.x86_64'])
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
sack = tests.support.mock_sack('main')
|
|
Packit |
6f3914 |
converter = dnf.history.TransactionConverter(sack)
|
|
Packit |
6f3914 |
actual = converter.convert(operations)
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
expected = dnf.transaction.Transaction()
|
|
Packit |
6f3914 |
expected.add_reinstall(
|
|
Packit |
6f3914 |
next(iter(sack.query().available()._nevra('pepper-20-0.x86_64'))),
|
|
Packit |
6f3914 |
next(iter(sack.query().installed()._nevra('pepper-20-0.x86_64'))),
|
|
Packit |
6f3914 |
[next(iter(sack.query().installed()._nevra('hole-1-1.x86_64')))])
|
|
Packit |
6f3914 |
self.assert_transaction_equal(actual, expected)
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
def test_upgrade(self):
|
|
Packit |
6f3914 |
"""Test repeating with an upgrade."""
|
|
Packit |
6f3914 |
operations = dnf.history.NEVRAOperations()
|
|
Packit |
6f3914 |
operations.add('Update', 'pepper-20-1.x86_64', 'pepper-20-0.x86_64',
|
|
Packit |
6f3914 |
['hole-1-1.x86_64'])
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
sack = tests.support.mock_sack('updates')
|
|
Packit |
6f3914 |
converter = dnf.history.TransactionConverter(sack)
|
|
Packit |
6f3914 |
actual = converter.convert(operations)
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
expected = dnf.transaction.Transaction()
|
|
Packit |
6f3914 |
expected.add_upgrade(
|
|
Packit |
6f3914 |
next(iter(sack.query().available()._nevra('pepper-20-1.x86_64'))),
|
|
Packit |
6f3914 |
next(iter(sack.query().installed()._nevra('pepper-20-0.x86_64'))),
|
|
Packit |
6f3914 |
[next(iter(sack.query().installed()._nevra('hole-1-1.x86_64')))])
|
|
Packit |
6f3914 |
self.assert_transaction_equal(actual, expected)
|
|
Packit |
6f3914 |
|
|
Packit |
6f3914 |
@staticmethod
|
|
Packit |
6f3914 |
def transaction2tuples(transaction):
|
|
Packit |
6f3914 |
"""Convert a transaction to the iterable of tuples."""
|
|
Packit |
6f3914 |
for item in transaction:
|
|
Packit |
6f3914 |
yield (item.op_type, item.installed, item.erased, item.obsoleted,
|
|
Packit |
6f3914 |
item.reason)
|
|
Packit |
6f3914 |
'''
|