python gflags module help flag doesn't work -
i have problem use python gflags module in selenium web test suite. follow way how example in gflags github repo. new flags defined via define_string working. default 1 --help doesn't work.
here code:
#!/usr/bin/env python import datetime import gflags import sys import time import os import glob import unittest selenium import webdriver pageobject.contact_us_page import contactuspage pageobject.utility import sendemailnotification selenium.webdriver.support.ui import webdriverwait selenium.webdriver.support import expected_conditions ec selenium.webdriver.common.by import flags = gflags.flags gflags.define_string('sender_addr', '', 'the sender of email notification') gflags.define_list('receivers_addr', '', 'the list of receivers') gflags.define_string('sender_password', '', 'the password of sender email box') class testcontactuspage(unittest.testcase): @classmethod def setupclass(cls): cls.driver = webdriver.chrome('../chromedriver') cls.cu_page = contactuspage(cls.driver) @classmethod def teardownclass(cls): cls.driver.close() def tally(self): return len(self._resultfordocleanups.errors) + len(self._resultfordocleanups.failures) def setup(self): self.errors_and_failures = self.tally() def teardown(self): # if sys.exc_info()[0]: # message = 'test fails expection: %s' % sys.exc_info()[1] # subject = 'test fails' # utilitylib.sendemailresult('zth198814@gmail.com', '314885400@qq.com',) if self.tally() > self.errors_and_failures: = datetime.datetime.now().strftime('%y-%m-%d_%h:%m:%s') self.cu_page.takescreenshot('error_' + now) def teststep01(self): self.cu_page.open() time.sleep(3) title = self.driver.title self.assertequal(title, 'parkside lending llc') def teststep02(self): self.cu_page.gotopage() title_element = webdriverwait(self.driver, 5).until(ec.presence_of_element_located(( by.xpath, '//h1[contains(.,"contact us")]'))) self.cu_page.takescreenshot('cupage') self.assertequal(title_element.text, 'contact us') def teststep03(self): self.cu_page.fillcontactform() submit_button = self.driver.find_element_by_name('submit') submit_button.click() self.asserttrue(self.cu_page.submitverification(), 'contact form submission fails, please check out ' 'output , screen shot.') if __name__ == '__main__': flags(sys.argv) suite = unittest.testloader().loadtestsfromtestcase(testcontactuspage) testresult = unittest.texttestrunner(verbosity=2).run(suite) = datetime.datetime.now().strftime('%y-%m-%d_%h:%m:%s') error_file = max((glob.glob('error_*.png')), key=os.path.getmtime) sender = flags.sender_addr receipts = flags.receivers_addr password = flags.sender_password open('test.out', 'w') f: if testresult.wassuccessful(): f.write('%s --- %s test steps passed, %s failures , %s errors' % (now, testresult.testsrun, testresult.failures, testresult.errors)) else: f.write('%s --- test steps failed.\n' % now) if len(testresult.failures): failure in testresult.failures: f.write('test failing at: %s\n' % failure[0]) f.write(failure[1]) if len(testresult.errors): error in testresult.errors: f.write('test has error at: %s\n' % error[0]) f.write(error[1]) open('test.out', 'r') f: message = f.read() if testresult.wassuccessful(): subject = 'all contact page test steps passed' else: subject = 'contact page test steps failed.' sendemailnotification().sendemailresult( sender, receipts, message, subject, ['cupage.png', error_file] , password)
here output if use python contact_us_page_test.py --help try text.
python contact_us_page_test.py --help traceback (most recent call last): file "contact_us_page_test.py", line 70, in <module> flags(sys.argv) file "/usr/local/lib/python2.7/dist-packages/gflags/flagvalues.py", line 708, in __call__ name, value, suggestions=suggestions) gflags.exceptions.unrecognizedflagerror: unknown command line flag 'help'
python gflags not provide --help
flag. however, gflags.flags
object stringifies full help. use this:
try: argv = flags(sys.argv) except gflags.flagserror e: print "%s\nusage: %s args\n%s" % (e, sys.argv[0], flags) sys.exit(1)
Comments
Post a Comment