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 <anthonys...@apache.org>
Authored: Thu Apr 13 14:07:21 2017 +1000
Committer: Anthony Shaw <anthonys...@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位</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>亚太(新加坡)</LocalName>
                </Region>
                <Region>
                        <RegionId>cn-shenzhen</RegionId>
-                       <LocalName></LocalName>
+                       <LocalName>深圳</LocalName>
                </Region>
                <Region>
                        <RegionId>cn-qingdao</RegionId>
-                       <LocalName></LocalName>
+                       <LocalName>青岛</LocalName>
                </Region>
                <Region>
                        <RegionId>cn-beijing</RegionId>
-                       <LocalName></LocalName>
+                       <LocalName>北京</LocalName>
                </Region>
                <Region>
                        <RegionId>cn-shanghai</RegionId>
-                       <LocalName></LocalName>
+                       <LocalName>上海</LocalName>
                </Region>
                <Region>
                        <RegionId>us-east-1</RegionId>
-                       <LocalName></LocalName>
+                       <LocalName>美东弗吉尼亚</LocalName>
                </Region>
                <Region>
                        <RegionId>cn-hongkong</RegionId>
-                       <LocalName></LocalName>
+                       <LocalName>香港</LocalName>
                </Region>
                <Region>
                        <RegionId>cn-hangzhou</RegionId>
-                       <LocalName></LocalName>
+                       <LocalName>杭州</LocalName>
                </Region>
                <Region>
                        <RegionId>us-west-1</RegionId>
-                       <LocalName></LocalName>
+                       <LocalName>美国硅谷</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>青岛可用区B</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位</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位</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": "Ś"}
\ 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>Ś</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位',
             '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('青岛可用区B', 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"Ś", 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("Ś"))
+
+    def test_json_unicode_response(self):
+        self.connection.responseCls = JsonResponse
+        r = self.connection.request("/unicode/json")
+        self.assertEqual(r.object, {'test': u("Ś")})
+
+    def test_xml_unicode_response(self):
+        self.connection.responseCls = XmlResponse
+        response = self.connection.request("/unicode/xml")
+        self.assertEqual(response.object.text, u("Ś"))
+
+
+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())

Reply via email to