diff --git a/downloader_unittest.py b/downloader_unittest.py
index 693689a..51182ac 100755
--- a/downloader_unittest.py
+++ b/downloader_unittest.py
@@ -12,7 +12,7 @@
 import tempfile
 import unittest
 
-import artifact_download
+import downloadable_artifact
 import devserver
 import devserver_util
 import downloader
@@ -56,7 +56,7 @@
     artifacts = []
 
     for index in range(5):
-      artifact = self.mox.CreateMock(artifact_download.DownloadableArtifact)
+      artifact = self.mox.CreateMock(downloadable_artifact.DownloadableArtifact)
       # Make every other artifact synchronous.
       if index % 2 == 0:
         artifact.Synchronous = lambda: True
@@ -72,7 +72,7 @@
     tempfile.mkdtemp(suffix=mox.IgnoreArg()).AndReturn(self._work_dir)
     devserver_util.GatherArtifactDownloads(
         self._work_dir, self.archive_url_prefix, self.build,
-        self._work_dir).AndReturn(artifacts)
+        self._work_dir, self._work_dir).AndReturn(artifacts)
 
     for index, artifact in enumerate(artifacts):
       if index % 2 == 0:
