mirror of
https://github.com/valitydev/salt.git
synced 2024-11-08 09:23:56 +00:00
033f34ee21
These failures were recently introduced but went undiscovered due to some recent instability in the test suite (which has now been fixed). This commit fixes these failing tests.
133 lines
4.5 KiB
Python
133 lines
4.5 KiB
Python
|
|
# -*- coding: utf-8 -*-
|
|
|
|
# import Python Libs
|
|
from __future__ import absolute_import, print_function, unicode_literals
|
|
import logging
|
|
import pkg_resources
|
|
import os.path
|
|
|
|
# Import Salt Libs
|
|
import salt.config
|
|
from salt.ext import six
|
|
import salt.loader
|
|
import salt.modules.boto_route53 as boto_route53
|
|
import salt.utils.versions
|
|
|
|
# Import Salt Testing Libs
|
|
from tests.support.mixins import LoaderModuleMockMixin
|
|
from tests.support.unit import skipIf, TestCase
|
|
from tests.support.mock import NO_MOCK, NO_MOCK_REASON
|
|
from tests.support.paths import TESTS_DIR
|
|
|
|
# import Python Third Party Libs
|
|
# pylint: disable=import-error
|
|
try:
|
|
import boto
|
|
boto.ENDPOINTS_PATH = os.path.join(TESTS_DIR, 'unit/files/endpoints.json')
|
|
from moto import mock_route53_deprecated
|
|
HAS_MOTO = True
|
|
except ImportError:
|
|
HAS_MOTO = False
|
|
|
|
def mock_route53_deprecated(self):
|
|
'''
|
|
if the mock_route53_deprecated function is not available due to import failure
|
|
this replaces the decorated function with stub_function.
|
|
Allows boto_route53 unit tests to use the @mock_route53_deprecated decorator
|
|
without a "NameError: name 'mock_route53_deprecated' is not defined" error.
|
|
'''
|
|
def stub_function(self):
|
|
pass
|
|
return stub_function
|
|
# pylint: enable=import-error
|
|
|
|
log = logging.getLogger(__name__)
|
|
|
|
required_moto = '0.3.7'
|
|
required_moto_py3 = '1.0.1'
|
|
|
|
|
|
def _has_required_moto():
|
|
'''
|
|
Returns True or False depending on if ``moto`` is installed and at the correct version,
|
|
depending on what version of Python is running these tests.
|
|
'''
|
|
if not HAS_MOTO:
|
|
return False
|
|
else:
|
|
moto_version = salt.utils.versions.LooseVersion(pkg_resources.get_distribution('moto').version)
|
|
if moto_version < salt.utils.versions.LooseVersion(required_moto):
|
|
return False
|
|
elif six.PY3 and moto_version < salt.utils.versions.LooseVersion(required_moto_py3):
|
|
return False
|
|
|
|
return True
|
|
|
|
|
|
@skipIf(NO_MOCK, NO_MOCK_REASON)
|
|
@skipIf(HAS_MOTO is False, 'The moto module must be installed.')
|
|
@skipIf(_has_required_moto() is False, 'The moto module must be >= to {0} for '
|
|
'PY2 or {1} for PY3.'.format(required_moto, required_moto_py3))
|
|
class BotoRoute53TestCase(TestCase, LoaderModuleMockMixin):
|
|
'''
|
|
TestCase for salt.modules.boto_route53 module
|
|
'''
|
|
def setup_loader_modules(self):
|
|
self.opts = salt.config.DEFAULT_MINION_OPTS
|
|
self.opts['route53.keyid'] = 'GKTADJGHEIQSXMKKRBJ08H'
|
|
self.opts['route53.key'] = 'askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs'
|
|
utils = salt.loader.utils(self.opts)
|
|
funcs = salt.loader.minion_mods(self.opts, utils=utils, whitelist=['boto_route53', 'config'])
|
|
return {
|
|
boto_route53: {
|
|
'__opts__': self.opts,
|
|
'__utils__': utils,
|
|
'__salt__': funcs
|
|
},
|
|
}
|
|
|
|
def setUp(self):
|
|
TestCase.setUp(self)
|
|
# __virtual__ must be caller in order for _get_conn to be injected
|
|
boto_route53.__virtual__()
|
|
boto_route53.__init__(self.opts)
|
|
|
|
def tearDown(self):
|
|
del self.opts
|
|
|
|
@mock_route53_deprecated
|
|
def test_create_healthcheck(self):
|
|
'''
|
|
tests that given a valid instance id and valid ELB that
|
|
register_instances returns True.
|
|
'''
|
|
expected = {
|
|
'result': {
|
|
'CreateHealthCheckResponse': {
|
|
'HealthCheck': {
|
|
'HealthCheckConfig': {
|
|
'FailureThreshold': '3',
|
|
'IPAddress': '10.0.0.1',
|
|
'ResourcePath': '/',
|
|
'RequestInterval': '30',
|
|
'Type': 'HTTPS',
|
|
'Port': '443',
|
|
'FullyQualifiedDomainName': 'blog.saltstack.furniture',
|
|
},
|
|
'HealthCheckVersion': '1',
|
|
},
|
|
},
|
|
},
|
|
}
|
|
healthcheck = boto_route53.create_healthcheck(
|
|
'10.0.0.1',
|
|
fqdn='blog.saltstack.furniture',
|
|
hc_type='HTTPS',
|
|
port=443,
|
|
resource_path='/',
|
|
)
|
|
del healthcheck['result']['CreateHealthCheckResponse']['HealthCheck']['CallerReference']
|
|
del healthcheck['result']['CreateHealthCheckResponse']['HealthCheck']['Id']
|
|
self.assertEqual(healthcheck, expected)
|