1# coding: utf-8 2 3#------------------------------------------------------------------------- 4# Copyright (c) Microsoft Corporation. All rights reserved. 5# Licensed under the MIT License. See License.txt in the project root for 6# license information. 7#-------------------------------------------------------------------------- 8 9 10import unittest 11 12import azure.mgmt.resource.resources.v2019_10_01 13 14from devtools_testutils import AzureMgmtTestCase, RandomNameResourceGroupPreparer 15 16from _aio_testcase import AzureMgmtAsyncTestCase 17 18 19class MgmtResourceAioTest(AzureMgmtAsyncTestCase): 20 21 def setUp(self): 22 super(MgmtResourceAioTest, self).setUp() 23 from azure.mgmt.resource.resources.aio import ResourceManagementClient 24 self.resource_client = self.create_mgmt_aio_client( 25 ResourceManagementClient 26 ) 27 28 @unittest.skip('hard to test') 29 def test_resource_groups(self): 30 group_name = "test_mgmt_resource_test_resource_groups457f1050" 31 # Create or update 32 params_create = azure.mgmt.resource.resources.v2019_10_01.models.ResourceGroup( 33 location=self.region, 34 tags={ 35 'tag1': 'value1', 36 }, 37 ) 38 result = self.event_loop.run_until_complete( 39 self.resource_client.resource_groups.create_or_update( 40 group_name, 41 params_create, 42 ) 43 ) 44 45 # Get 46 result_get = self.event_loop.run_until_complete( 47 self.resource_client.resource_groups.get(group_name) 48 ) 49 self.assertEqual(result_get.name, group_name) 50 self.assertEqual(result_get.tags['tag1'], 'value1') 51 52 # Check existence 53 result_check = self.event_loop.run_until_complete( 54 self.resource_client.resource_groups.check_existence( 55 group_name, 56 ) 57 ) 58 self.assertTrue(result_check) 59 60 result_check = self.event_loop.run_until_complete( 61 self.resource_client.resource_groups.check_existence( 62 'unknowngroup', 63 ) 64 ) 65 self.assertFalse(result_check) 66 67 # List 68 result_list = self.to_list( 69 self.resource_client.resource_groups.list() 70 ) 71 result_list = list(result_list) 72 self.assertGreater(len(result_list), 0) 73 74 result_list_top = self.resource_client.resource_groups.list(top=2) 75 76 # Patch 77 params_patch = azure.mgmt.resource.resources.v2019_10_01.models.ResourceGroupPatchable( 78 tags={ 79 'tag1': 'valueA', 80 'tag2': 'valueB', 81 }, 82 ) 83 result_patch = self.event_loop.run_until_complete( 84 self.resource_client.resource_groups.update( 85 group_name, 86 params_patch, 87 ) 88 ) 89 self.assertEqual(result_patch.tags['tag1'], 'valueA') 90 self.assertEqual(result_patch.tags['tag2'], 'valueB') 91 92 # List resources 93 resources = self.to_list( 94 self.resource_client.resources.list_by_resource_group( 95 group_name 96 ) 97 ) 98 99 resources = list(resources) 100 101 # Export template 102 BODY = { 103 'resources': ['*'] 104 } 105 result = self.event_loop.run_until_complete( 106 self.resource_client.resource_groups.begin_export_template( 107 group_name, 108 BODY 109 ) 110 ) 111 template = self.event_loop.run_until_complete( 112 result.result() 113 ) 114 # self.assertTrue(hasattr(template, 'template')) 115 116 # Delete 117 result = self.event_loop.run_until_complete( 118 self.resource_client.resource_groups.begin_delete(group_name) 119 ) 120 self.event_loop.run_until_complete( 121 result.result() 122 ) 123