Coverage for test_ali_instance.py: 18%
51 statements
« prev ^ index » next coverage.py v7.6.12, created at 2025-03-13 18:15 +0800
« prev ^ index » next coverage.py v7.6.12, created at 2025-03-13 18:15 +0800
1# encoding: utf-8
2'''
3Created on 2025年3月7日
5@author: jingyu.wy
6'''
7import uuid
8import unittest
10from dotenv import load_dotenv
12from ansible_collections.alibaba.apsarastack.plugins.modules.ali_vpc import main as vpc_main
13from ansible_collections.alibaba.apsarastack.plugins.modules.ali_vswitch import main as vswtich_main
14from ansible_collections.alibaba.apsarastack.plugins.modules.ali_security_group import main as security_group_main
15from ansible_collections.alibaba.apsarastack.plugins.modules.ali_instance import main as instance_main
16from ansible_collections.alibaba.apsarastack.tests.test_utils import run_module, run_unittest_with_coverage
19class Test(unittest.TestCase):
21 def __init__(self, methodName:str="runTest") -> None:
22 unittest.TestCase.__init__(self, methodName=methodName)
23 self.name = "ansible_test_ecs_instance_info_%s" % uuid.uuid1()
24 self._vpc_args = {
25 "cidr_block": "172.16.0.0/16",
26 "vpc_name": self.name,
27 "description": "create by ansible unit test",
28 }
29 self._vswtich_args = {
30 "cidr_block": "172.16.1.0/24",
31 "name": self.name
32 }
33 self._security_group_args = {
34 "name": self.name
35 }
37 def setUp(self) -> None:
38 unittest.TestCase.setUp(self)
39 load_dotenv()
40 result = run_module(vpc_main, self._vpc_args)
41 self._vpc_args['id'] = result['vpc']['vpc_id']
42 self._vswtich_args["vpc_id"] = result['vpc']['vpc_id']
43 self._security_group_args["vpc_id"] = result['vpc']['vpc_id']
44 result = run_module(vswtich_main, self._vswtich_args)
45 self._vswtich_args["id"] = result['vswitch']['vswitch_id']
46 result = run_module(security_group_main, self._security_group_args)
47 self._security_group_args["id"] = result['group']["group_id"]
49 def tearDown(self) -> None:
50 unittest.TestCase.tearDown(self)
51 security_group = {
52 "state": "absent",
53 } | self._security_group_args
54 vswitch = {
55 "state": "absent",
56 } | self._vswtich_args
57 vpc_args = {
58 "state": "absent",
59 } | self._vpc_args
60 try:
61 run_module(security_group_main, security_group)
62 except:
63 pass
64 try:
65 run_module(vswtich_main, vswitch)
66 run_module(vpc_main, vpc_args)
67 except:
68 pass
71 def testCreateEcsInstance(self):
72 ecs_instance_args = {
73 "state": 'present',
74 "image": "ubuntu_18_04_x64_20G_alibase_20220322.vhd",
75 "instance_type": "ecs.s6-hg-k-c1m1.large",
76 "instance_name": "ld_test_0313",
77 "vswitch_id": self._vswtich_args["id"],
78 # "host_name": "ld_test_0313",
79 "password": "Ld123@123",
80 "count_tag": '{"test": "test"}',
81 "tags": {
82 "test": "test"
83 },
84 "count": 1,
85 # "count_tag": "test_0312",
86 "system_disk_name": "ansible_test_ecs_instance_test",
87 "system_disk_category": "cloud_ssd",
88 "system_disk_size": "20",
89 "instance_charge_type": "PrePaid",
90 "security_groups": [self._security_group_args["id"]]
91 }
92 result = run_module(instance_main, ecs_instance_args)
93 self.assertNotIn('failed', result)
94 self.assertEqual(result['changed'], False)
95 self.assertEqual(result['instances'][0]["instance_name"], ecs_instance_args["instance_name"])
97 ecs_instance_args = {
98 "state": "absent",
99 "instance_ids": [result['instances'][0]["id"]]
100 }
101 result = run_module(instance_main, ecs_instance_args)
102 self.assertNotIn('failed', result, result.get('msg', ''))
108if __name__ == "__main__":
109 # import sys;sys.argv = ['', 'Test.testCreateVpc']
110 run_unittest_with_coverage()