diff --git a/lib/spack/spack/cmd/test-install.py b/lib/spack/spack/cmd/test-install.py
index 76602474a413810a2a0a656110091f74503b5c48..58ab40aa7b00303933fb21aea27d70f1232376d7 100644
--- a/lib/spack/spack/cmd/test-install.py
+++ b/lib/spack/spack/cmd/test-install.py
@@ -34,6 +34,7 @@
 
 import spack
 from spack.build_environment import InstallError
+from spack.fetch_strategy import FetchError
 import spack.cmd
 
 description = "Treat package installations as unit tests and output formatted test results"
@@ -132,6 +133,9 @@ def create_test_output(topSpec, newInstalls, output, getLogFunc=fetch_log):
             depBID = BuildId(dep)
             errOutput = "Skipped due to failed dependency: {0}".format(
                 depBID.stringId())
+        elif (not package.installed) and (not package.stage.archive_file):
+            result = TestResult.FAILED
+            errOutput = "Failure to fetch package resources."
         elif not package.installed:
             result = TestResult.FAILED
             lines = getLogFunc(package.build_log_path)
@@ -196,6 +200,8 @@ def test_install(parser, args):
                     fake=False)
             except InstallError:
                 pass
+            except FetchError:
+                pass
    
     jrf = JunitResultFormat()
     handled = {}
diff --git a/lib/spack/spack/stage.py b/lib/spack/spack/stage.py
index 008c5f04298baa650d69602bc9d35d60cd0b95db..78930ecb5b2b110042ec9d483b2916f5c854d6ad 100644
--- a/lib/spack/spack/stage.py
+++ b/lib/spack/spack/stage.py
@@ -261,7 +261,8 @@ def fetch(self):
                 tty.debug(e)
                 continue
         else:
-            tty.die("All fetchers failed for %s" % self.name)
+            errMessage = "All fetchers failed for %s" % self.name
+            raise fs.FetchError(errMessage, None)
 
 
     def check(self):
diff --git a/lib/spack/spack/test/unit_install.py b/lib/spack/spack/test/unit_install.py
index 2a94f8fec0af2bd67f03087f59191a37c5c36b14..c4b9092f05123a6625a370d3cc4d028a346cb910 100644
--- a/lib/spack/spack/test/unit_install.py
+++ b/lib/spack/spack/test/unit_install.py
@@ -105,6 +105,8 @@ def test_dependency_already_installed(self):
         
         self.assertEqual(mo.results, {bIdX:test_install.TestResult.PASSED})
 
+    #TODO: add test(s) where Y fails to install
+
 class MockPackageDb(object):
     def __init__(self, init=None):
         self.specToPkg = {}