moto with boto3 - Невозможно построить макет ELB
Я новичок в мото и aws, поэтому я пытаюсь написать несколько простых тестовых примеров для простой проверки ELB в aws.
Я прочитал страницу с мотоциклом здесь:
https://github.com/spulec/moto
и я следую за руководством boto3 здесь:
https://boto3.readthedocs.io/en/latest/reference/services/elb.html
Но я не думаю, что понимаю, как использовать мото с boto3. Ниже мой код и ошибка, любая помощь будет принята с благодарностью.
# # -*- coding: utf-8 -*-
from .context import elb_tools
from nose.tools import set_trace;
import unittest
from moto.elb import mock_elb
import boto3
class TestElbTools(unittest.TestCase):
"""Basic test cases."""
def setUp(self):
pass
@mock_elb
def test_check_elb_has_attached_instances(self):
empty_elb = mock_elb
mock_elb.describe_load_balancers()
if __name__ == '__main__':
unittest.main()
выход:
D:\dev\git_repos\platform-health>nosetests
E
======================================================================
ERROR: test_check_elb_has_attached_instances (test_orphan_elb_finder.test_elb_tools.TestElbTools)
----------------------------------------------------------------------
Traceback (most recent call last):
File "d:\apps\python\python27\lib\site-packages\moto\core\models.py", line 71, in wrapper
result = func(*args, **kwargs)
File "D:\dev\git_repos\platform-health\tests\unit_tests\test_orphan_elb_finder\test_elb_tools.py", line 22, in test_check_elb_has_attached_instances
mock_elb.describe_load_balancers()
AttributeError: 'function' object has no attribute 'describe_load_balancers'
----------------------------------------------------------------------
Ran 1 test in 0.561s
FAILED (errors=1)
1 ответ
Итак, я получил помощь от друга. Ниже следует сделать трюк
# # -*- coding: utf-8 -*-
from .context import elb_tools
from nose.tools import set_trace;
import unittest
from moto.elb import mock_elb
import boto3
class TestElbTools(unittest.TestCase):
"""Basic test cases."""
def setUp(self):
#pass
self.region = 'ap-southeast-2'
@mock_elb
def test_check_elb_has_attached_instances(self):
elb_client = boto3.client('elb', region_name=self.region)
set_trace()
elb_client.describe_load_balancers()
if __name__ == '__main__':
unittest.main()