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 tag = Tag() tag.jobs = [job] tag.tag = "foo456" db.session.add_all([tag, job]) db.session.commit() model_id = tag.id job_id = job.id db.session.remove() result = Tag.query.filter_by(id=model_id).first() self.assertEqual(result.tag, "foo456") self.assertEqual(result.jobs[0].id, job_id)
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")
def test_unique(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") db.session.add(jobtype) job = Job() job.job_type = jobtype software = Software() software.software = "foo" requirementA = JobSoftwareRequirement() requirementB = JobSoftwareRequirement() requirementA.job = job requirementA.software = software requirementB.job = job requirementB.software = software db.session.add_all([job, requirementA, requirementB]) with self.assertRaises(DatabaseError): db.session.commit()