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_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)
Ejemplo n.º 3
0
    def test_basic_insert(self):
        value_name = "foo"
        value_description = "this is a job type"
        value_classname = "Foobar"
        value_code = dedent("""
        class %s(JobType):
            pass""" % value_classname)
        value_mode = JobTypeLoadMode.OPEN

        # create jobtype
        jobtype = JobType()
        jobtype.name = value_name
        jobtype.description = value_description
        jobtype.classname = value_classname
        jobtype.code = value_code
        jobtype.mode = value_mode
        db.session.add(jobtype)
        db.session.commit()

        # store id and remove the session
        jobtypeid = jobtype.id
        db.session.remove()

        jobtype = JobType.query.filter_by(id=jobtypeid).first()
        self.assertEqual(jobtype.name, value_name)
        self.assertEqual(jobtype.description, value_description)
        self.assertEqual(jobtype.classname, value_classname)
        self.assertEqual(jobtype.code, value_code)
        self.assertEqual(jobtype.mode, value_mode)
    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()
Ejemplo n.º 5
0
    def test_before_insert_parent_class(self):
        value_name = "foo"
        value_description = "this is a job type"
        value_classname = "Foobar"
        value_code = dedent("""
        class %s(object):
            pass""" % value_classname).encode("utf-8")

        # create jobtype
        jobtype = JobType()
        jobtype.name = value_name
        jobtype.description = value_description
        jobtype.classname = value_classname
        jobtype.code = value_code
        jobtype.mode = JobTypeLoadMode.DOWNLOAD
        db.session.add(jobtype)

        with self.assertRaises(SyntaxError):
            db.session.commit()