def assertIncidentsEqual( self, incidentA: Incident, incidentB: Incident, ignoreAutomatic: bool = False, ) -> None: if incidentA != incidentB: messages = [] for attribute in attrFields(Incident): name = attribute.name valueA = getattr(incidentA, name) valueB = getattr(incidentB, name) if name == "created": if dateTimesEqualish(valueA, valueB): continue else: messages.append(f"{name} delta: {valueA - valueB}") elif name == "reportEntries": if reportEntriesEqualish(valueA, valueB, ignoreAutomatic): continue if valueA != valueB: messages.append(f"{name} {valueA!r} != {valueB!r}") if messages: self.fail("Incidents do not match:\n" + "\n".join(messages))
def assertIncidentReportsEqual( self, store: TestDataStoreABC, incidentReportA: IncidentReport, incidentReportB: IncidentReport, ignoreAutomatic: bool = False, ) -> None: if incidentReportA != incidentReportB: messages = [] for attribute in attrFields(IncidentReport): name = attribute.name valueA = getattr(incidentReportA, name) valueB = getattr(incidentReportB, name) if name == "created": if store.dateTimesEqual(valueA, valueB): continue else: messages.append(f"{name} delta: {valueA - valueB}") elif name == "reportEntries": if store.reportEntriesEqual( valueA, valueB, ignoreAutomatic ): continue if valueA != valueB: messages.append(f"{name} {valueA!r} != {valueB!r}") if messages: self.fail( "incident reports do not match:\n" + "\n".join(messages) )