Home Accessibility Courses Twitter The Mouth Facebook Resources Site Map About Us Contact
Testing in Python 3 - unittest, doctest and __name__ == __main__ too.

Python's doctest modules takes an interactive session pasted into your documentations string, analyses it and reruns the Python code you used in your session ... telling you whether you're still getting the same results or not.

Firstly, it's a great way of copying tests you've done and recording the for re-use later, so that you can check whether you've damaged anything / changed behaviours when you've enhanced / updated / debugged your code later

Secondly, it's a great way of describing what your results SHOULD be and then being able to run code to make sure that you've actually acheieved your requirement ("met the specification") - that's test driven development.

There's a working examples that passes tests [here] and one that fails [here]. The class I tested may be found [here]. The doctest example should work in Python 2 and Python 3. The test class has been implemented / tested in Python 3.4.

• As well as using doctest, you can include a test harness within your individually imported modules using
  if __name__ == "__main__":
and such a test is included in the class we're using in this module ([here])

• A much heavier test suite - unittest - is also available in Python. There's an example of that in use to test out train class / module - see [here].

On our public public Python courses, we cover testing, introduce test driven development, and stress the importance of testing. On private courses, we can tailor what we present but we strongly encourage you to include coverage of this important subject.
(written 2015-04-21, updated 2015-04-22)

 
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
Y212 - Python - Code testing, patterns, profiles and optimisation.
  [4716] Profiling your Python program - (2016-11-01)
  [4618] Pytest - second example beyond hello world - (2016-01-08)
  [4617] Pytest - starting example - (2016-01-07)
  [4542] The principle of mocking - and the Python Mock package - (2015-10-17)
  [4540] Unittest of a Flask application including forms - (2015-10-15)
  [4538] Flask and unittest - hello web app test world - (2015-10-15)
  [4446] Combining tests into suites, and suites into bigger suites - Python and unittest - (2015-03-01)
  [4344] Python base and inherited classes, test harness and unit testing - new examples - (2014-12-07)
  [4326] Learning to program - comments, documentation and test code - (2014-11-22)
  [4090] Test Driven Development in Python - Customer Comes First - (2013-05-16)
  [3658] Using Make for a distribution - (2012-03-17)
  [3478] Testing your Python classes with the unittest package - how to - (2011-10-14)
  [3464] Passing optional and named parameters to python methods - (2011-10-04)
  [3442] A demonstration of how many Python facilities work together - (2011-09-16)
  [3441] Pressing ^C in a Python program. Also Progress Bar. - (2011-09-15)
  [2616] Defining a static method - Java, Python and Ruby - (2010-02-01)
  [2123] Using Python with OpenOffice - (2009-04-09)
  [1555] Advanced Python, Perl, PHP and Tcl training courses / classes - (2008-02-25)
  [1148] Python decorators - wrapping a method call in extra code - (2007-04-15)
  [1146] __new__ v __init__ - python constructor alternatives? - (2007-04-14)
  [1140] Python GTK - Widget, Packing, Event and Feedback example - (2007-04-09)
  [235] Preparation for a day's work - (2005-03-04)

Y300 - Python 3 - What is new, what's changed and why
  [4712] A reminder of the key issues to consider in moving from Python 2 to Python 3 - (2016-10-30)
  [4711] Convering from Python 2 to Python 3 - an update, and the 2to3 utility - (2016-10-30)
  [4650] Why populate object with values as you construct them? - (2016-02-18)
  [4649] Object and Static methods - what is the difference; example in Python 3 - (2016-02-17)
  [4590] Progress on moving from Python 2 to Python 3 - training for both versions - (2015-12-01)
  [4469] Sorting in Python 3 - and how it differs from Python 2 sorting - (2015-04-20)
  [2871] Moving from Python 2.6 to Python 3 - (2010-07-14)
  [2778] Learning to program in Python 2 ... and / or in Python 3 - (2010-05-24)
  [2559] Moving the product forward - ours, and MySQL, Perl, PHP and Python too - (2010-01-01)
  [2285] Great new diagrams for our notes ... Python releases - (2009-07-13)
  [2277] Python classes / courses - what version do we train on? - (2009-07-10)
  [1791] The road ahead - Python 3 - (2008-09-10)
  [1788] Python 2 to Python 3 / Python 3000 / Py3k - (2008-09-07)
  [753] Python 3000 - the next generation - (2006-06-09)


Back to
Sorting in Python 3 - and how it differs from Python 2 sorting
Previous and next
or
Horse's mouth home
Forward to
Leopardstown to Rosslare by train
Some other Articles
Effect on external factors on traffic to our web sites - an update
Fishguard to Melksham - third part of Dublin journey
Rosslare to Fishguard - foot passenger on the ferry
Leopardstown to Rosslare by train
Testing in Python 3 - unittest, doctest and __name__ == __main__ too.
Four in a Bed - most popular answers
Neighbourhood Plan - travel and transport thoughts
Moving from C to C++ - Structured to Object Oriented - a lesson for engineers
Sockets, time handling and keyboard interrupt handling in C
4749 posts, page by page
Link to page ... 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95 at 50 posts per page


This is a page archived from The Horse's Mouth at http://www.wellho.net/horse/ - the diary and writings of Graham Ellis. Every attempt was made to provide current information at the time the page was written, but things do move forward in our business - new software releases, price changes, new techniques. Please check back via our main site for current courses, prices, versions, etc - any mention of a price in "The Horse's Mouth" cannot be taken as an offer to supply at that price.

Link to Ezine home page (for reading).
Link to Blogging home page (to add comments).

You can Add a comment or ranking to this page

© WELL HOUSE CONSULTANTS LTD., 2017: 404 The Spa • Melksham, Wiltshire • United Kingdom • SN12 6QL
PH: 01144 1225 708225 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho

PAGE: http://www.wellho.net/mouth/4470_Tes ... -too-.html • PAGE BUILT: Sat May 27 16:49:10 2017 • BUILD SYSTEM: WomanWithCat