def test_unique(self): job = Job() softwareA = Software() softwareB = Software() softwareA.jobs = [job] softwareA.software = "foo" softwareB.jobs = [job] softwareB.software = "foo" db.session.add_all([job, softwareA, softwareB]) with self.assertRaises(DatabaseError): db.session.commit()
def test_insert(self): # A job can not be created without a jobtype, create one first jobtype = JobType() jobtype.name = "foo" jobtype.description = "this is a job type" jobtype.classname = "Foobar" jobtype.code = dedent(""" class Foobar(JobType): pass""").encode("utf-8") jobtype.mode = JobTypeLoadMode.OPEN db.session.add(jobtype) job = Job() job.job_type = jobtype software = Software() software.jobs = [job] software.software = "foo" db.session.add_all([job, software]) db.session.commit() job_id = job.id software_id = software.id db.session.remove() software = Software.query.filter_by(id=software_id).first() self.assertEqual(software.jobs[0].id, job_id) self.assertEqual(software.software, "foo") self.assertEqual(software.version, "any")