diff --git a/server/utils_unittest.py b/server/utils_unittest.py
index d28ec16..002164e 100644
--- a/server/utils_unittest.py
+++ b/server/utils_unittest.py
@@ -8,23 +8,23 @@
 
 
 class UtilsTest(unittest.TestCase):
-	
-	def setUp(self):
-		# define out machines here
-		self.machines = ['mach1', 'mach2', 'mach3', 'mach4', 'mach5', 
-					'mach6', 'mach7']
-		
-		self.ntuples = [['mach1', 'mach2'], ['mach3', 'mach4'],
-				['mach5', 'mach6']]
-		self.failures = []
-		self.failures.append(('mach7', "machine can not be tupled"))
+
+    def setUp(self):
+        # define out machines here
+        self.machines = ['mach1', 'mach2', 'mach3', 'mach4', 'mach5',
+                                'mach6', 'mach7']
+
+        self.ntuples = [['mach1', 'mach2'], ['mach3', 'mach4'],
+                        ['mach5', 'mach6']]
+        self.failures = []
+        self.failures.append(('mach7', "machine can not be tupled"))
 
 
-	def test_form_cell_mappings(self):
-		(ntuples, failures) = utils.form_ntuples_from_machines(self.machines)
-		self.assertEquals(self.ntuples, ntuples)
-		self.assertEquals(self.failures, failures)
+    def test_form_cell_mappings(self):
+        (ntuples, failures) = utils.form_ntuples_from_machines(self.machines)
+        self.assertEquals(self.ntuples, ntuples)
+        self.assertEquals(self.failures, failures)
 
 
 if __name__ == "__main__":
-	unittest.main()
+    unittest.main()
