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

1# encoding: utf-8 

2''' 

3Created on 2025年3月7日 

4 

5@author: jingyu.wy 

6''' 

7import uuid 

8import unittest 

9 

10from dotenv import load_dotenv 

11 

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 

17 

18 

19class Test(unittest.TestCase): 

20 

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 } 

36 

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"] 

48 

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 

69 

70 

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"]) 

96 

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', '')) 

103 

104 

105 

106 

107 

108if __name__ == "__main__": 

109 # import sys;sys.argv = ['', 'Test.testCreateVpc'] 

110 run_unittest_with_coverage()