IIRC, many computer labs have no internet access (as a closed loop learning environment).

But if it's possible to host something like DevPi as a proxy cache in order to support pip for package installation,
nose-progressive and pytest-sugar add a progressbar and other useful features to the nose and pytest test runners:

https://westurner.org/wiki/awesome-python-testing#nose
https://westurner.org/wiki/awesome-python-testing#py-test

Fortunately, I have CloudFlare DNS/CDN in front of my GitHub Pages sites, so these should still be online today while DNS for a number of sites is down.

... jupyter/nbgrader has some cool CI-like features for teachers and students:

https://wrdrd.com/docs/consulting/education-technology#nbgrader
https://github.com/jupyter/nbgrader

On Friday, October 21, 2016, kirby urner <kirby.urner@gmail.com> wrote:

Uh oh...  I'm in the middle of teaching Session 10
and couldn't figure out why my radius for a smaller
area was bigger.  Couldn't be.  I did my algebra 
wrong, duh. 



if __name__ == "__main__":
    # import unittest
    unittest.main()
 


Yeah, seriously good advice.

I've added unittests to the latest version, which I'll push to Github when the site once again becomes available.


Kirby


class TestCircle(unittest.TestCase):

    def testArea(self):
        the_circle = Circle(1)
        self.assertEqual(the_circle.area, math.pi, "Uh oh")
        
    def testRadius(self):
        the_circle = Circle(1)
        the_circle.area = math.pi * 4 # power rule
        self.assertEqual(the_circle.radius, 2, "Uh oh")

a = TestCircle()  # the test suite
suite = unittest.TestLoader().loadTestsFromModule(a) 
unittest.TextTestRunner().run(suite)  # run the test suite