From 075faede22c486ee9e6cbddc03e4c73007c63253 Mon Sep 17 00:00:00 2001 From: jinder1s Date: Fri, 4 Oct 2019 14:49:21 -0400 Subject: [PATCH] Modifying test to work in both py2 and 3 --- openedx/core/djangolib/tests/test_js_utils.py | 34 +++++++++++-------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/openedx/core/djangolib/tests/test_js_utils.py b/openedx/core/djangolib/tests/test_js_utils.py index 0b25cccf17..92e5b766f4 100644 --- a/openedx/core/djangolib/tests/test_js_utils.py +++ b/openedx/core/djangolib/tests/test_js_utils.py @@ -12,7 +12,7 @@ from mako.template import Template from openedx.core.djangolib.js_utils import dump_js_escaped_json, js_escaped_string import six # pylint: disable=ungrouped-imports - +import re class TestJSUtils(TestCase): """ @@ -97,14 +97,14 @@ class TestJSUtils(TestCase): parsed from json where applicable. """ test_dict = { - 'test_string': u'test-=&\\;\'"<>☃'.encode(encoding='utf-8'), + 'test_string': u'test-=&\\;\'"<>☃', 'test_tuple': (1, 2, 3), 'test_number': 3.5, 'test_bool': False, } template = Template( - """ + u""" <%! import json from openedx.core.djangolib.js_utils import ( @@ -142,23 +142,27 @@ class TestJSUtils(TestCase): ) expected_attr_json_for_html = "data-test-dict='" + expected_json_for_html + "'" self._validate_expectation_of_json_for_html(test_dict, expected_json_for_html) - self.assertIn(expected_attr_json_for_html, out) + self.assertIn(""test_tuple": [1, 2, 3]", out) + self.assertIn(""test_number": 3.5", out) + self.assertIn(""test_bool": false", out) + self.assertIn(""test_string": "test-=&\\\\;'\\"<>\\u2603"",out) self.assertIn(u"data-test-string='test-=&\\;'"<>☃'", out) self.assertIn("data-test-tuple='[1, 2, 3]'", out) self.assertIn("data-test-number='3.5'", out) self.assertIn("data-test-bool='false'", out) + expected_string_for_js_in_dict = r'''test-=\u0026\\;'\"\u003c\u003e\u2603''' self._validate_expectation_of_string_for_js(test_dict['test_string'], expected_string_for_js_in_dict) - self.assertIn( - ( - 'var test_dict = {"test_bool": false, "test_number": 3.5, ' - '"test_tuple": [1, 2, 3], "test_string": "' + expected_string_for_js_in_dict + '"}' - ), out) - expected_string_for_js = r"test\u002D\u003D\u0026\u005C\u003B\u0027\u0022\u003C\u003E☃" + location_of_dict_in_out = output=re.search("var test_dict.*}",out) + var_dict_in_out = out[output.span()[0]:output.span()[1]] + self.assertIn('"test_number": 3.5', var_dict_in_out) + self.assertIn('"test_string": "test-=\\u0026\\\\;\'\\"\\u003c\\u003e\\u2603"', var_dict_in_out) + self.assertIn('"test_tuple": [1, 2, 3]', var_dict_in_out) + self.assertIn('"test_bool": false', var_dict_in_out) + + expected_string_for_js = u"test\\u002D\\u003D\\u0026\\u005C\\u003B\\u0027\\u0022\\u003C\\u003E☃" self._validate_expectation_of_string_for_js(test_dict['test_string'], expected_string_for_js) - self.assertIn( - "var test_string = '" + expected_string_for_js.decode(encoding='utf-8') + "'", - out) + self.assertIn("var test_string = '" + expected_string_for_js + "'", out) self.assertIn("var test_none_string = ''", out) self.assertIn("var test_tuple = [1, 2, 3]", out) self.assertIn("var test_number = 3.5", out) @@ -188,7 +192,7 @@ class TestJSUtils(TestCase): # tuples become arrays in json, so it is parsed to a list that is # switched back to a tuple before comparing parsed_expected_dict['test_tuple'] = tuple(parsed_expected_dict['test_tuple']) - self.assertEqual(test_dict['test_string'].decode(encoding='utf-8'), parsed_expected_dict['test_string']) + self.assertEqual(test_dict['test_string'], parsed_expected_dict['test_string']) self.assertEqual(test_dict['test_tuple'], parsed_expected_dict['test_tuple']) self.assertEqual(test_dict['test_number'], parsed_expected_dict['test_number']) self.assertEqual(test_dict['test_bool'], parsed_expected_dict['test_bool']) @@ -209,4 +213,4 @@ class TestJSUtils(TestCase): """ parsed_expected_string = json.loads('"' + expected_string_for_js + '"') - self.assertEqual(test_string.decode(encoding='utf-8'), parsed_expected_string) + self.assertEqual(test_string, parsed_expected_string)