diff --git a/lwr/managers/base/__init__.py b/lwr/managers/base/__init__.py
index 4d9fd8bfa09a7f973c8af009e1ea85ec35435e58..c779195d472db1da6ab61bb5952d20246d75c6e8 100644
--- a/lwr/managers/base/__init__.py
+++ b/lwr/managers/base/__init__.py
@@ -269,7 +269,7 @@ class JobDirectory(RemoteJobDirectory):
             return json.loads(contents)
 
     def has_metadata(self, metadata_name):
-        self.contains_file(metadata_name)
+        return self.contains_file(metadata_name)
 
 
 def get_mapped_file(directory, remote_path, allow_nested_files=False, local_path_module=os.path, mkdir=True):
diff --git a/test/job_directory_test.py b/test/job_directory_test.py
new file mode 100644
index 0000000000000000000000000000000000000000..496aa97cbb40267eeec36732481c0946f89d035b
--- /dev/null
+++ b/test/job_directory_test.py
@@ -0,0 +1,27 @@
+from .test_utils import TempDirectoryTestCase
+from lwr.managers.base import JobDirectory
+import os
+
+TEST_JOB_ID = "1234"
+
+
+class JobDirectoryTestCase(TempDirectoryTestCase):
+
+    def setUp(self):
+        super(JobDirectoryTestCase, self).setUp()
+        self.job_directory = JobDirectory(self.temp_directory, TEST_JOB_ID)
+
+    def test_setup(self):
+        expected_path = os.path.join(self.temp_directory, TEST_JOB_ID)
+        assert not os.path.exists(expected_path)
+        self.job_directory.setup()
+        assert os.path.exists(expected_path)
+
+    def test_metadata(self):
+        self.prep()
+        assert not self.job_directory.has_metadata("MooCow")
+        self.job_directory.store_metadata("MooCow", True)
+        assert self.job_directory.has_metadata("MooCow")
+
+    def prep(self):
+        self.job_directory.setup()