Home Accessibility Courses Twitter The Mouth Facebook Resources Site Map About Us Contact
Pytest - second example beyond hello world

Moving on from my hello Pytest World example, lets add some more tests and put the code we're testing into a separate file. The test code is [here] and - if working in a TDD (Test Driven Developent) mode it will be written first - forming the specificiation for the class you're writing.

I have brought the code to be tested in with:

  from mathstuff import *

Having carefully thought through whether "from" to bring the code into my current namespace or "import" to keep it separate, I've decided (in order to keep the training examples a bit shorter to use import. For a small real-world setup this might be a good decision, for a large and complex setup with lots of classes to be tested, from would be best. The file mathstuff.py is [here]

In addition to the "hello world" example, I've added ...

1. Further tests ... identified by being methods with names starting test_

2. A test which starts with the name another_; in order for this to be picked up by the park of pytest that seeks out the tests, I've provided a configuration file, setup.cfg which may be found [here], as follows:

  [pytest]
  python_functions = another_* test_*


3. I have decorated one of the tests to indicate that I know it will fail

  @pytest.mark.xfail
  def test_add_003():
    assert addition(10,15) == 26


4. I have provided a setup routine to be run before each and every test (but better ways of doing this are shown in later examples):

  def setup_function(summat):
    print("The world is round {}".format(summat))


5. I have run my tests with the -s option so that any print statements within are run / displayed (default is that stdout is supressed)

  python -m pytest -s test_mathfuncs.py

Full code including sample output from a run ... [here]
(written 2016-01-08)

 
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)
  [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)
  [4470] Testing in Python 3 - unittest, doctest and __name__ == __main__ too. - (2015-04-21)
  [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)


Back to
Pytest - starting example
Previous and next
or
Horse's mouth home
Forward to
Buses - not about the buses, but about the people who use the buses
Some other Articles
Frosty morning, beauty of Wiltshire
The power of scripting
Perl 6 - a Practical Extraction and Reporting example!
Buses - not about the buses, but about the people who use the buses
Pytest - second example beyond hello world
Still teaching Tcl in 2016?
Questions for First (West of England)
PC Plod - alive and scaremongering in Wiltshire?
Our best hotel customers help us ... to help them ... be our best customers.
4722 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: Well House Manor • 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • FAX: 01144 1225 899360 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho

PAGE: http://www.wellho.net/mouth/4618_Pyt ... world.html • PAGE BUILT: Sat Jun 11 12:16:26 2016 • BUILD SYSTEM: WomanWithCat