"""Unit tests: query_distro""" import pytest @pytest.mark.parametrize( 'condition', ['lsb_release', 'os-release', 'os-release-quotes', 'missing']) def test_query_distro(runner, yadm, tst_distro, tmp_path, condition): """Match lsb_release -si when present""" test_release = 'testrelease' lsb_release = '' os_release = tmp_path.joinpath('os-release') if 'os-release' in condition: quotes = '"' if 'quotes' in condition else '' os_release.write_text( f"testing\nID={quotes}{test_release}{quotes}\nrelease") if condition != 'lsb_release': lsb_release = 'LSB_RELEASE_PROGRAM="missing_lsb_release"' script = f""" YADM_TEST=1 source {yadm} {lsb_release} OS_RELEASE="{os_release}" query_distro """ run = runner(command=['bash'], inp=script) assert run.success assert run.err == '' if condition == 'lsb_release': assert run.out.rstrip() == tst_distro elif 'os-release' in condition: assert run.out.rstrip() == test_release else: assert run.out.rstrip() == ''