diff options
author | Daniel Watkins <oddbloke@ubuntu.com> | 2021-03-18 16:29:15 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-18 15:29:15 -0500 |
commit | dae45c3b0d285cbc7b8b22128b5ed295e2c374f8 (patch) | |
tree | 171c7f550b5443612e7e95785274fc3ba3b4d4e3 /tests/integration_tests/conftest.py | |
parent | f35181fa970453ba6c7c14575b12185533391b97 (diff) | |
download | vyos-cloud-init-dae45c3b0d285cbc7b8b22128b5ed295e2c374f8.tar.gz vyos-cloud-init-dae45c3b0d285cbc7b8b22128b5ed295e2c374f8.zip |
integration_tests: bump pycloudlib dependency (#846)
The latest pycloudlib now launches official Ubuntu cloud images for
xenial, meaning that `lxc exec` no longer works against them. This
commit includes handling for tests which are affected by this change;
further details and reasoning in the included comment.
Diffstat (limited to 'tests/integration_tests/conftest.py')
-rw-r--r-- | tests/integration_tests/conftest.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/integration_tests/conftest.py b/tests/integration_tests/conftest.py index 0b93c94f..6f4ce8d3 100644 --- a/tests/integration_tests/conftest.py +++ b/tests/integration_tests/conftest.py @@ -45,6 +45,17 @@ os_list = ["ubuntu"] session_start_time = datetime.datetime.now().strftime('%y%m%d%H%M%S') +XENIAL_LXD_VM_EXEC_MSG = """\ +The default xenial images do not support `exec` for LXD VMs. + +Specify an image known to work using: + + OS_IMAGE=<image id>::ubuntu::xenial + +You can re-run specifically tests that require this by passing `-m +lxd_use_exec` to pytest. +""" + def pytest_runtest_setup(item): """Skip tests on unsupported clouds. @@ -216,6 +227,16 @@ def _client(request, fixture_utils, session_cloud: IntegrationCloud): if lxd_use_exec is not None: if not isinstance(session_cloud, _LxdIntegrationCloud): pytest.skip("lxd_use_exec requires LXD") + if isinstance(session_cloud, LxdVmCloud): + image_spec = ImageSpecification.from_os_image() + if image_spec.release == image_spec.image_id == "xenial": + # Why fail instead of skip? We expect that skipped tests will + # be run in a different one of our usual battery of test runs + # (e.g. LXD-only tests are skipped on EC2 but will run in our + # normal LXD test runs). This is not true of this test: it + # can't run in our usual xenial LXD VM test run, and it may not + # run anywhere else. A failure flags up this discrepancy. + pytest.fail(XENIAL_LXD_VM_EXEC_MSG) launch_kwargs["execute_via_ssh"] = False with session_cloud.launch( |