You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by to...@apache.org on 2020/02/16 20:42:43 UTC

[libcloud] 02/03: Add tests for ex_userdata argument.

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 <to...@tomaz.me>
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')