From 8240fc48ad0f58546cef90f56434503734268487 Mon Sep 17 00:00:00 2001 From: samus_ Date: Fri, 9 Jan 2009 00:42:44 +0000 Subject: [PATCH] refactored ResponseBody's encoding test --HG-- extra : convert_revision : svn%3Ab85faa78-f9eb-468e-a121-7cced6da292c%40690 --- .../trunk/scrapy/tests/test_http_response.py | 34 +++++++++++-------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/scrapy/trunk/scrapy/tests/test_http_response.py b/scrapy/trunk/scrapy/tests/test_http_response.py index 5c3a7692f..e5877e1fa 100644 --- a/scrapy/trunk/scrapy/tests/test_http_response.py +++ b/scrapy/trunk/scrapy/tests/test_http_response.py @@ -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()