| """Test script for the binhex C module | 
 |  | 
 |    Uses the mechanism of the python binhex module | 
 |    Based on an original test by Roger E. Masse. | 
 | """ | 
 | import binhex | 
 | import os | 
 | import unittest | 
 | from test import support | 
 |  | 
 |  | 
 | class BinHexTestCase(unittest.TestCase): | 
 |  | 
 |     def setUp(self): | 
 |         self.fname1 = support.TESTFN + "1" | 
 |         self.fname2 = support.TESTFN + "2" | 
 |         self.fname3 = support.TESTFN + "very_long_filename__very_long_filename__very_long_filename__very_long_filename__" | 
 |  | 
 |     def tearDown(self): | 
 |         support.unlink(self.fname1) | 
 |         support.unlink(self.fname2) | 
 |         support.unlink(self.fname3) | 
 |  | 
 |     DATA = b'Jack is my hero' | 
 |  | 
 |     def test_binhex(self): | 
 |         f = open(self.fname1, 'wb') | 
 |         f.write(self.DATA) | 
 |         f.close() | 
 |  | 
 |         binhex.binhex(self.fname1, self.fname2) | 
 |  | 
 |         binhex.hexbin(self.fname2, self.fname1) | 
 |  | 
 |         f = open(self.fname1, 'rb') | 
 |         finish = f.readline() | 
 |         f.close() | 
 |  | 
 |         self.assertEqual(self.DATA, finish) | 
 |  | 
 |     def test_binhex_error_on_long_filename(self): | 
 |         """ | 
 |         The testcase fails if no exception is raised when a filename parameter provided to binhex.binhex() | 
 |         is too long, or if the exception raised in binhex.binhex() is not an instance of binhex.Error. | 
 |         """ | 
 |         f3 = open(self.fname3, 'wb') | 
 |         f3.close() | 
 |  | 
 |         self.assertRaises(binhex.Error, binhex.binhex, self.fname3, self.fname2) | 
 |  | 
 | def test_main(): | 
 |     support.run_unittest(BinHexTestCase) | 
 |  | 
 |  | 
 | if __name__ == "__main__": | 
 |     test_main() |