  
  
  class TestMergeSort(object):
      def test_merge_sort(self):
          print('Empty input')
          data = []
          sorted_data = merge_sort(data)
          assert_equal(sorted_data, [])
  
 
</s> remove     "    if len(data) < 2:\n",
 </s> add     "    if data is None or len(data) < 2:\n", </s> remove     "    right = data[mid:len(data)]\n",
 </s> add     "    right = data[mid:]\n", </s> remove     "* Space: O(n), stable"
 </s> add     "* Space: O(n+m), n = number of elements, m = recursion depth\n",
    "\n",
    "Most implementations are stable."
        print('None input')
        data = None
        sorted_data = merge_sort(data)
        assert_equal(sorted_data, None)

  
  
  class TestMergeSort(object):
      def test_merge_sort(self):
        print('None input')
        data = None
        sorted_data = merge_sort(data)
        assert_equal(sorted_data, None)

          print('Empty input')
          data = []
          sorted_data = merge_sort(data)
          assert_equal(sorted_data, [])
  
keep keep keep add keep keep keep keep keep
 Polish merge sort challenge and solution

Add None input test case.  Update space complexity discussion. 
sorting_searching/merge_sort/test_merge_sort.py