def test_freeze_20(self): """ Вложенный Массив """ value = [123, -1.23, "123", [1, 2, 3], "Привет!"] data = freeze(value) self.assertEqual(np(thaw(data)), np(value), 'Вложенный Массив') self.assertEqual(data, freeze_perl(str(value), 'use utf8;'), 'Вложенный Массив в storable')
def test_object(self): Int = type("Int", (int, ), {}) self.assertEqual(np(Int(3)), "Int(3)\n") Float = type("Float", (float, ), {}) self.assertEqual(np(Float(-3.3)), "Float(-3.3)\n") Str = type("Str", (str, ), {}) self.assertEqual(np(Str("x")), "Str('x')\n")
def test_freeze_18(self): """ Хеш """ value = { "-15600000000": -1.23, "1": 23, "tip": { "x": None }, "u": "123", "Привет!": [1, 2, 3] } data = freeze(value) self.assertEqual(np(thaw(data, iconv=lambda s: s.decode('utf-8'))), np(value), 'Хеш') thaw_perl(data, '', 1)
def test_default_colors(self): s = np(b, color=True) self.assertTrue('10' in s, 'Распечатано число 10') self.assertTrue("'Строка\\n'" in s, 'Распечатана строка') self.assertTrue("b'binary\\n'" in s, 'Распечатано бинари') f = io.StringIO('') p(b, file=f) self.assertEqual(f.getvalue(), s, "Колоризированные строки совпадают") f.close()
def test_uncolor_string(self): s = np(b) self.assertTrue('10' in s, 'Распечатано число 10') self.assertTrue("'Строка\\n'" in s, 'Распечатана строка') self.assertTrue("b'binary\\n'" in s, 'Распечатано бинари') f = io.StringIO('') p(b, file=f, color=False) self.assertEqual(f.getvalue(), s, "Cтроки совпадают") f.close()
def test_freeze_21(self): """ Рекурсивный Массив """ value = [3, None, {"u": [7]}, [5, None], "Привет!"] value[3].append(value[2]["u"]) #self.maxDiff = None data = freeze(value) p(value) p(thaw(data)) x = freeze_perl( '$x', 'use utf8; $x=[3, $none, {u=>[7]}, [5, $none], "Привет!"]; push @{$x->[3]}, $x->[2]{u};' ) print("python") p(data) print("perl") p(x) self.assertEqual(np(thaw(data)), np(value), 'Рекурсивный Массив') self.assertEqual(data, x, 'Рекурсивный Массив в storable')
def test_colors(self): color = dict(int=fore.RED, float=fore.GREEN) s = np(b, color=True) self.assertTrue('10' in s, 'Распечатано число 10') self.assertTrue("'Строка\\n'" in s, 'Распечатана строка') self.assertTrue("b'binary\\n'" in s, 'Распечатано бинари') f = io.StringIO('') p(b, file=f) self.assertEqual(f.getvalue(), s, "Колоризированные строки совпадают") f.close() x = False try: p('', color={'x': 1}) except KeyError: x = True self.assertTrue(x, "Нет ключа")
def test_object_without_dict(self): from datetime import datetime s = np(datetime.strptime('09.07.2006 00:23:23', '%d.%m.%Y %H:%M:%S')) self.assertEqual(s, "datetime('2006-07-09 00:23:23')\n", 'Распечатан объект без словаря')