From 82f763ccdfed1eb7930203ff5b9b6a08d356c0c9 Mon Sep 17 00:00:00 2001 From: Owen W. Taylor Date: Sep 13 2018 14:58:58 +0000 Subject: Don't registry flatpak-build command on Python-2.6 libmodulemd is not compatible with Python-2.6 (because of the PyGObject), so a) don't register the flaptak-build command for Python-2.6 and b) skip the related tests. Signed-off-by: Owen W. Taylor --- diff --git a/pyrpkg/__init__.py b/pyrpkg/__init__.py index 26d637a..cc3c6ba 100644 --- a/pyrpkg/__init__.py +++ b/pyrpkg/__init__.py @@ -48,9 +48,12 @@ from pyrpkg.lookaside import CGILookasideCache from pyrpkg.sources import SourcesFile from pyrpkg.utils import cached_property, log_result, find_me -import gi -gi.require_version('Modulemd', '1.0') -from gi.repository import Modulemd # noqa +PY26 = sys.version_info < (2, 7, 0) + +if not PY26: + import gi + gi.require_version('Modulemd', '1.0') # raises ValueError + from gi.repository import Modulemd # noqa class NullHandler(logging.Handler): @@ -2927,6 +2930,7 @@ class Commands(object): koji_task_watcher=None, nowait=False, flatpak=False): + # check if repo is dirty and all commits are pushed self.check_repo() container_target = self.target if target_override \ diff --git a/pyrpkg/cli.py b/pyrpkg/cli.py index 128d516..b0553d6 100644 --- a/pyrpkg/cli.py +++ b/pyrpkg/cli.py @@ -31,7 +31,7 @@ import koji_cli.lib import pyrpkg.utils as utils import six -from pyrpkg import rpkgError, log as rpkgLogger +from pyrpkg import PY26, rpkgError, log as rpkgLogger from six.moves import configparser @@ -439,7 +439,8 @@ class cliClient(object): self.register_container_build() self.register_container_build_setup() self.register_diff() - self.register_flatpak_build() + if not PY26: + self.register_flatpak_build() self.register_gimmespec() self.register_gitbuildhash() self.register_gitcred() diff --git a/requirements/pypi.txt b/requirements/pypi.txt index 36559bf..e4c43bb 100644 --- a/requirements/pypi.txt +++ b/requirements/pypi.txt @@ -6,7 +6,6 @@ cccolutils >= 1.4 GitPython koji >= 1.15 pycurl >= 7.19 -PyGObject requests six >= 1.9.0 PyYAML diff --git a/tests/test_cli.py b/tests/test_cli.py index 83f0686..745a97c 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -23,6 +23,7 @@ from six.moves import http_client import git import pyrpkg.cli +from pyrpkg import PY26 try: import openidc_client @@ -307,6 +308,9 @@ class TestContainerBuildWithKoji(CliTestCase): self.assertEqual('koji-container', kwargs['kojiprofile']) self.assertEqual('koji', kwargs['build_client']) + @unittest.skipIf( + PY26, + 'Skip on old Python versions where libmodulemd is not available.') @patch('requests.get') def test_flatpak(self, mock_get): mock_rv = Mock() diff --git a/tests/test_flatpak_build.py b/tests/test_flatpak_build.py index 8359149..97ab456 100644 --- a/tests/test_flatpak_build.py +++ b/tests/test_flatpak_build.py @@ -2,9 +2,15 @@ import os import subprocess from textwrap import dedent +try: + import unittest2 as unittest +except ImportError: + import unittest + from mock import Mock, patch import requests +from pyrpkg import PY26 from utils import CommandTestCase EOG_MODULEMD = """ @@ -170,6 +176,9 @@ BUILDS = { } +@unittest.skipIf( + PY26, + 'Skip on old Python versions where libmodulemd is not available.') class FlatpakBuildCase(CommandTestCase): def set_container_modules(self, container_modules): with open(os.path.join(self.repo_path, 'container.yaml'), 'w') as f: diff --git a/tox.ini b/tox.ini index 707c7c3..da909bf 100644 --- a/tox.ini +++ b/tox.ini @@ -3,9 +3,12 @@ envlist = py26,py27,py36,py37,flake8,doc [testenv] skip_install = True -deps = +base_deps = rpm-py-installer -r{toxinidir}/requirements/test-pypi.txt +deps = + {[testenv]base_deps} + PyGObject commands = nosetests {posargs} setenv= @@ -17,7 +20,7 @@ deps = # Since this version, Python 2.6 support has been dropped. pyOpenSSL<18.0.0 unittest2 - {[testenv]deps} + {[testenv]base_deps} [testenv:flake8] basepython = python3