def testCheckAndReportWithoutErrorsAndWarnings(self,
                                                 logMock,
                                                 runAllChecksMock,
                                                 _getMetricsFromDynamodbMock,
                                                 _repositoryModuleMock,):

    runAllChecksMock.return_value = ((), ())

    result = check_model_consistency.checkAndReport(verbose=False,
                                                    warningsAsErrors=False)
    self.assertEqual(result, 0)
    self.assertEqual(logMock.handle.call_count, 0)

    # Check again with verbose and warningsAsErrors turned on
    result = check_model_consistency.checkAndReport(verbose=True,
                                                    warningsAsErrors=True)
    self.assertEqual(result, 0)

    logMock.info.assert_any_call("Warnings: 0")
    logMock.info.assert_any_call("Errors: 0")
  def testCheckAndReportWithWarnings(self,
                                     logMock,
                                     runAllChecksMock,
                                     _getMetricsFromDynamodbMock,
                                     _repositoryModuleMock,):

    warnings = (("caption1", "details1"), ("caption2", "details2"))
    errors = ()

    runAllChecksMock.return_value = (warnings, errors)

    result = check_model_consistency.checkAndReport(verbose=False,
                                                    warningsAsErrors=False)
    self.assertEqual(result, 0)

    logMock.warn.assert_any_call("Warnings: %s", 2)


    # Check again with warningsAsErrors turned on
    result = check_model_consistency.checkAndReport(verbose=False,
                                                    warningsAsErrors=True)
    self.assertEqual(result, 1)
    def testCheckAndReportWithoutErrorsAndWarnings(
        self,
        logMock,
        runAllChecksMock,
        _getMetricsFromDynamodbMock,
        _repositoryModuleMock,
    ):

        runAllChecksMock.return_value = ((), ())

        result = check_model_consistency.checkAndReport(verbose=False,
                                                        warningsAsErrors=False)
        self.assertEqual(result, 0)
        self.assertEqual(logMock.handle.call_count, 0)

        # Check again with verbose and warningsAsErrors turned on
        result = check_model_consistency.checkAndReport(verbose=True,
                                                        warningsAsErrors=True)
        self.assertEqual(result, 0)

        logMock.info.assert_any_call("Warnings: 0")
        logMock.info.assert_any_call("Errors: 0")
    def testCheckAndReportWithWarnings(
        self,
        logMock,
        runAllChecksMock,
        _getMetricsFromDynamodbMock,
        _repositoryModuleMock,
    ):

        warnings = (("caption1", "details1"), ("caption2", "details2"))
        errors = ()

        runAllChecksMock.return_value = (warnings, errors)

        result = check_model_consistency.checkAndReport(verbose=False,
                                                        warningsAsErrors=False)
        self.assertEqual(result, 0)

        logMock.warn.assert_any_call("Warnings: %s", 2)

        # Check again with warningsAsErrors turned on
        result = check_model_consistency.checkAndReport(verbose=False,
                                                        warningsAsErrors=True)
        self.assertEqual(result, 1)