summaryrefslogtreecommitdiff
path: root/tests/integration_tests
AgeCommit message (Collapse)Author
2020-12-09integration_tests: add test for LP: #1898997 (#713)Daniel Watkins
integration_tests: add test for LP: #1898997 This introduces the `lxd_config_dict` mark, used to specify a free-form configuration dict to LXD for tests which only run there; and the `not_xenial` and `not_bionic` marks, used to skip tests on xenial/bionic via a basic release skipping mechanism. This also bumps the pycloudlib commit we depend upon, as the latest commit includes the changes required for LXD network config to work. (The `lxd_config_dict` change further complicated `_client`, so a minor refactoring is applied.)
2020-12-09Add integration test for power_state_change module (#717)James Falcon
Also introduce the `unstable` mark, to allow us to land tests which run inconsistently (such as this one).
2020-12-07Add upgrade integration test (#693)James Falcon
Add an integration test that roughly mimics many of the manual cloud SRU tests. Also refactored some of the image setup code to make it easier to use in non-fixture code.
2020-12-04Integration test for 570 (#712)James Falcon
Test that we can add optional vendor-data to the seedfrom file in a NoCloud environment. Also added the option to pass raise_on_cloudinit_failure through an instance restart so we get automatic failure checking when we need to manually reboot.
2020-12-04Add ability to keep snapshotted images in integration tests (#711)James Falcon
For SRU test development, every single time we start a new test run, we need to first install the PROPOSED version and create an image snapshot. Instead of automatically deleting a snapshot, add an integration setting to allow us to keep the snapshot. The end of the test run will log the image name which can then be used as the OS_IMAGE in subsequent test runs.
2020-12-03Integration test for pull #586 (#706)James Falcon
If a non-default AuthorizedKeysFile is specified in /etc/ssh/sshd_config, ensure we can still ssh as expected
2020-12-03integration_tests: introduce skipping of tests by OS (#702)Daniel Watkins
This introduces an optional, more complex OS_IMAGE format (`<image id>::<os>::<release>`) which allows the specification of the OS/OS release which the given image ID corresponds to. This information is used to skip tests which do not apply to the image. This commit is comprised of the following discrete changes: * introduce the IntegrationImage class, to handle parsing and storing the new OS_IMAGE format * support inferring the OS and OS release of Ubuntu series, so that we can continue to set OS_IMAGE to just a series name and have test skipping work * add documentation on Image Selection to integration_tests.rst * introduce the actual skipping behaviour based on OS marks * apply the `ubuntu` mark to all tests that should be skipped on non-Ubuntu operating systems
2020-12-03integration_tests: introduce IntegrationInstance.restart (#708)Daniel Watkins
This wraps pycloudlib's `BaseInstance.restart` and `BaseInstance.wait` to pass the same parameters as on launch, to avoid cloud-init failures on the _reboot_ raising an exception.
2020-12-02Add lxd-vm to list of valid integration test platforms (#705)James Falcon
2020-11-30Delete image snapshots created for integration tests (#682)James Falcon
Integration tests have been leaving behind snapshot images, so now we clean them up. Also, in testing, found that in Azure, deleting a resource group will automatically delete the instance, so if KEEP_INSTANCE is True, we no longer delete the resource group. Co-authored-by: Daniel Watkins <oddbloke@ubuntu.com>
2020-11-26Parametrize ssh_keys_provided integration test (#700)lucasmoura
2020-11-26Drop use_sudo attribute on IntegrationInstance (#694)lucasmoura
pycloudlib will stop running commands as root by default on LXD. To align with that change and make the behavior consistent with other clouds we support, our LXD instances will now run the commands with sudo by default.
2020-11-24Collect logs from integration test runs (#675)James Falcon
During teardown of every cloud instance, run 'cloud-init collect-logs', then transfer and unpack locally. Two new integration settings have been added to specify when to perform this action (ALWAYS, ON_ERROR, NEVER), and where to store these logs.
2020-11-23Ensure proper root permissions in integration tests (#664)James Falcon
Tests previously assumed that when executing commands and transferring files that user will have root permissions. This change updated integration testing infrastructure so that is true.
2020-11-23LXD VM support in integration tests (#678)James Falcon
2020-11-23Integration test for fallocate falling back to dd (#681)James Falcon
See #585
2020-11-20Support configuring SSH host certificates. (#660)Jonathan Lung
Existing config writes keys to /etc/ssh after deleting files matching a glob that includes certificate files. Since sshd looks for certificates in the same directory as the keys, a host certificate must be placed in this directory. This update enables the certificate's contents to be specified along with the keys. Co-authored-by: jonathan lung <lungj@heresjono.com> Co-authored-by: jonathan lung <jlung@kepler.space>
2020-11-20add integration test for LP: #1900837 (#679)Daniel Watkins
As the first test of this SRU cycle, this also introduces the sru_2020_11 mark to allow us to easily identify the set of tests generated for this SRU.
2020-11-19Make mount in place for tests work (#667)James Falcon
IMAGE_SOURCE = 'IN_PLACE' wasn't working previously. Replaced LXD launch with an init, then mount, then start.
2020-11-19integration_tests: restore emission of settings to log (#657)Daniel Watkins
2020-11-18only run a subset of integration tests in CI (#672)Daniel Watkins
This introduces the "ci" mark, used to indicate a test which should run as part of our CI integration testing run and the integration-tests-ci tox environment, which runs only those tests. Travis has been adjusted to use this tox environment. (All current module tests have been marked with the "ci" mark, but the one bug test that we have has not.)
2020-11-04Fix launch_kwargs bug in integration tests (#654)James Falcon
Integration test instance launch would previously fail if provided launch_kwargs is None
2020-11-02integration_tests: various launch improvements (#638)Daniel Watkins
* integration_tests: fix passing launch_kwargs to session_cloud.launch * integration_tests: log the launch_kwargs before launching instances * integration_tests: add support for specifying instance name for tests Co-authored-by: Rick Harding <rharding@mitechie.com>
2020-11-02test_lp1886531: don't assume /etc/fstab exists (#639)Daniel Watkins
As the bug manifested because groovy doesn't ship /etc/fstab, we should not assume that /etc/fstab will be present for us to remove in our bootcmd. Co-authored-by: Rick Harding <rharding@mitechie.com>
2020-10-26refactor integration testing infrastructure (#610)James Falcon
* Separated IntegrationClient into separate cloud and instance abstractions. This makes it easier to control the lifetime of the pycloudlib's cloud and instance abstractions separately. * Created new cloud-specific subclasses accordingly * Moved platform parsing and initialization code into its own file * Created new session-wide autorun fixture to automatically initialize and destroy the dynamic cloud
2020-10-19Add more integration tests (#615)lucasmoura
Translate the following tests from `cloud_tests` to the new integration test framework: * test_runcmd.py * seed_random_data.py * set_hostname.py * set_hostname_fqdn.py * snap.py * ssh_auth_key_fingerprints_disable.py * ssh_auth_key_fingerprints_enable.py * ssh_import_id.py * ssh_keys_generate.py * ssh_keys_provided.py * timezone.py * write_files.py
2020-10-16integration_tests: emit settings to log during setup (#601)Daniel Watkins
2020-10-16integration_tests: implement citest tests run in Travis (#605)Daniel Watkins
Specifically: * `apt_configure_sources_list` * `ntp_servers` * `set_password_list` * `users_groups` Although not currently run in Travis, `set_password_list_string` was ported over alongside `set_password_list` (as `test_set_password`).
2020-10-15Add Azure support to integration test framework (#604)James Falcon
2020-10-06integration_tests: don't error on cloud-init failure (#596)Daniel Watkins
pycloudlib's default behaviour is to raise an exception if cloud-init fails to run in an instance being launched. For cloud-init testing, we want our test assertions to flag up failures, so we disable this behaviour for instances we launch.
2020-10-06integration_tests: improve cloud-init.log assertions (#593)Daniel Watkins
2020-10-02add integration test for LP: #1886531 (#592)Daniel Watkins
2020-10-01Initial implementation of integration testing infrastructure (#581)James Falcon