Migrate Scaleway tests to integration tests

This commit is contained in:
Rémy Léone 2019-04-01 10:54:34 +02:00 committed by Matt Clay
parent 5215d00462
commit 16c4df439a
58 changed files with 112 additions and 27 deletions

4
.github/BOTMETA.yml vendored
View file

@ -1368,6 +1368,7 @@ files:
test/integration/targets/nxos_: *nxos
test/integration/targets/openssl: *crypto
test/integration/targets/postgresql: *postgresql
test/integration/targets/scaleway_: *scaleway
test/integration/targets/setup_acme: *crypto
test/integration/targets/setup_docker: *docker
test/integration/targets/setup_openssl: *crypto
@ -1378,9 +1379,6 @@ files:
test/integration/targets/vultr: *vultr
test/legacy/:
notified: mattclay
test/legacy/scaleway:
<<: *scaleway
support: community
test/runner/:
notified: mattclay
test/runner/lib/cloud/acme.py: *crypto

View file

@ -0,0 +1,13 @@
# This is the configuration template for ansible-test Scaleway integration tests.
#
# You do not need this template if you are:
#
# 1) Running integration tests without using ansible-test.
#
# If you want to test against the Vultr public API,
# fill in the values below and save this file without the .template extension.
# This will cause ansible-test to use the given configuration.
[default]
key = @KEY
org = @ORG

View file

@ -0,0 +1,2 @@
cloud/scaleway
unsupported

View file

@ -0,0 +1,2 @@
cloud/scaleway
unsupported

View file

@ -0,0 +1,2 @@
cloud/scaleway
unsupported

View file

@ -0,0 +1,2 @@
cloud/scaleway
unsupported

View file

@ -0,0 +1,2 @@
cloud/scaleway
unsupported

View file

@ -0,0 +1,2 @@
cloud/scaleway
unsupported

View file

@ -0,0 +1,2 @@
cloud/scaleway
unsupported

View file

@ -0,0 +1,2 @@
cloud/scaleway
unsupported

View file

@ -0,0 +1,2 @@
cloud/scaleway
unsupported

View file

@ -0,0 +1,2 @@
cloud/scaleway
unsupported

View file

@ -0,0 +1,2 @@
cloud/scaleway
unsupported

View file

@ -0,0 +1,2 @@
cloud/scaleway
unsupported

View file

@ -0,0 +1,2 @@
cloud/scaleway
unsupported

View file

@ -0,0 +1,2 @@
cloud/scaleway
unsupported

View file

@ -0,0 +1,2 @@
cloud/scaleway
unsupported

View file

@ -0,0 +1,2 @@
cloud/scaleway
unsupported

View file

@ -1,24 +0,0 @@
---
- hosts: localhost
gather_facts: no
connection: local
vars:
scw_org: "{{ lookup('env', 'SCW_ORG') }}"
roles:
- { role: scaleway_compute, tags: test_scaleway_compute }
- { role: scaleway_image_facts, tags: test_scaleway_image_facts }
- { role: scaleway_ip, tags: test_scaleway_ip }
- { role: scaleway_ip_facts, tags: test_scaleway_ip_facts }
- { role: scaleway_lb, tags: test_scaleway_lb }
- { role: scaleway_organization_facts, tags: test_scaleway_organization_facts }
- { role: scaleway_s3, tags: test_scaleway_s3 }
- { role: scaleway_security_group_facts, tags: test_scaleway_security_group_facts }
- { role: scaleway_server_facts, tags: test_scaleway_server_facts }
- { role: scaleway_snapshot_facts, tags: test_scaleway_snapshot_facts }
- { role: scaleway_ssh, tags: test_scaleway_ssh }
- { role: scaleway_user_data, tags: test_scaleway_user_data }
- { role: scaleway_volume, tags: test_scaleway_volume }
- { role: scaleway_volume_facts, tags: test_scaleway_volume_facts }
- { role: scaleway_security_group, tags: test_scaleway_security_group }
- { role: scaleway_security_group_rule, tags: test_scaleway_security_group_rule }

View file

@ -0,0 +1,66 @@
"""Scaleway plugin for integration tests."""
from __future__ import absolute_import, print_function
import os
from lib.cloud import (
CloudProvider,
CloudEnvironment,
CloudEnvironmentConfig,
)
from lib.util import ConfigParser
class ScalewayCloudProvider(CloudProvider):
"""Checks if a configuration file has been passed or fixtures are going to be used for testing"""
def __init__(self, args):
"""
:type args: TestConfig
"""
super(ScalewayCloudProvider, self).__init__(args)
def filter(self, targets, exclude):
"""Filter out the cloud tests when the necessary config and resources are not available.
:type targets: tuple[TestTarget]
:type exclude: list[str]
"""
if os.path.isfile(self.config_static_path):
return
super(ScalewayCloudProvider, self).filter(targets, exclude)
def setup(self):
"""Setup the cloud resource before delegation and register a cleanup callback."""
super(ScalewayCloudProvider, self).setup()
if os.path.isfile(self.config_static_path):
self.config_path = self.config_static_path
self.managed = False
class ScalewayCloudEnvironment(CloudEnvironment):
"""
Updates integration test environment after delegation. Will setup the config file as parameter.
"""
def get_environment_config(self):
"""
:rtype: CloudEnvironmentConfig
"""
parser = ConfigParser()
parser.read(self.config_path)
env_vars = dict(
SCW_API_KEY=parser.get('default', 'key'),
SCW_ORG=parser.get('default', 'org')
)
ansible_vars = dict(
scw_org=parser.get('default', 'org'),
)
return CloudEnvironmentConfig(
env_vars=env_vars,
ansible_vars=ansible_vars,
)