Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #89814

Re: Is this a good way to implement testing

From Mark Lawrence <breamoreboy@yahoo.co.uk>
Subject Re: Is this a good way to implement testing
Date 2015-05-03 00:17 +0100
References <878ud6mx4y.fsf@Equus.decebal.nl>
Newsgroups comp.lang.python
Message-ID <mailman.35.1430608701.12865.python-list@python.org> (permalink)

Show all headers | View raw


On 02/05/2015 23:29, Cecil Westerhof wrote:
> Still on my journey to learn Python.
>
> At the moment I define the test functionality in the following way:
>      if __name__ == '__main__':
>          keywords        = [
>              'all',
>              'factorial',
>              'fibonacci',
>              'happy',
>              'lucky',
>          ]
>          keywords_msg    = [
>              '--all',
>              '--factorial',
>              '--fibonacci',
>              '--happy',
>              '--lucky',
>          ]
>          (options,
>           extraParams)   = getopt.getopt(sys.argv[1:], '', keywords)
>          progname        = split(sys.argv[0])[1]
>
>          if len(options) > 1 or len(extraParams) != 0:
>              error   = '{0}: Wrong parameters ({1})'. \
>                        format(progname, ' '.join(sys.argv[1:]))
>              usage   = '    {0} {1}'.format(progname, ' | '.join(keywords_msg))
>              print(error, file = sys.stderr)
>              print(usage, file = sys.stderr)
>              sys.exit(1)
>
>          do_all = do_factorial = do_fibonacci = do_happy = do_lucky = False
>          if len(options) == 0:
>              do_all = True
>          else:
>              action = options[0][0]
>              if   action == '--all':
>                  do_all          = True
>              elif action == '--factorial':
>                  do_factorial    = True
>              elif action == '--fibonacci':
>                  do_fibonacci    = True
>              elif action == '--happy':
>                  do_happy        = True
>              elif action == '--lucky':
>                  do_lucky        = True
>              else:
>                  print >> sys.stderr, progname + ': Unhandled parameter ' + action
>                  sys.exit(1)
>
>          if do_all or do_factorial:
>          .
>          .
>          .
>
> Is this an acceptable way of working?
>

For code like the above I prefer the third party docopt module 
https://github.com/docopt/docopt although you could also try 
https://docs.python.org/3/library/argparse.html#module-argparse

The standard library unit testing framework is here 
https://docs.python.org/3/library/unittest.html#module-unittest but also 
see https://wiki.python.org/moin/PythonTestingToolsTaxonomy

-- 
My fellow Pythonistas, ask not what our language can do for you, ask
what you can do for our language.

Mark Lawrence

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Is this a good way to implement testing Cecil Westerhof <Cecil@decebal.nl> - 2015-05-03 00:29 +0200
  Re: Is this a good way to implement testing Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-05-03 00:17 +0100
  Re: Is this a good way to implement testing Terry Reedy <tjreedy@udel.edu> - 2015-05-02 20:06 -0400
  Re: Is this a good way to implement testing Paul Rubin <no.email@nospam.invalid> - 2015-05-02 20:58 -0700
    Re: Is this a good way to implement testing Ben Finney <ben+python@benfinney.id.au> - 2015-05-03 14:49 +1000
  Re: Is this a good way to implement testing Cecil Westerhof <Cecil@decebal.nl> - 2015-05-03 09:36 +0200
    Re: Is this a good way to implement testing Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-05-03 09:38 +0100
    Re: Is this a good way to implement testing Peter Otten <__peter__@web.de> - 2015-05-03 10:45 +0200
      Re: Is this a good way to implement testing Cecil Westerhof <Cecil@decebal.nl> - 2015-05-03 11:49 +0200
        Re: Is this a good way to implement testing Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-05-03 11:21 +0100
          Re: Is this a good way to implement testing Cecil Westerhof <Cecil@decebal.nl> - 2015-05-03 12:50 +0200
    Re: Is this a good way to implement testing Ben Finney <ben+python@benfinney.id.au> - 2015-05-03 18:52 +1000
  Re: Is this a good way to implement testing Peter Otten <__peter__@web.de> - 2015-05-03 11:22 +0200

csiph-web