mirror of
https://github.com/arsenetar/send2trash.git
synced 2024-12-21 10:59:03 +00:00
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
9ede898c3e
33
send2trash/__main__.py
Normal file
33
send2trash/__main__.py
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
# encoding: utf-8
|
||||||
|
# Copyright 2017 Virgil Dupras
|
||||||
|
|
||||||
|
# This software is licensed under the "BSD" License as described in the "LICENSE" file,
|
||||||
|
# which should be included with this package. The terms are also available at
|
||||||
|
# http://www.hardcoded.net/licenses/bsd_license
|
||||||
|
|
||||||
|
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…
Reference in New Issue
Block a user