debian-koji/tests/test_docs_version.py
2021-06-02 11:19:33 +02:00

48 lines
1.4 KiB
Python

from __future__ import absolute_import
import os
import six
import subprocess
import unittest
import sys
try:
import importlib.util
except ImportError: # pragma: no cover
import imp as imp
importlib = None
# docs version lives in docs/source/conf.py
TOPDIR = os.path.dirname(__file__) + '/..'
SPHINX_CONF = TOPDIR + '/docs/source/conf.py'
if importlib:
spec = importlib.util.spec_from_file_location("sphinx_conf", SPHINX_CONF)
sphinx_conf = importlib.util.module_from_spec(spec)
sys.modules["sphinx_conf"] = sphinx_conf
spec.loader.exec_module(sphinx_conf)
else:
sphinx_conf = imp.load_source('sphinx_conf', SPHINX_CONF)
class TestDocsVersion(unittest.TestCase):
def get_spec(self):
return TOPDIR + '/koji.spec'
def get_koji_version(self):
spec = self.get_spec()
cmd = ['rpm', '-q', '--specfile', spec, '--qf', '%{version}\\n']
popen = subprocess.Popen(cmd, stdout=subprocess.PIPE)
output = popen.stdout.read()
# rpm outputs a line for each subpackage
version = output.splitlines()[0]
if six.PY3:
version = version.decode()
return version
def test_docs_version(self):
koji_version = self.get_koji_version()
self.assertEqual(koji_version, sphinx_conf.release)
# docs 'version' is x.y instead of x.y.z
dver = '.'.join(koji_version.split('.')[:-1])
self.assertEqual(dver, sphinx_conf.version)