Example #1
0
    def test_software(self):
        for agent_foobar in self.models(limit=1):
            db.session.add(agent_foobar)

            # create some software version tags
            software_version_objects = []
            for software_name in ("foo", "bar", "baz"):
                software = Software()
                software.agents = [agent_foobar]
                software.software = software_name
                software_version = SoftwareVersion()
                software_version.software = software
                software_version.version = "1"
                software_version.rank = 1
                software_version_objects.append(
                    (software.software, software_version.version))
                agent_foobar.software_versions.append(software_version)

            db.session.commit()
            agent_id = agent_foobar.id
            db.session.remove()

            agent = Agent.query.filter_by(id=agent_id).first()
            self.assertIsNotNone(agent)

            agent_software_versions = list(
                (str(i.software.software), str(i.version))
                for i in agent.software_versions)
            software_version_objects.sort()
            agent_software_versions.sort()
            self.assertListEqual(agent_software_versions,
                                 software_version_objects)
Example #2
0
def add_software_version(software_id):
    software = Software.query.filter_by(id=software_id).first()
    if not software:
        return (render_template("pyfarm/error.html",
                                error="Software %s not found" % software_id),
                NOT_FOUND)

    version = SoftwareVersion(software=software,
                              version=request.form["version"],
                              rank=int(request.form["rank"]))
    db.session.add(version)
    db.session.commit()

    flash("Version %s has been added." % version.version)

    return redirect(url_for("single_software_ui", software_id=software.id),
                    SEE_OTHER)