test_rpc.py 805 B

1234567891011121314151617181920212223242526272829
  1. "Test rpc, coverage 20%."
  2. from idlelib import rpc
  3. import unittest
  4. class CodePicklerTest(unittest.TestCase):
  5. def test_pickle_unpickle(self):
  6. def f(): return a + b + c
  7. func, (cbytes,) = rpc.pickle_code(f.__code__)
  8. self.assertIs(func, rpc.unpickle_code)
  9. self.assertIn(b'test_rpc.py', cbytes)
  10. code = rpc.unpickle_code(cbytes)
  11. self.assertEqual(code.co_names, ('a', 'b', 'c'))
  12. def test_code_pickler(self):
  13. self.assertIn(type((lambda:None).__code__),
  14. rpc.CodePickler.dispatch_table)
  15. def test_dumps(self):
  16. def f(): pass
  17. # The main test here is that pickling code does not raise.
  18. self.assertIn(b'test_rpc.py', rpc.dumps(f.__code__))
  19. if __name__ == '__main__':
  20. unittest.main(verbosity=2)