def test_translate_highlevel_save_bundle_modifs_only(self):
        """
        Ensures that a Bundle is saved successfully to the DB when all the messages are there already.
        :return:
        """
        # Create some bundles to attach.
        b = models.Bundle("all_ALL", "ALL")
        b.app = self.tapp
        m1 = models.Message("message1", "First Message")
        m2 = models.Message("message2", "Second Message")
        b.messages.append(m1)
        b.messages.append(m2)
        db.session.add(b)
        db.session.commit()

        bundle = ops_highlevel.load_bundle(self.tapp, "all_ALL", "ALL")
        bundle.add_msg("message1", "First Message Modified")
        bundle.add_msg("message2", "Second Message Modified")

        ops_highlevel.save_bundle(self.tapp, bundle)

        # Check that it was saved properly.
        m1 = db.session.query(models.Message).filter_by(bundle=b, key="message1").first()
        self.assertEquals("First Message Modified", m1.value)
        m2 = db.session.query(models.Message).filter_by(bundle=b, key="message2").first()
        self.assertEquals("Second Message Modified", m2.value)

        msgs = db.session.query(models.Message).filter_by(bundle=b).all()
        self.assertEquals(2, len(msgs))
    def test_translate_highlevel_save_full_new_bundle_new_only(self):
        """
        Ensures that a Bundle is saved successfully to the DB when the messages are *not* there already,
        and when the Bundle is not in the database either.
        :return:
        """

        bundle = bundles.Bundle("all", "ALL", "ALL")
        bundle.add_msg("message1", "First Message")
        bundle.add_msg("message2", "Second Message")

        ops_highlevel.save_bundle(self.tapp, bundle)

        b = db.session.query(models.Bundle).filter_by(app=self.tapp, lang="all_ALL", target="ALL").first()
        self.assertIsNotNone(b, "The bundle was created and returned")

        # Check that it was saved properly.
        m1 = db.session.query(models.Message).filter_by(bundle=b, key="message1").first()
        self.assertEquals("First Message", m1.value)
        m2 = db.session.query(models.Message).filter_by(bundle=b, key="message2").first()
        self.assertEquals("Second Message", m2.value)

        msgs = db.session.query(models.Message).filter_by(bundle=b).all()
        self.assertEquals(2, len(msgs))