51 lines
1.5 KiB
Python
51 lines
1.5 KiB
Python
|
|
import os
|
|
import subprocess
|
|
import glob
|
|
|
|
from unittest import TestCase
|
|
|
|
|
|
RPM_BUILD_DIR_ENV = "RPM_PATH"
|
|
ROOT_DIR_ENV = "ROOT_ANACONDA_PATH"
|
|
|
|
|
|
class RPMTestCase(TestCase):
|
|
|
|
def check_subprocess(self, cmd, cwd=None):
|
|
"""Call external command and verify return result.
|
|
|
|
:param cmd: list of parameters to specify command to run
|
|
:type cmd: list
|
|
:param cwd: path to directory where to run this command. If nothing specified it will
|
|
run command in actual directory.
|
|
:type cwd: str
|
|
"""
|
|
process_result = self.call_subprocess(cmd, cwd)
|
|
|
|
self.assertEqual(process_result.returncode, 0, msg="""
|
|
Bad return code when running:
|
|
{}""".format(cmd))
|
|
|
|
return process_result
|
|
|
|
def call_subprocess(self, cmd, cwd=None):
|
|
"""Call external command and return result."""
|
|
print("Running command \"{}\"".format(" ".join(cmd)))
|
|
# pylint: disable=subprocess-run-check
|
|
# ruff: noqa: PLW1510
|
|
return subprocess.run(cmd, stdout=subprocess.PIPE, cwd=cwd)
|
|
|
|
@property
|
|
def anaconda_root_path(self):
|
|
"""Root directory of tested anaconda from Makefile"""
|
|
return os.environ[ROOT_DIR_ENV]
|
|
|
|
@property
|
|
def rpm_paths(self):
|
|
"""Paths pointing to RPM files
|
|
|
|
This expects files in a place where `make rpms` or `make mock-rpms` will place them.
|
|
"""
|
|
rpm_path = os.environ[RPM_BUILD_DIR_ENV]
|
|
return glob.glob(rpm_path + os.path.sep + "*[0-9].rpm")
|