Given
$ cat compare.py
#!/usr/bin/env python3
import os
import sys

def get_args():
    try:
        args = sys.argv[1:]
    except IndexError:
        return
    return [arg for arg in args if os.path.isfile(arg)]

if __name__ == "__main__":
    print(get_args())

How can one unittest get_args()?
It seems to me that 'unittest'ing only works to test functions and methods,
not programs.

Here's my attempt at a testing module:
$ cat testing.py
#!/usr/bin/env python3
import unittest
import compare_sizes

class CompareTesting(unittest.TestCase):

    def setUp(self):
        pass

    def test_nothing(self):
        self.assertEqual(not False, True)

    def test_get_file_param(self):
        self.assertTrue(compare_sizes.get_args() == ['file1', 'file2'])

if __name__ == '__main__':
    unittest.main()

Is there a way that I can provide the file name command line parameters
to compare.py so that its get_args function can be tested?

Thanks in advance for any advice.
AlexK

ps I'm on Ubuntu14.4, using Python3.4.0
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to