From dbdcce8b04d109784f45a451346f0d22bce63457 Mon Sep 17 00:00:00 2001 From: Andrew Senetar Date: Tue, 2 Mar 2021 00:26:29 -0600 Subject: [PATCH] First batch of updates to unit tests - Remove content from __init__.py - Change test_script_main to use pytest - Update test_script_main to run on windows as well as linux --- tests/__init__.py | 18 ------------- tests/test_script_main.py | 53 +++++++++++++++++++++++---------------- 2 files changed, 31 insertions(+), 40 deletions(-) diff --git a/tests/__init__.py b/tests/__init__.py index 4cb17e9..e69de29 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -1,18 +0,0 @@ -import sys -import unittest - - -def TestSuite(): - suite = unittest.TestSuite() - loader = unittest.TestLoader() - if sys.platform == "win32": - from . import test_plat_win - - suite.addTests(loader.loadTestsFromModule(test_plat_win)) - else: - from . import test_script_main - from . import test_plat_other - - suite.addTests(loader.loadTestsFromModule(test_script_main)) - suite.addTests(loader.loadTestsFromModule(test_plat_other)) - return suite diff --git a/tests/test_script_main.py b/tests/test_script_main.py index 9fe1b1e..33e57fa 100644 --- a/tests/test_script_main.py +++ b/tests/test_script_main.py @@ -1,32 +1,41 @@ # encoding: utf-8 import os -import unittest +import sys +import pytest 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 + +# Only import HOMETRASH on supported platforms +if sys.platform != "win32": + from send2trash.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')) +@pytest.fixture +def file(): + file = NamedTemporaryFile( + dir=op.expanduser("~"), prefix="send2trash_test", delete=False + ) + file.close() + yield file.name + # Cleanup trash files on supported platforms + if sys.platform != "win32": + name = op.basename(file.name) + # Remove trash files if they exist + if op.exists(op.join(HOMETRASH, "files", name)): + os.remove(op.join(HOMETRASH, "files", name)) + os.remove(op.join(HOMETRASH, "info", name + ".trashinfo")) + if op.exists(file.name): + os.remove(file.name) -if __name__ == '__main__': - unittest.main() +def test_trash(file): + trash_main(["-v", file]) + assert op.exists(file) is False + + +def test_no_args(file): + pytest.raises(SystemExit, trash_main, []) + pytest.raises(SystemExit, trash_main, ["-v"]) + assert op.exists(file) is True