def __do_test_observation_failure_verifier_with_error(self, klass): context = ExecutionContext() valid = klass == IOError error = klass('Could not connect') observation = jc.Observation() observation.add_error(error) verifier = TestIoErrorFailureVerifier('Test') result = verifier(context, observation) self.assertEqual(valid, result.valid) if valid: attempt = jp.ObjectResultMapAttempt( observation, jc.ObservationFailedError([error], valid=valid)) self.assertFalse(result.bad_results) self.assertEqual([attempt], result.good_results) self.assertEqual('HAVE Could not connect', result.comment) else: attempt = jp.ObjectResultMapAttempt( observation, jp.PredicateResult(valid=False, comment='Expected error was not found.')) self.assertFalse(result.good_results) self.assertEqual([attempt], result.bad_results) self.assertEqual('Expected error was not found.', result.comment)
def test_obsolete_observation_failure_ok(self): error_text = 'the error' context = ExecutionContext() observation = jc.Observation() error = ValueError(error_text) observation.add_error(error) failure_verifier = TestObsoleteObservationFailureVerifier( 'Test', error_text) failure_pred_result = jc.ObservationFailedError([error], valid=True) expect_failure = jc.ObservationVerifyResult( valid=True, observation=observation, good_results=[jp.ObjectResultMapAttempt(observation, failure_pred_result)], bad_results=[], failed_constraints=[], comment=_TEST_FOUND_ERROR_COMMENT) got = failure_verifier(context, observation) self.assertEqual(expect_failure, got) builder = jc.ObservationVerifierBuilder(title='Test') builder.EXPECT(failure_verifier) verifier = builder.build() expect = jc.ObservationVerifyResult( valid=True, observation=observation, good_results=expect_failure.good_results, bad_results=[], failed_constraints=[]) got = verifier(context, observation) self.assertEqual(expect, got)
def test_observation_failed_error_equal(self): self.assertEqual(jc.ObservationFailedError([], valid=True), jc.ObservationFailedError([], valid=True)) self.assertEqual( jc.ObservationFailedError([ValueError('blah')], valid=True), jc.ObservationFailedError([ValueError('blah')], valid=True)) self.assertNotEqual(jc.ObservationFailedError([], valid=True), jc.ObservationFailedError([], valid=False)) self.assertNotEqual( jc.ObservationFailedError([ValueError('blah')], valid=True), jc.ObservationFailedError([TypeError('blah')], valid=True))