You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by or...@apache.org on 2010/03/18 01:37:49 UTC

svn commit: r924571 - in /incubator/libcloud/trunk/test: fixtures/softlayer/ fixtures/softlayer/v3_SoftLayer_Account_getVirtualGuests.xml secrets.py-dist test_softlayer.py

Author: oremj
Date: Thu Mar 18 00:37:49 2010
New Revision: 924571

URL: http://svn.apache.org/viewvc?rev=924571&view=rev
Log:
Softlayer testing.

Added:
    incubator/libcloud/trunk/test/fixtures/softlayer/
    incubator/libcloud/trunk/test/fixtures/softlayer/v3_SoftLayer_Account_getVirtualGuests.xml
    incubator/libcloud/trunk/test/test_softlayer.py
Modified:
    incubator/libcloud/trunk/test/secrets.py-dist

Added: incubator/libcloud/trunk/test/fixtures/softlayer/v3_SoftLayer_Account_getVirtualGuests.xml
URL: http://svn.apache.org/viewvc/incubator/libcloud/trunk/test/fixtures/softlayer/v3_SoftLayer_Account_getVirtualGuests.xml?rev=924571&view=auto
==============================================================================
--- incubator/libcloud/trunk/test/fixtures/softlayer/v3_SoftLayer_Account_getVirtualGuests.xml (added)
+++ incubator/libcloud/trunk/test/fixtures/softlayer/v3_SoftLayer_Account_getVirtualGuests.xml Thu Mar 18 00:37:49 2010
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="utf-8"?>
+<params>
+<param>
+ <value>
+  <array>
+   <data>
+    <value>
+     <struct>
+      <member>
+       <name>privateNetworkOnlyFlag</name>
+       <value>
+        <boolean>0</boolean>
+       </value>
+      </member>
+      <member>
+       <name>id</name>
+       <value>
+        <int>0</int>
+       </value>
+      </member>
+      <member>
+       <name>accountId</name>
+       <value>
+        <int>0</int>
+       </value>
+      </member>
+      <member>
+       <name>statusId</name>
+       <value>
+        <int>1001</int>
+       </value>
+      </member>
+      <member>
+       <name>uuid</name>
+       <value>
+        <string>ea11b502-8e2d-d8d0-1111-611111111111</string>
+       </value>
+      </member>
+      <member>
+       <name>hostname</name>
+       <value>
+        <string>test</string>
+       </value>
+      </member>
+      <member>
+       <name>domain</name>
+       <value>
+        <string>libcloud.org</string>
+       </value>
+      </member>
+      <member>
+       <name>maxCpu</name>
+       <value>
+        <int>2</int>
+       </value>
+      </member>
+      <member>
+       <name>maxCpuUnits</name>
+       <value>
+        <string>CORE</string>
+       </value>
+      </member>
+      <member>
+       <name>maxMemory</name>
+       <value>
+        <int>2048</int>
+       </value>
+      </member>
+      <member>
+       <name>startCpus</name>
+       <value>
+        <int>2</int>
+       </value>
+      </member>
+      <member>
+       <name>createDate</name>
+       <value>
+        <string>2009-09-04T14:49:45-05:00</string>
+       </value>
+      </member>
+      <member>
+       <name>modifyDate</name>
+       <value>
+        <string>2010-03-17T19:23:59-05:00</string>
+       </value>
+      </member>
+      <member>
+       <name>metricPollDate</name>
+       <value>
+        <string>2010-03-17T19:23:00-05:00</string>
+       </value>
+      </member>
+      <member>
+       <name>dedicatedAccountHostOnlyFlag</name>
+       <value>
+        <boolean>0</boolean>
+       </value>
+      </member>
+      <member>
+       <name>primaryIpAddress</name>
+       <value>
+        <string>62.233.333.333</string>
+       </value>
+      </member>
+      <member>
+       <name>primaryBackendIpAddress</name>
+       <value>
+        <string>10.20.172.130</string>
+       </value>
+      </member>
+     </struct>
+    </value>
+   </data>
+  </array>
+ </value>
+</param>
+</params>

Modified: incubator/libcloud/trunk/test/secrets.py-dist
URL: http://svn.apache.org/viewvc/incubator/libcloud/trunk/test/secrets.py-dist?rev=924571&r1=924570&r2=924571&view=diff
==============================================================================
--- incubator/libcloud/trunk/test/secrets.py-dist (original)
+++ incubator/libcloud/trunk/test/secrets.py-dist Thu Mar 18 00:37:49 2010
@@ -39,5 +39,8 @@ HOSTINGCOM_SECRET=''
 TERREMARK_USER=''
 TERREMARK_SECRET=''
 
+SOFTLAYER_USER=''
+SOFTLAYER_APIKEY=''
+
 VOXEL_KEY=''
 VOXEL_SECRET=''

Added: incubator/libcloud/trunk/test/test_softlayer.py
URL: http://svn.apache.org/viewvc/incubator/libcloud/trunk/test/test_softlayer.py?rev=924571&view=auto
==============================================================================
--- incubator/libcloud/trunk/test/test_softlayer.py (added)
+++ incubator/libcloud/trunk/test/test_softlayer.py Thu Mar 18 00:37:49 2010
@@ -0,0 +1,59 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# libcloud.org licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+import httplib
+import unittest
+from xml.etree import ElementTree as ET
+import xmlrpclib
+
+from libcloud.drivers.softlayer import SoftLayerProxy, SoftLayerNodeDriver as SoftLayer
+from libcloud.base import Node, NodeImage, NodeSize
+
+from test import MockHttp, TestCaseMixin
+from test.file_fixtures import FileFixtures
+
+from secrets import SOFTLAYER_USER, SOFTLAYER_APIKEY
+
+class MockSoftLayerTransport(xmlrpclib.Transport):
+    
+    def request(self, host, handler, request_body, verbose=0):
+        self.verbose = 0
+        method = ET.XML(request_body).find('methodName').text
+        mock = SoftLayerMockHttp(host, 80) 
+        mock.request('POST', "%s/%s" % (handler, method))
+        resp = mock.getresponse()
+
+        return self._parse_response(resp.body, None)
+
+class SoftLayerTests(unittest.TestCase):
+
+    def setUp(self):
+        SoftLayer.connectionCls.proxyCls.transportCls = MockSoftLayerTransport
+        self.driver = SoftLayer(SOFTLAYER_USER, SOFTLAYER_APIKEY)
+
+    def test_list_nodes(self):
+        node = self.driver.list_nodes()[0]
+        self.assertEqual(node.name, 'test')
+
+class SoftLayerMockHttp(MockHttp):
+    fixtures = FileFixtures('softlayer')
+
+    def _xmlrpc_v3_SoftLayer_Account_getVirtualGuests(self, method, url, body, headers):
+        body = self.fixtures.load('v3_SoftLayer_Account_getVirtualGuests.xml')
+        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
+
+if __name__ == '__main__':
+    sys.exit(unittest.main())