def test_name_uniqueness(self): """ Ensure that a builder cannot have multiple steps with the same name or position """ b = Builder(project=self.project, name="my builder") b.save() s = CompileStep( builder = b, name = "compile the code", command = "make", ) s.save() self.assertNotEqual(s.id, None) # another step, same name s2 = CompileStep( builder = b, name = "compile the code", command = "make", ) self.assertRaises(IntegrityError, s2.save) self.assertEqual(s2.id, None) # try a different name s2.name = "another name" s2.save() self.assertNotEqual(s2.id, None) # try forcing same position s2.position = s.position self.assertRaises(IntegrityError, s2.save) # should be ok to have dups with a different builder b2 = Builder(project=self.project, name="my builder2") b2.save() s3 = CompileStep( builder = b2, name = "compile the code", command = "make", ) s3.save() self.assertNotEqual(s3.id, None)
def test_position_integrity(self): """ Ensure that position cannot be duplicated """ b = Builder(project=self.project, name="my builder") b.save() s = CompileStep( builder = b, name = "compile the code", command = "make", ) s.save() self.assertNotEqual(s.id, None) self.assertEqual(s.position, 0) s2 = CompileStep( builder = b, name = "compile the code 2", command = "make", ) s2.save() s2.position = 0 self.assertRaises(IntegrityError, s2.save)