This is an automated email from the ASF dual-hosted git repository. tomaz pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/libcloud.git
commit 5593d6cd0c06d1bb0416d157a89a956ba249092d Author: Tomaz Muraus <[email protected]> AuthorDate: Sun Feb 16 21:38:30 2020 +0100 Add tests for ex_userdata argument. --- libcloud/test/compute/test_ec2.py | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/libcloud/test/compute/test_ec2.py b/libcloud/test/compute/test_ec2.py index c74a50a..7bcfe5b 100644 --- a/libcloud/test/compute/test_ec2.py +++ b/libcloud/test/compute/test_ec2.py @@ -19,10 +19,13 @@ from collections import OrderedDict import os import sys +import base64 from datetime import datetime from libcloud.utils.iso8601 import UTC from libcloud.utils.py3 import httplib +from libcloud.utils.py3 import parse_qs +from libcloud.utils.py3 import b from libcloud.compute.drivers.ec2 import EC2NodeDriver from libcloud.compute.drivers.ec2 import EC2PlacementGroup @@ -1373,7 +1376,7 @@ class EC2SAEastTests(EC2Tests): region = 'sa-east-1' -class EC2MockHttp(MockHttp): +class EC2MockHttp(MockHttp, unittest.TestCase): fixtures = ComputeFileFixtures('ec2') def _DescribeInstances(self, method, url, body, headers): @@ -1440,6 +1443,17 @@ class EC2MockHttp(MockHttp): body = self.fixtures.load('run_instances.xml') return (httplib.OK, body, {}, httplib.responses[httplib.OK]) + def _ex_user_data_RunInstances(self, method, url, body, headers): + # test_create_node_with_ex_userdata + params = parse_qs(url) + + self.assertTrue('UserData' in params) + user_data = base64.b64decode(b(params['UserData'][0])).decode('utf-8') + self.assertEqual(user_data, 'foo\nbar\foo') + + body = self.fixtures.load('run_instances.xml') + return (httplib.OK, body, {}, httplib.responses[httplib.OK]) + def _create_ex_assign_public_ip_RunInstances(self, method, url, body, headers): self.assertUrlContainsQueryParams(url, { 'NetworkInterface.1.AssociatePublicIpAddress': "true", @@ -2022,6 +2036,18 @@ class OutscaleTests(EC2Tests): image=image, size=size, ex_iamprofile='foo') + def test_create_node_with_ex_userdata(self): + EC2MockHttp.type = 'ex_user_data' + + image = NodeImage(id='ami-be3adfd7', + name=self.image_name, + driver=self.driver) + size = NodeSize('m1.small', 'Small Instance', None, None, None, None, + driver=self.driver) + + result = self.driver.create_node(name='foo', image=image, size=size, + ex_userdata='foo\nbar\foo') + class FCUMockHttp(EC2MockHttp): fixtures = ComputeFileFixtures('fcu')
