refactored ResponseBody's encoding test

--HG--
extra : convert_revision : svn%3Ab85faa78-f9eb-468e-a121-7cced6da292c%40690
This commit is contained in:
samus_ 2009-01-09 00:42:44 +00:00
parent 1feace1bb0
commit 8240fc48ad
1 changed files with 19 additions and 15 deletions

View File

@ -1,20 +1,24 @@
# -*- coding: utf-8 -*-
from unittest import TestCase, main
import libxml2
from scrapy.http import ResponseBody
from scrapy.http import Response, ResponseBody
class ResponseTest(TestCase):
def test_responsebodyencoding(self):
string = 'кириллический текст'
unicode_string = unicode(string, 'utf-8')
body_cp1251 = unicode_string.encode('cp1251')
body = ResponseBody(body_cp1251, 'cp1251')
self.assertEqual(body.to_unicode(), unicode_string)
self.assertEqual(isinstance(body.to_unicode(), unicode), True)
self.assertEqual(body.to_string('utf-8'), string)
self.assertEqual(isinstance(body.to_string('utf-8'), str), True)
self.assertEqual(body.to_string(), body_cp1251)
self.assertEqual(isinstance(body.to_string('utf-8'), str), True)
class ResponseBodyTest(TestCase):
unicode_string = u'\u043a\u0438\u0440\u0438\u043b\u043b\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0442\u0435\u043a\u0441\u0442'
def test_encoding(self):
original_string = self.unicode_string.encode('cp1251')
cp1251_body = ResponseBody(original_string, 'cp1251')
# check to_unicode
self.assertTrue(isinstance(cp1251_body.to_unicode(), unicode))
self.assertEqual(cp1251_body.to_unicode(), self.unicode_string)
# check to_string using default encoding (declared when created)
self.assertTrue(isinstance(cp1251_body.to_string(), str))
self.assertEqual(cp1251_body.to_string(), original_string)
# check to_string using arbitrary encoding
self.assertTrue(isinstance(cp1251_body.to_string('utf-8'), str))
self.assertEqual(cp1251_body.to_string('utf-8'), self.unicode_string.encode('utf-8'))
if __name__ == "__main__":
main()