Blame tests/test_repomanage.py

Packit 3a9065
# Copyright (C) 2015 Igor Gnatenko
Packit 3a9065
#
Packit 3a9065
# This copyrighted material is made available to anyone wishing to use,
Packit 3a9065
# modify, copy, or redistribute it subject to the terms and conditions of
Packit 3a9065
# the GNU General Public License v.2, or (at your option) any later version.
Packit 3a9065
# This program is distributed in the hope that it will be useful, but WITHOUT
Packit 3a9065
# ANY WARRANTY expressed or implied, including the implied warranties of
Packit 3a9065
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General
Packit 3a9065
# Public License for more details.  You should have received a copy of the
Packit 3a9065
# GNU General Public License along with this program; if not, write to the
Packit 3a9065
# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
Packit 3a9065
# 02110-1301, USA.  Any Red Hat trademarks that are incorporated in the
Packit 3a9065
# source code or documentation are not subject to the GNU General Public
Packit 3a9065
# License and may only be used or replicated with the express permission of
Packit 3a9065
# Red Hat, Inc.
Packit 3a9065
#
Packit 3a9065
Packit 3a9065
from __future__ import absolute_import
Packit 3a9065
from __future__ import unicode_literals
Packit 3a9065
from tests.support import mock
Packit 3a9065
Packit 3a9065
import dnf.pycomp
Packit 3a9065
import os
Packit 3a9065
import repomanage
Packit 3a9065
import tests.support as support
Packit 3a9065
Packit 3a9065
Packit 3a9065
class TestRepoManageFunctions(support.TestCase):
Packit 3a9065
Packit 3a9065
    def setUp(self):
Packit 3a9065
        self.cmd = repomanage.RepoManageCommand(
Packit 3a9065
            support.CliStub(support.BaseStub()))
Packit 3a9065
        self.path = os.path.join(os.path.dirname(__file__), "resources/repomanage/")
Packit 3a9065
Packit 3a9065
    @staticmethod
Packit 3a9065
    def _path_join_in_list(l, path):
Packit 3a9065
        return [os.path.join(path, x) for x in l]
Packit 3a9065
Packit 3a9065
    def test_old_option(self):
Packit 3a9065
        args = ["--old", self.path]
Packit 3a9065
        with mock.patch("sys.stdout", new_callable=dnf.pycomp.StringIO) as stdout:
Packit 3a9065
            support.command_run(self.cmd, args)
Packit 3a9065
            expected_list = ["foo-4-6.src.rpm",
Packit 3a9065
                             "foo-4-7.src.rpm",
Packit 3a9065
                             "noarch/foo-4-6.noarch.rpm",
Packit 3a9065
                             "noarch/foo-4-7.noarch.rpm"]
Packit 3a9065
            self.assertEqual(stdout.getvalue().split(),
Packit 3a9065
                             self._path_join_in_list(expected_list, self.path))
Packit 3a9065
Packit 3a9065
    def test_new_option(self):
Packit 3a9065
        args = ["--new", self.path]
Packit 3a9065
        with mock.patch("sys.stdout", new_callable=dnf.pycomp.StringIO) as stdout:
Packit 3a9065
            support.command_run(self.cmd, args)
Packit 3a9065
            expected_list = ["foo-4-8.src.rpm",
Packit 3a9065
                             "noarch/foo-4-8.noarch.rpm"]
Packit 3a9065
            self.assertEqual(stdout.getvalue().split(),
Packit 3a9065
                             self._path_join_in_list(expected_list, self.path))
Packit 3a9065
Packit 3a9065
    def test_keep_option(self):
Packit 3a9065
        args = ["--new", "--keep", "2", self.path]
Packit 3a9065
        with mock.patch("sys.stdout", new_callable=dnf.pycomp.StringIO) as stdout:
Packit 3a9065
            support.command_run(self.cmd, args)
Packit 3a9065
            expected_list = ["foo-4-7.src.rpm",
Packit 3a9065
                             "foo-4-8.src.rpm",
Packit 3a9065
                             "noarch/foo-4-7.noarch.rpm",
Packit 3a9065
                             "noarch/foo-4-8.noarch.rpm"]
Packit 3a9065
            self.assertEqual(stdout.getvalue().split(),
Packit 3a9065
                             self._path_join_in_list(expected_list, self.path))
Packit 3a9065
Packit 3a9065
    def test_space_option(self):
Packit 3a9065
        args = ["--new", "--space", self.path]
Packit 3a9065
        with mock.patch("sys.stdout", new_callable=dnf.pycomp.StringIO) as stdout:
Packit 3a9065
            support.command_run(self.cmd, args)
Packit 3a9065
            expected_list = ["foo-4-8.src.rpm",
Packit 3a9065
                             "noarch/foo-4-8.noarch.rpm"]
Packit 3a9065
            self.assertEqual(stdout.getvalue()[:-1],
Packit 3a9065
                             " ".join(self._path_join_in_list(expected_list, self.path)))