From f19af8f374179e58cf79f8f4f38b8a7ee74a306f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Hozza?= Date: Mon, 5 Aug 2024 15:47:57 +0200 Subject: [PATCH] test_depsolve.py: test error depsolving non-existing package MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Porting the latests osbuild version in `osbuild/images` revealed a regression in error messages returned by the tool in case a non-existent package is requested in the depsolve request. Test that requesting a non-existent package results in `MarkingErrors`, which was the original behavior of the DNF4-based `osbuild-depsolve-dnf`. Signed-off-by: Tomáš Hozza --- tools/test/test_depsolve.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/tools/test/test_depsolve.py b/tools/test/test_depsolve.py index 23040aa9..7b9a7e9a 100644 --- a/tools/test/test_depsolve.py +++ b/tools/test/test_depsolve.py @@ -2,6 +2,7 @@ import configparser import json import os import pathlib +import re import socket import subprocess as sp import sys @@ -170,6 +171,20 @@ test_cases = [ }, }, }, + # Test depsolving error due to non-existing package + { + "id": "error_non_existing_pkg", + "transactions": [ + { + "package-specs": [ + "non-existing-package", + ], + }, + ], + "error": True, + "error_kind": "MarkingErrors", + "error_reason_re": r".*non-existing-package.*", + }, ] @@ -260,6 +275,13 @@ def test_depsolve(tmp_path, repo_servers, dnf_config, detect_fn, test_case): for repo_configs, root_dir, opt_metadata in config_combos(tmp_path, repo_servers): with TemporaryDirectory() as cache_dir: res, exit_code = depsolve(transactions, repo_configs, root_dir, cache_dir, dnf_config, opt_metadata) + + if test_case.get("error", False): + assert exit_code != 0 + assert res["kind"] == test_case["error_kind"] + assert re.match(test_case["error_reason_re"], res["reason"], re.DOTALL) + continue + assert exit_code == 0 assert {pkg["name"] for pkg in res["packages"]} == test_case["results"]["packages"] assert res["repos"].keys() == test_case["results"]["reponames"]