mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 19:34:08 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			57 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
#! /usr/bin/env python3
 | 
						|
"""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()
 |