Problem with sys.argv[1] when unittest module is in a script
- by chrissygormley
Hello,
I have a script that does various things and access paramenters using sys.argv but when the script gets to the unittest part of the code it says there is no module for this. The script that I have is:
class MyScript():
def __init__(self):
self.value = sys.argv[1]
def hello(self):
print self.value
def suite(self):
modules_to_test = ('external_sanity_onvif', 'starttest')
alltests = unittest.TestSuite()
for module in map(__import__, modules_to_test):
alltests.addTest(unittest.findTestCases(module))
return alltests
if __name__ == '__main__':
Run = MyScript()
Run.hello()
log_file = 'log_file.txt'
test_file = open(log_file, "w")
runner = unittest.TextTestRunner(test_file)
unittest.main(defaultTest='Run.suite', testRunner=runner)
Say I enter ./script.py Hello in the command line. The error I get is:
AttributeError: 'module' object has no attribute 'Hello'
If I remove the unittest module it works. Also if I remove the testrunner log and leave it at:
unittest.main(defaultTest='Run.suite')
This still doesn't work.
Can anyone help.
Thanks