示例#1
0
    def test_get_regressions_by_key_wrong_key(self):
        key = "a.b.c.e.h.j"
        regressions = {
            "a": {
                "b": {
                    "c": {
                        "d": {
                            "e": {
                                "f": ["foo"]
                            }
                        }
                    }
                }
            }
        }

        regr = boot_regressions.get_regressions_by_key(key, regressions)
        self.assertListEqual([], regr)
def find_regressions(doc_id, database):
    """Look for the regressions of a boot report.

    :param doc_id: The id of the boot report to look for regressions.
    :type doc_id: ObjectId
    :return HandlerResponse A HandlerResponse object.
    """
    response = hresponse.HandlerResponse()
    # First make sure we have a valid boot_id value.
    boot_doc = utils.db.find_one2(
        database[models.BOOT_COLLECTION], doc_id)

    if boot_doc:
        regr_idx_doc = utils.db.find_one2(
            database[models.BOOT_REGRESSIONS_BY_BOOT_COLLECTION],
            {models.BOOT_ID_KEY: doc_id})

        if regr_idx_doc:
            spec = {
                models.ID_KEY:
                    regr_idx_doc[models.BOOT_REGRESSIONS_ID_KEY]
            }

            result = utils.db.find_one2(
                database[models.BOOT_REGRESSIONS_COLLECTION],
                spec, fields=[models.REGRESSIONS_KEY])

            if result:
                response.result = get_regressions_by_key(
                    create_regressions_key(boot_doc),
                    result[models.REGRESSIONS_KEY])
                response.count = len(response.result)
    else:
        response.status_code = 404
        response.reason = "Resource '{:s}' not found".format(str(doc_id))

    return response