          buff = Stack()
          dest = Stack()
  
          print('Test: None towers')
          hanoi(num_disks, None, None, None)
  
          print('Test: 0 disks')
          hanoi(num_disks, src, dest, buff)
          assert_equal(dest.pop(), None)
  
 
</s> remove         hanoi(num_disks, src, dest, buff)
 </s> add         hanoi.move_disks(num_disks, src, dest, buff) </s> remove     "        hanoi(num_disks, None, None, None)\n",
 </s> add     "        assert_raises(TypeError, hanoi.move_disks, num_disks, None, None, None)\n", </s> remove     "        hanoi(num_disks, None, None, None)\n",
 </s> add     "        assert_raises(TypeError, hanoi.move_disks, num_disks, None, None, None)\n", </s> remove         hanoi(num_disks, src, dest, buff)
 </s> add         hanoi.move_disks(num_disks, src, dest, buff)
        assert_raises(TypeError, hanoi.move_disks, num_disks, None, None, None)
          buff = Stack()
          dest = Stack()
  
          print('Test: None towers')
        assert_raises(TypeError, hanoi.move_disks, num_disks, None, None, None)
  
          print('Test: 0 disks')
          hanoi(num_disks, src, dest, buff)
          assert_equal(dest.pop(), None)
  
keep keep keep keep replace keep keep keep keep keep
 Update hanoi challenge (#121)

Update constraints and test cases.  Move implementation to a class.  Update tests. 
recursion_dynamic/hanoi/test_hanoi.py