Skip to content
Snippets Groups Projects
test_trace_back.py 1.03 KiB
# coding=UTF-8

from __future__ import print_function, absolute_import, division

import pickle
import unittest

from satella.instrumentation import Traceback


class TestTraceback(unittest.TestCase):
    def test_no_exc(self):
        self.assertRaises(ValueError, Traceback)

    def test_tb(self):

        try:
            loc = u'hello world'
            raise ValueError(u'hello')
        except ValueError:
            tb = Traceback()

            p_fmt = tb.pretty_format()

        self.assertTrue(p_fmt)
        print(p_fmt)

    def test_issue_21(self):
        try:
            loc = u'hello world'
            raise ValueError(u'hello')
        except ValueError:
            tb = Traceback()
            a = tb.pickle()
            self.assertIsInstance(Traceback, pickle.loads(a))


    def test_compression_happens(self):

        try:
            loc = ' ' * (10 * 1024 * 1024)
            raise ValueError('hello')
        except ValueError:
            tb = Traceback()

        self.assertLess(len(pickle.dumps(tb, -1)), 9 * 1024 * 1024)