      "class TestQuickSort(object):\n",
      "    def test_quick_sort(self, func):\n",
      "        print('Empty input')\n",
      "        data = []\n",
      "        sorted_data = func(data)\n",
      "        assert_equal(sorted_data, [])\n",
      "\n",
 
</s> remove     "    if len(data) < 2:\n",
 </s> add     "    if data is None or len(data) < 2:\n", </s> remove     "    try:\n",
    "        test.test_quick_sort(quick_sort_alt)\n",
    "    except NameError:\n",
    "        # Alternate solutions are only defined\n",
    "        # in the solutions file\n",
    "        pass\n",
 </s> add  </s> remove     "    try:\n",
    "        test.test_quick_sort(quick_sort_alt)\n",
    "    except NameError:\n",
    "        # Alternate solutions are only defined\n",
    "        # in the solutions file\n",
    "        pass\n",
 </s> add 
    "        print('None input')\n",
    "        data = None\n",
    "        sorted_data = func(data)\n",
    "        assert_equal(sorted_data, None)\n",
    "\n",
      "class TestQuickSort(object):\n",
      "    def test_quick_sort(self, func):\n",
    "        print('None input')\n",
    "        data = None\n",
    "        sorted_data = func(data)\n",
    "        assert_equal(sorted_data, None)\n",
    "\n",
      "        print('Empty input')\n",
      "        data = []\n",
      "        sorted_data = func(data)\n",
      "        assert_equal(sorted_data, [])\n",
      "\n",
keep add keep keep keep keep keep
 Polish quicksort challenge and solution

Add None input test case.  Remove difficult to read 'Pythonic' solution.  Update space complexity discussion. 
sorting_searching/quick_sort/quick_sort_solution.ipynb