mirror of
				https://github.com/arsenetar/send2trash.git
				synced 2025-09-11 18:08:16 +00:00 
			
		
		
		
	Create __main__.py (Fixes #15)
This adds a main method that mimics the behavior of `rm`. It can be called via `python -m send2trash somefile`.
This commit is contained in:
		
							parent
							
								
									66afce7252
								
							
						
					
					
						commit
						009216eb30
					
				
							
								
								
									
										27
									
								
								send2trash/__main__.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								send2trash/__main__.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,27 @@ | |||||||
|  | # encoding: utf-8 | ||||||
|  | from __future__ import print_function | ||||||
|  | 
 | ||||||
|  | import sys | ||||||
|  | 
 | ||||||
|  | from argparse import ArgumentParser | ||||||
|  | from send2trash import send2trash | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | def main(args=None): | ||||||
|  |     parser = ArgumentParser(description='Tool to send files to trash') | ||||||
|  |     parser.add_argument('files', nargs='+') | ||||||
|  |     parser.add_argument('-v', '--verbose', action='store_true', help='Print deleted files') | ||||||
|  |     args = parser.parse_args(args) | ||||||
|  | 
 | ||||||
|  |     for filename in args.files: | ||||||
|  |         try: | ||||||
|  |             send2trash(filename) | ||||||
|  |             if args.verbose: | ||||||
|  |                 print('Trashed «' + filename + '»') | ||||||
|  |         except OSError as e: | ||||||
|  |             print(str(e), file=sys.stderr) | ||||||
|  |             sys.exit(1) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | if __name__ == '__main__': | ||||||
|  |     main() | ||||||
							
								
								
									
										32
									
								
								tests/test_script_main.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								tests/test_script_main.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,32 @@ | |||||||
|  | # encoding: utf-8 | ||||||
|  | import os | ||||||
|  | import unittest | ||||||
|  | from tempfile import NamedTemporaryFile | ||||||
|  | from os import path as op | ||||||
|  | 
 | ||||||
|  | from send2trash.__main__ import main as trash_main | ||||||
|  | from tests.test_plat_other import HOMETRASH | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class TestMainTrash(unittest.TestCase): | ||||||
|  |     def setUp(self): | ||||||
|  |         self.file = NamedTemporaryFile(dir=op.expanduser('~'), prefix='send2trash_test', delete=False) | ||||||
|  | 
 | ||||||
|  |     def test_trash(self): | ||||||
|  |         trash_main(['-v', self.file.name]) | ||||||
|  |         self.assertFalse(op.exists(self.file.name)) | ||||||
|  | 
 | ||||||
|  |     def test_no_args(self): | ||||||
|  |         self.assertRaises(SystemExit, trash_main, []) | ||||||
|  |         self.assertRaises(SystemExit, trash_main, ['-v']) | ||||||
|  |         self.assertTrue(op.exists(self.file.name)) | ||||||
|  |         trash_main([self.file.name])  # Trash the file so tearDown runs properly | ||||||
|  | 
 | ||||||
|  |     def tearDown(self): | ||||||
|  |         name = op.basename(self.file.name) | ||||||
|  |         os.remove(op.join(HOMETRASH, 'files', name)) | ||||||
|  |         os.remove(op.join(HOMETRASH, 'info', name + '.trashinfo')) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | if __name__ == '__main__': | ||||||
|  |     unittest.main() | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user