diff --git a/share/spack/qa/check_dependencies b/share/spack/qa/check_dependencies
index cbcda0ce0f3fb542defda327341c1abcbb96d808..292eac7dd32aaefa4ddad1c1dbc4f4a743ac538c 100755
--- a/share/spack/qa/check_dependencies
+++ b/share/spack/qa/check_dependencies
@@ -13,16 +13,37 @@
 
 for dep in "$@"; do
     if ! which $dep &> /dev/null; then
-        # sphinx-build comes from sphinx
-        package=$(echo $dep | cut -d - -f 1)
+        # Map binary name to package name
+        case $dep in
+            sphinx-apidoc|sphinx-build)
+                spack_package=py-sphinx
+                pip_package=sphinx
+                ;;
+            coverage)
+                spack_package=py-coverage
+                pip_package=coverage
+                ;;
+            flake8)
+                spack_package=py-flake8
+                pip_package=flake8
+                ;;
+            hg)
+                spack_package=py-mercurial
+                pip_package=mercurial
+                ;;
+            *)
+                spack_package=$dep
+                pip_package=$dep
+                ;;
+        esac
 
         cat << EOF
-ERROR: $package is required to run this script.
+ERROR: $dep is required to run this script.
 
 To install with Spack, run:
-    $ spack install py-$package
+    $ spack install $spack_package
 or, to install with pip, run:
-    $ pip install $package
+    $ pip install $pip_package
 Then add the bin directory to your PATH.
 EOF
         exit 1
diff --git a/share/spack/qa/run-doc-tests b/share/spack/qa/run-doc-tests
index bde30f74cc02aa1741c0137e8e0fb8c3f5e55962..9feaa3b3e3e05d043acb5f38c4af217e8087e204 100755
--- a/share/spack/qa/run-doc-tests
+++ b/share/spack/qa/run-doc-tests
@@ -18,6 +18,7 @@ DOC_DIR="$SPACK_ROOT/lib/spack/docs"
 
 # Array of dependencies
 deps=(
+    sphinx-apidoc
     sphinx-build
     hg
 )
diff --git a/share/spack/qa/run-unit-tests b/share/spack/qa/run-unit-tests
index 9ce3062e58f4655ba7723e97d91081d00bb67197..fe2166d2dc0b1c4c2c993fd0d77548762eaac4fe 100755
--- a/share/spack/qa/run-unit-tests
+++ b/share/spack/qa/run-unit-tests
@@ -20,6 +20,7 @@ SPACK_ROOT="$QA_DIR/../../.."
 # Array of dependencies
 deps=(
     coverage
+    hg
 )
 
 # Check for dependencies
@@ -28,6 +29,10 @@ deps=(
 # Add Spack to the PATH.
 export PATH="$SPACK_ROOT/bin:$PATH"
 
+# Move to root directory of Spack
+# Allows script to be run from anywhere
+cd "$SPACK_ROOT"
+
 # Array of directories containing core Spack framework
 core_dirs=(
     bin
@@ -57,4 +62,4 @@ spack config get compilers
 spack install -v libdwarf
 
 # Run unit tests with code coverage
-coverage run spack test "$@"
+coverage run bin/spack test "$@"
diff --git a/var/spack/repos/builtin/packages/py-coverage/package.py b/var/spack/repos/builtin/packages/py-coverage/package.py
index c2a698b0bdddc5a6680cce089dd735c5c38e233b..1a5b6df3d7ce5d3642a21a3c4d6e06f4768095e9 100644
--- a/var/spack/repos/builtin/packages/py-coverage/package.py
+++ b/var/spack/repos/builtin/packages/py-coverage/package.py
@@ -27,7 +27,7 @@
 
 class PyCoverage(Package):
     """ Testing coverage checker for python """
-    # FIXME: add a proper url for your package's homepage here.
+
     homepage = "http://nedbatchelder.com/code/coverage/"
     url      = "https://pypi.python.org/packages/source/c/coverage/coverage-4.0a6.tar.gz"
 
diff --git a/var/spack/repos/builtin/packages/py-mercurial/package.py b/var/spack/repos/builtin/packages/py-mercurial/package.py
new file mode 100644
index 0000000000000000000000000000000000000000..b1b9ffa1b1f670ef9a3b4e0b610b120039ba3d8c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-mercurial/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyMercurial(Package):
+    """Mercurial is a free, distributed source control management tool.
+    It efficiently handles projects of any size and offers an easy and
+    intuitive interface."""
+
+    homepage = "https://www.mercurial-scm.org/"
+    url = "https://pypi.python.org/packages/source/m/mercurial/mercurial-3.9.tar.gz"
+
+    version('3.9', 'e2b355da744e94747daae3a5339d28a0',
+            url="https://pypi.python.org/packages/22/73/e8ef24d3cb13e4fa2695417e13fd22effa1c8e28465eea91a9f84aa922cd/mercurial-3.9.tar.gz")
+
+    extends('python')
+
+    depends_on('py-setuptools', type='build')
+
+    def install(self, spec, prefix):
+        setup_py('install', '--prefix={0}'.format(prefix))