diff --git a/manga_up/__main__.py b/manga_up/__main__.py index 831450d..4b924dc 100644 --- a/manga_up/__main__.py +++ b/manga_up/__main__.py @@ -3,6 +3,7 @@ Manga checker and downloader """ import argparse +import os if __name__ == '__main__': parser = argparse.ArgumentParser( @@ -18,4 +19,11 @@ if __name__ == '__main__': '-n', '--notify', type=str, default=None, help="Apprise notification string." ) - args = parser.parse_args() \ No newline at end of file + args = parser.parse_args() + + destination = os.path.abspath(args.destination) + + if not os.path.exists(destination): + print(f'Destination {destination} does not exist.') + if not os.path.isdir(destination): + print(f'Destination {destination} is not a directory.') \ No newline at end of file diff --git a/tests/test_arguments.py b/tests/test_arguments.py index b30ac13..0ab4791 100644 --- a/tests/test_arguments.py +++ b/tests/test_arguments.py @@ -1,13 +1,29 @@ from subprocess import CalledProcessError import unittest import subprocess +import os class ArgumentTestClass(unittest.TestCase): + def setUp(self): + import tempfile + self.existing_dir = tempfile.mkdtemp() + def test_argument_required(self): with self.assertRaises(CalledProcessError): subprocess.check_output(['python', 'manga_up']) + def test_destination_exists(self): + result = subprocess.check_output(['python', 'manga_up', '--destination', 'nonexistent']) + self.assertIn('does not exist', str(result)) + + def test_destination_is_not_directory(self): + result = subprocess.check_output(['python', 'manga_up', '--destination', self.existing_file]) + self.assertIn('not a directory', str(result)) + + def tearDown(self) -> None: + os.rmdir(self.existing_dir) + if __name__ == '__main__': unittest.main() \ No newline at end of file