You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by an...@apache.org on 2017/04/13 09:33:45 UTC

[39/46] libcloud git commit: introduce chinese utf8 charset back into ecs driver. add tests to file fixtures to make sure things dont get mangled

introduce chinese utf8 charset back into ecs driver. add tests to file fixtures to make sure things dont get mangled


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/18bc55de
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/18bc55de
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/18bc55de

Branch: refs/heads/trunk
Commit: 18bc55de9b667ed6b5f2bdedd3daa27e66c9560b
Parents: f533aa6
Author: Anthony Shaw <an...@apache.org>
Authored: Thu Apr 13 14:07:21 2017 +1000
Committer: Anthony Shaw <an...@apache.org>
Committed: Thu Apr 13 14:07:21 2017 +1000

----------------------------------------------------------------------
 .../compute/fixtures/ecs/describe_images.xml    |  2 +-
 .../compute/fixtures/ecs/describe_regions.xml   | 20 ++++----
 .../compute/fixtures/ecs/describe_zones.xml     |  4 +-
 .../fixtures/ecs/pages_describe_images.xml      |  4 +-
 .../ecs/pages_describe_images_page2.xml         |  2 +-
 .../test/compute/fixtures/meta/unicode.json     |  1 +
 libcloud/test/compute/fixtures/meta/unicode.xml |  2 +
 libcloud/test/compute/test_ecs.py               |  3 +-
 libcloud/test/test_file_fixtures.py             | 48 +++++++++++++++++++-
 9 files changed, 68 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/18bc55de/libcloud/test/compute/fixtures/ecs/describe_images.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/ecs/describe_images.xml b/libcloud/test/compute/fixtures/ecs/describe_images.xml
index afc3836..80b1a31 100644
--- a/libcloud/test/compute/fixtures/ecs/describe_images.xml
+++ b/libcloud/test/compute/fixtures/ecs/describe_images.xml
@@ -12,7 +12,7 @@
 			<ProductCode></ProductCode>
 			<OSType>linux</OSType>
 			<Architecture>x86_64</Architecture>
-			<OSName>FreeBSD  10.1 64</OSName>
+			<OSName>FreeBSD  10.1 64\u4f4d</OSName>
 			<DiskDeviceMappings>
 				<DiskDeviceMapping>
 					<ImportOSSObject></ImportOSSObject>

http://git-wip-us.apache.org/repos/asf/libcloud/blob/18bc55de/libcloud/test/compute/fixtures/ecs/describe_regions.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/ecs/describe_regions.xml b/libcloud/test/compute/fixtures/ecs/describe_regions.xml
index 7b0fbd5..d77729d 100644
--- a/libcloud/test/compute/fixtures/ecs/describe_regions.xml
+++ b/libcloud/test/compute/fixtures/ecs/describe_regions.xml
@@ -4,39 +4,39 @@
 	<Regions>
 		<Region>
 			<RegionId>ap-southeast-1</RegionId>
-			<LocalName></LocalName>
+			<LocalName>\u4e9a\u592a\uff08\u65b0\u52a0\u5761\uff09</LocalName>
 		</Region>
 		<Region>
 			<RegionId>cn-shenzhen</RegionId>
-			<LocalName></LocalName>
+			<LocalName>\u6df1\u5733</LocalName>
 		</Region>
 		<Region>
 			<RegionId>cn-qingdao</RegionId>
-			<LocalName></LocalName>
+			<LocalName>\u9752\u5c9b</LocalName>
 		</Region>
 		<Region>
 			<RegionId>cn-beijing</RegionId>
-			<LocalName></LocalName>
+			<LocalName>\u5317\u4eac</LocalName>
 		</Region>
 		<Region>
 			<RegionId>cn-shanghai</RegionId>
-			<LocalName></LocalName>
+			<LocalName>\u4e0a\u6d77</LocalName>
 		</Region>
 		<Region>
 			<RegionId>us-east-1</RegionId>
-			<LocalName></LocalName>
+			<LocalName>\u7f8e\u4e1c\u5f17\u5409\u5c3c\u4e9a</LocalName>
 		</Region>
 		<Region>
 			<RegionId>cn-hongkong</RegionId>
-			<LocalName></LocalName>
+			<LocalName>\u9999\u6e2f</LocalName>
 		</Region>
 		<Region>
 			<RegionId>cn-hangzhou</RegionId>
-			<LocalName></LocalName>
+			<LocalName>\u676d\u5dde</LocalName>
 		</Region>
 		<Region>
 			<RegionId>us-west-1</RegionId>
-			<LocalName></LocalName>
+			<LocalName>\u7f8e\u56fd\u7845\u8c37</LocalName>
 		</Region>
 	</Regions>
-</DescribeRegionsResponse>
+</DescribeRegionsResponse>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/18bc55de/libcloud/test/compute/fixtures/ecs/describe_zones.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/ecs/describe_zones.xml b/libcloud/test/compute/fixtures/ecs/describe_zones.xml
index a953553..29be7f0 100644
--- a/libcloud/test/compute/fixtures/ecs/describe_zones.xml
+++ b/libcloud/test/compute/fixtures/ecs/describe_zones.xml
@@ -31,7 +31,7 @@
 				<InstanceTypes>ecs.s1.medium</InstanceTypes>
 			</AvailableInstanceTypes>
 			<ZoneId>cn-qingdao-b</ZoneId>
-			<LocalName>B</LocalName>
+			<LocalName>\u9752\u5c9b\u53ef\u7528\u533aB</LocalName>
 			<AvailableDiskCategories>
 				<DiskCategories>cloud_ssd</DiskCategories>
 				<DiskCategories>ephemeral</DiskCategories>
@@ -39,4 +39,4 @@
 			</AvailableDiskCategories>
 		</Zone>
 	</Zones>
-</DescribeZonesResponse>
+</DescribeZonesResponse>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/18bc55de/libcloud/test/compute/fixtures/ecs/pages_describe_images.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/ecs/pages_describe_images.xml b/libcloud/test/compute/fixtures/ecs/pages_describe_images.xml
index 25f9cc3..0190f87 100644
--- a/libcloud/test/compute/fixtures/ecs/pages_describe_images.xml
+++ b/libcloud/test/compute/fixtures/ecs/pages_describe_images.xml
@@ -12,7 +12,7 @@
 			<ProductCode></ProductCode>
 			<OSType>linux</OSType>
 			<Architecture>x86_64</Architecture>
-			<OSName>FreeBSD  10.1 64</OSName>
+			<OSName>FreeBSD  10.1 64\u4f4d</OSName>
 			<DiskDeviceMappings>
 				<DiskDeviceMapping>
 					<ImportOSSObject></ImportOSSObject>
@@ -38,4 +38,4 @@
 			<Size>20</Size>
 		</Image>
 	</Images>
-</DescribeImagesResponse>
+</DescribeImagesResponse>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/18bc55de/libcloud/test/compute/fixtures/ecs/pages_describe_images_page2.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/ecs/pages_describe_images_page2.xml b/libcloud/test/compute/fixtures/ecs/pages_describe_images_page2.xml
index 0208118..615e152 100644
--- a/libcloud/test/compute/fixtures/ecs/pages_describe_images_page2.xml
+++ b/libcloud/test/compute/fixtures/ecs/pages_describe_images_page2.xml
@@ -12,7 +12,7 @@
 			<ProductCode></ProductCode>
 			<OSType>linux</OSType>
 			<Architecture>x86_64</Architecture>
-			<OSName>FreeBSD  10.1 64</OSName>
+			<OSName>FreeBSD  10.1 64\u4f4d</OSName>
 			<DiskDeviceMappings>
 				<DiskDeviceMapping>
 					<ImportOSSObject></ImportOSSObject>

http://git-wip-us.apache.org/repos/asf/libcloud/blob/18bc55de/libcloud/test/compute/fixtures/meta/unicode.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/meta/unicode.json b/libcloud/test/compute/fixtures/meta/unicode.json
new file mode 100644
index 0000000..85ed265
--- /dev/null
+++ b/libcloud/test/compute/fixtures/meta/unicode.json
@@ -0,0 +1 @@
+{"test": "\u015a"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/18bc55de/libcloud/test/compute/fixtures/meta/unicode.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/meta/unicode.xml b/libcloud/test/compute/fixtures/meta/unicode.xml
new file mode 100644
index 0000000..0727063
--- /dev/null
+++ b/libcloud/test/compute/fixtures/meta/unicode.xml
@@ -0,0 +1,2 @@
+<?xml version='1.0'?>
+<Test>\u015a</Test>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/18bc55de/libcloud/test/compute/test_ecs.py
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/test_ecs.py b/libcloud/test/compute/test_ecs.py
index cbd45fe..348d24b 100644
--- a/libcloud/test/compute/test_ecs.py
+++ b/libcloud/test/compute/test_ecs.py
@@ -427,7 +427,7 @@ class ECSDriverTestCase(LibcloudTestCase):
             'description': 'freebsd1001_64_20G_aliaegis_20150527.vhd',
             'size': 20,
             'image_owner_alias': 'system',
-            'os_name': 'FreeBSD  10.1 64',
+            'os_name': 'FreeBSD  10.1 64\u4f4d',
             'product_code': '',
             'is_subscribed': False,
             'progress': '100%',
@@ -552,6 +552,7 @@ class ECSDriverTestCase(LibcloudTestCase):
         zone = zones[0]
         self.assertEqual('cn-qingdao-b', zone.id)
         self.assertEqual(self.driver, zone.driver)
+        self.assertEqual('\u9752\u5c9b\u53ef\u7528\u533aB', zone.name)
         self.assertIsNotNone(zone.available_resource_types)
         self.assertEqual('IoOptimized', zone.available_resource_types[0])
         self.assertIsNotNone(zone.available_instance_types)

http://git-wip-us.apache.org/repos/asf/libcloud/blob/18bc55de/libcloud/test/test_file_fixtures.py
----------------------------------------------------------------------
diff --git a/libcloud/test/test_file_fixtures.py b/libcloud/test/test_file_fixtures.py
index 2384e78..94a0f90 100644
--- a/libcloud/test/test_file_fixtures.py
+++ b/libcloud/test/test_file_fixtures.py
@@ -16,8 +16,10 @@
 import sys
 import unittest
 
-from libcloud.utils.py3 import u
+from libcloud.utils.py3 import u, httplib
 from libcloud.test.file_fixtures import ComputeFileFixtures
+from libcloud.common.base import Connection, Response, JsonResponse, XmlResponse
+from libcloud.test import MockHttp
 
 
 class FileFixturesTests(unittest.TestCase):
@@ -35,5 +37,49 @@ class FileFixturesTests(unittest.TestCase):
         self.assertEqual(u"\u015a", f.load('unicode.txt'))
 
 
+class MockHttpFileFixturesTests(unittest.TestCase):
+    """
+    Test the behaviour of MockHttp
+    """
+    def setUp(self):
+        Connection.conn_class = TestMockHttp
+        Connection.responseCls = Response
+        self.connection = Connection()
+
+    def test_unicode_response(self):
+        r = self.connection.request("/unicode")
+        self.assertEqual(r.parse_body(), u("\u015a"))
+
+    def test_json_unicode_response(self):
+        self.connection.responseCls = JsonResponse
+        r = self.connection.request("/unicode/json")
+        self.assertEqual(r.object, {'test': u("\u015a")})
+
+    def test_xml_unicode_response(self):
+        self.connection.responseCls = XmlResponse
+        response = self.connection.request("/unicode/xml")
+        self.assertEqual(response.object.text, u("\u015a"))
+
+
+class TestMockHttp(MockHttp):
+    fixtures = ComputeFileFixtures('meta')
+
+    def _unicode(self, method, url, body, headers):
+        body = self.fixtures.load('unicode.txt')
+        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
+
+    def _unicode_json(self, method, url, body, headers):
+        body = self.fixtures.load('unicode.json')
+        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
+
+    def _unicode_xml(self, method, url, body, headers):
+        body = self.fixtures.load('unicode.xml')
+        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
+
+    def _ascii(self, method, url, body, headers):
+        body = self.fixtures.load('helloworld.txt')
+        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
+
+
 if __name__ == '__main__':
     sys.exit(unittest.main())