def _validate_keys()

in benchmarks/perf-tool/okpt/diff/diff.py [0:0]


    def _validate_keys(self) -> Tuple[bool, str, str]:
        """Ensure both test results have `metadata` and `results` keys."""
        check_keydict = lambda key, res: key in res and isinstance(
            res[key], dict)

        # check if results have a `metadata` field and if `metadata` is a dict
        if self.metadata:
            if not check_keydict(TestResultFields.METADATA, self.base_result):
                return (False, TestResultFields.METADATA, TestResultNames.BASE)
            if not check_keydict(TestResultFields.METADATA,
                                 self.changed_result):
                return (
                    False,
                    TestResultFields.METADATA,
                    TestResultNames.CHANGED
                )
        # check if results have a `results` field and `results` is a dict
        if not check_keydict(TestResultFields.RESULTS, self.base_result):
            return (False, TestResultFields.RESULTS, TestResultNames.BASE)
        if not check_keydict(TestResultFields.RESULTS, self.changed_result):
            return (False, TestResultFields.RESULTS, TestResultNames.CHANGED)
        return (True, '', '')