diff options
Diffstat (limited to 'tests/integration_tests')
| -rw-r--r-- | tests/integration_tests/bugs/test_lp1813396.py | 34 | ||||
| -rw-r--r-- | tests/integration_tests/log_utils.py | 12 | ||||
| -rw-r--r-- | tests/integration_tests/modules/test_power_state_change.py | 5 | 
3 files changed, 41 insertions, 10 deletions
| diff --git a/tests/integration_tests/bugs/test_lp1813396.py b/tests/integration_tests/bugs/test_lp1813396.py new file mode 100644 index 00000000..7ad0e809 --- /dev/null +++ b/tests/integration_tests/bugs/test_lp1813396.py @@ -0,0 +1,34 @@ +"""Integration test for lp-1813396 + +Ensure gpg is called with no tty flag. +""" + +import pytest + +from tests.integration_tests.instances import IntegrationInstance +from tests.integration_tests.log_utils import verify_ordered_items_in_text + + +USER_DATA = """\ +#cloud-config +apt: +  sources: +    cloudinit: +      source: 'deb [arch=amd64] http://ppa.launchpad.net/cloud-init-dev/daily/ubuntu focal main' +      keyserver: keyserver.ubuntu.com +      keyid: E4D304DF +"""  # noqa: E501 + + +@pytest.mark.sru_2020_11 +@pytest.mark.user_data(USER_DATA) +def test_gpg_no_tty(client: IntegrationInstance): +    log = client.read_from_file('/var/log/cloud-init.log') +    to_verify = [ +        "Running command ['gpg', '--no-tty', " +        "'--keyserver=keyserver.ubuntu.com', '--recv-keys', 'E4D304DF'] " +        "with allowed return codes [0] (shell=False, capture=True)", +        "Imported key 'E4D304DF' from keyserver 'keyserver.ubuntu.com'", +        "finish: modules-config/config-apt-configure: SUCCESS", +    ] +    verify_ordered_items_in_text(to_verify, log) diff --git a/tests/integration_tests/log_utils.py b/tests/integration_tests/log_utils.py index fa807389..40baae7b 100644 --- a/tests/integration_tests/log_utils.py +++ b/tests/integration_tests/log_utils.py @@ -1,13 +1,11 @@ -def ordered_items_in_text(to_verify: list, text: str) -> bool: -    """Return if all items in list appear in order in text. +def verify_ordered_items_in_text(to_verify: list, text: str): +    """Assert all items in list appear in order in text.      Examples: -      ordered_items_in_text(['a', '1'], 'ab1')  # Returns True -      ordered_items_in_text(['1', 'a'], 'ab1')  # Returns False +      verify_ordered_items_in_text(['a', '1'], 'ab1')  # passes +      verify_ordered_items_in_text(['1', 'a'], 'ab1')  # raises AssertionError      """      index = 0      for item in to_verify:          index = text[index:].find(item) -        if index < 0: -            return False -    return True +        assert index > -1, "Expected item not found: '{}'".format(item) diff --git a/tests/integration_tests/modules/test_power_state_change.py b/tests/integration_tests/modules/test_power_state_change.py index 60e0e583..844dccfa 100644 --- a/tests/integration_tests/modules/test_power_state_change.py +++ b/tests/integration_tests/modules/test_power_state_change.py @@ -9,7 +9,7 @@ import pytest  from tests.integration_tests.clouds import IntegrationCloud  from tests.integration_tests.instances import IntegrationInstance -from tests.integration_tests.log_utils import ordered_items_in_text +from tests.integration_tests.log_utils import verify_ordered_items_in_text  USER_DATA = """\  #cloud-config @@ -80,8 +80,7 @@ class TestPowerChange:              "running 'init-local'",              'config-power-state-change already ran',          ] -        assert ordered_items_in_text(lines_to_check, log), ( -            'Expected data not in logs') +        verify_ordered_items_in_text(lines_to_check, log)      @pytest.mark.user_data(USER_DATA.format(delay='0', mode='poweroff',                                              timeout='0', condition='false')) | 
