def test_authorize_security_group_failed(self):
		with mock.patch('requests.post', self.mockRequestsPostAuthorizeSecurityGroup):
			with mock.patch('niftycloud_fw.describe_security_group', self.mockDescribeSecurityGroup):
				with self.assertRaises(Exception) as cm:
					niftycloud_fw.authorize_security_group(
						self.mockModule,
						self.result['present'],
						self.security_group_info
					)
		self.assertEqual(cm.exception.message, 'failed')
	def test_authorize_security_group_success(self):
		changed_security_group_info = dict(
			copy.deepcopy(self.security_group_info),
			ip_permissions = list(
				self.security_group_info['ip_permissions'] + self.mockModule.params['ip_permissions'],
			)
		)
		mock_describe_security_group = mock.MagicMock(
			return_value=(
				self.result['present'],
				changed_security_group_info,
			))

		with mock.patch('requests.post', self.mockRequestsPostAuthorizeSecurityGroup):
			with mock.patch('niftycloud_fw.describe_security_group', mock_describe_security_group):
				(result, info) = niftycloud_fw.authorize_security_group(
					self.mockModule,
					self.result['present'],
					self.security_group_info
				)

		self.assertEqual(result, dict(
			created = False,
			changed_attributes = dict(
				number_of_authorize_rules = len(self.mockModule.params['ip_permissions']),
			),
			state = 'present',
		))
		self.assertEqual(info, changed_security_group_info)
	def test_authorize_security_group_request_failed(self):
		with mock.patch('requests.post', self.mockRequestsInternalServerError):
			with self.assertRaises(Exception) as cm:
				(result, info) = niftycloud_fw.authorize_security_group(
					self.mockModule,
					self.result['present'],
					self.security_group_info
				)
		self.assertEqual(cm.exception.message, 'failed')
	def test_authorize_security_group_absent(self):
		(result, info) = niftycloud_fw.authorize_security_group(
			self.mockModule,
			self.result['absent'],
			None
		)

		self.assertEqual(result, self.result['absent'])
		self.assertIsNone(info)
	def test_authorize_security_group_skip(self):
		changed_security_group_info = dict(
			copy.deepcopy(self.security_group_info),
			ip_permissions = self.mockModule.params['ip_permissions'],
		)

		(result, info) = niftycloud_fw.authorize_security_group(
			self.mockModule,
			self.result['present'],
			changed_security_group_info
		)

		self.assertEqual(result, self.result['present'])
		self.assertEqual(info, changed_security_group_info)