test handling of command exec errors

This adds a test for common command exec errors when checking out
repositories. The test checks if the correct error is thrown
(CommandExecError) instead of failing silently or with an
unspecific exception.

Signed-off-by: Felix Moessbauer <felix.moessbauer@siemens.com>
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
This commit is contained in:
Felix Moessbauer 2023-05-08 10:17:41 +02:00 committed by Jan Kiszka
parent ac43730889
commit d2ecff4243
2 changed files with 17 additions and 0 deletions

View File

@ -26,7 +26,9 @@ import pathlib
import shutil import shutil
import json import json
import yaml import yaml
import pytest
from kas import kas from kas import kas
from kas.kasusererror import CommandExecError
def test_for_all_repos(changedir, tmpdir): def test_for_all_repos(changedir, tmpdir):
@ -61,6 +63,14 @@ def test_checkout(changedir, tmpdir):
assert not os.path.exists('build/sstate-cache') assert not os.path.exists('build/sstate-cache')
def test_invalid_checkout(changedir, tmpdir, capsys):
tdir = str(tmpdir / 'test_commands')
shutil.copytree('tests/test_commands', tdir)
os.chdir(tdir)
with pytest.raises(CommandExecError):
kas.kas(['checkout', 'test-invalid.yml'])
def test_checkout_create_refs(changedir, tmpdir): def test_checkout_create_refs(changedir, tmpdir):
tdir = str(tmpdir / 'test_commands') tdir = str(tmpdir / 'test_commands')
repo_cache = pathlib.Path(str(tmpdir.mkdir('repos'))) repo_cache = pathlib.Path(str(tmpdir.mkdir('repos')))

View File

@ -0,0 +1,7 @@
header:
version: 8
repos:
kas_invalid:
url: https://example.com/kas.git
refspec: this-ref-is-invalid