# -*- coding: utf-8 -*- ''' :codeauthor: :email:`Amel Ajdinovic ` ''' # Import Python Libs from __future__ import absolute_import, print_function, unicode_literals # Import Salt Testing Libs from tests.integration.cloud.helpers.cloud_test_base import CloudTest, TIMEOUT from tests.support.unit import skipIf # Import Third-Party Libs try: from oneandone.client import OneAndOneService # pylint: disable=unused-import HAS_ONEANDONE = True except ImportError: HAS_ONEANDONE = False @skipIf(HAS_ONEANDONE is False, 'salt-cloud requires >= 1and1 1.2.0') class OneAndOneTest(CloudTest): ''' Integration tests for the 1and1 cloud provider ''' PROVIDER = 'oneandone' REQUIRED_PROVIDER_CONFIG_ITEMS = ('api_token',) def test_list_images(self): ''' Tests the return of running the --list-images command for 1and1 ''' image_list = self.run_cloud('--list-images {0}'.format(self.PROVIDER_NAME)) self.assertIn( 'coreOSimage', [i.strip() for i in image_list] ) def test_instance(self): ''' Test creating an instance on 1and1 ''' # check if instance with salt installed returned ret_str = self.run_cloud('-p oneandone-test {0}'.format(self.instance_name), timeout=TIMEOUT) self.assertInstanceExists(ret_str) self.assertDestroyInstance()