Book Image

Mastering IPython 4.0

By : Thomas Bitterman, Dipanjan Deb
Book Image

Mastering IPython 4.0

By: Thomas Bitterman, Dipanjan Deb

Overview of this book

IPython is an interactive computational environment in which you can combine code execution, rich text, mathematics, plots, and rich media. This book will get IPython developers up to date with the latest advancements in IPython and dive deep into interactive computing with IPython. This an advanced guide on interactive and parallel computing with IPython will explore advanced visualizations and high-performance computing with IPython in detail. You will quickly brush up your knowledge of IPython kernels and wrapper kernels, then we'?ll move to advanced concepts such as testing, Sphinx, JS events, interactive work, and the ZMQ cluster. The book will cover topics such as IPython Console Lexer, advanced configuration, and third-party tools. By the end of this book, you will be able to use IPython for interactive and parallel computing in a high-performance computing environment.
Table of Contents (18 chapters)
Mastering IPython 4.0
Credits
About the Author
About the Reviewer
www.PacktPub.com
Preface
6
Works Well with Others – IPython and Third-Party Tools
Index

Chapter 8. But It Worked in the Demo! – Testing

With the split from Jupyter went the need for specialized IPython testing tools. This does not reduce the need to test IPython programs, however. There are several testing frameworks for Python itself that fit neatly into this role. No one writes code expecting it to produce incorrect output, or bomb. Regardless, years of experience in the industry have demonstrated that good design is not enough. Programs need to be thoroughly tested before their results can be relied on. This is especially true for scientific and numeric systems, where errors can be subtle but their effects far-reaching. No one wants to repeat the Mars Climate Orbiter fiasco.

We will look at some of the more popular frameworks and discuss some issues that are particular to testing in a highly parallel/HPC environment.

The following topics will be covered:

  • Unit testing

  • unittest

  • pytest

  • nose2