test: check if destination exists

This commit is contained in:
Lukáš Kucharczyk 2021-06-25 21:37:16 +02:00
parent afd46ee7d2
commit 6095290195
No known key found for this signature in database
GPG Key ID: 65524498C0196B64
2 changed files with 25 additions and 1 deletions

View File

@ -3,6 +3,7 @@ Manga checker and downloader
""" """
import argparse import argparse
import os
if __name__ == '__main__': if __name__ == '__main__':
parser = argparse.ArgumentParser( parser = argparse.ArgumentParser(
@ -18,4 +19,11 @@ if __name__ == '__main__':
'-n', '--notify', type=str, default=None, help="Apprise notification string." '-n', '--notify', type=str, default=None, help="Apprise notification string."
) )
args = parser.parse_args() 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.')

View File

@ -1,13 +1,29 @@
from subprocess import CalledProcessError from subprocess import CalledProcessError
import unittest import unittest
import subprocess import subprocess
import os
class ArgumentTestClass(unittest.TestCase): class ArgumentTestClass(unittest.TestCase):
def setUp(self):
import tempfile
self.existing_dir = tempfile.mkdtemp()
def test_argument_required(self): def test_argument_required(self):
with self.assertRaises(CalledProcessError): with self.assertRaises(CalledProcessError):
subprocess.check_output(['python', 'manga_up']) 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__': if __name__ == '__main__':
unittest.main() unittest.main()