def test_tronfig_failure(self): self.start_with_config(SINGLE_ECHO_CONFIG) bad_config = 'this is not valid: yaml: is it?' def test_return_code(exc): assert_equal(exc.returncode, 1) assert_raises_such_that(CalledProcessError, test_return_code, self.sandbox.tronfig, bad_config)
def test_callable_is_called_with_all_arguments(self): """Tests that the callable form works properly, with all arguments passed through.""" message_is_foo = lambda e: assert_equal(str(e), 'foo') class GoodArguments(Exception): pass arg1, arg2, kwarg = object(), object(), object() def check_arguments(*args, **kwargs): assert_equal((arg1, arg2), args) assert_equal({'kwarg': kwarg}, kwargs) raise GoodArguments('foo') assertions.assert_raises_such_that(GoodArguments, message_is_foo, check_arguments, arg1, arg2, kwarg=kwarg)
def test_fails_when_exception_test_fails(self): """Tests that when an exception of the right type that fails the passed in exception test is raised, the assertion fails.""" has_two_args = lambda e: assertions.assert_length(e.args, 2) with assertions.assert_raises(AssertionError): with assertions.assert_raises_such_that(Exception, has_two_args): raise Exception("only one argument")
def test_passes_when_correct_exception_is_raised(self): """Tests that when an exception of the right type that passes the exception test is raised, the assertion passes.""" def has_two_args(e): assertions.assert_length(e.args, 2) with assertions.assert_raises_such_that(Exception, has_two_args): raise Exception("first", "second")
def test_fails_when_no_exception_is_raised(self): """Tests that the assertion fails when no exception is raised.""" def exists(e): return True with assertions.assert_raises(AssertionError): with assertions.assert_raises_such_that(Exception, exists): pass
def test_fails_when_wrong_exception_is_raised(self): """Tests that when an unexpected exception is raised, that it is passed through and the assertion fails.""" exists = lambda e: True # note: in assert_raises*, if the exception raised is not of the # expected type, that exception just falls through with assertions.assert_raises(Exception): with assertions.assert_raises_such_that(AssertionError, exists): raise Exception("the wrong exception")
def test_max_elements_to_print_eq_0_means_no_sample_message(self): """Tests that when max_elements_to_print is 0, there is no sample in the error message.""" iterable = [1, 2, 3] expected_message = "iterable %s was unexpectedly non-empty." % iterable def message_has_no_sample(exception): assertions.assert_equal(str(exception), expected_message) with assertions.assert_raises_such_that( AssertionError, message_has_no_sample): assertions.assert_empty(iterable, max_elements_to_print=0)
def test_max_elements_to_print_eq_0_means_no_sample_message(self): """Tests that when max_elements_to_print is 0, there is no sample in the error message.""" iterable = [1, 2, 3] expected_message = "iterable %s was unexpectedly non-empty." % iterable def message_has_no_sample(exception): assertions.assert_equal(str(exception), expected_message) with assertions.assert_raises_such_that(AssertionError, message_has_no_sample): assertions.assert_empty(iterable, max_elements_to_print=0)
def test_max_elements_to_print_eq_len_means_whole_iterable_sample_message(self): """ Tests that when max_elements_to_print is equal to the length of the whole iterable, the whole iterable is printed. """ elements = [1, 2, 3, 4, 5] iterable = (i for i in elements) expected_message = "iterable %s was unexpectedly non-empty. elements: %s" \ % (iterable, elements) def message_has_whole_iterable_sample(exception): assertions.assert_equal(str(exception), expected_message) with assertions.assert_raises_such_that( AssertionError, message_has_whole_iterable_sample): assertions.assert_empty(iterable, max_elements_to_print=len(elements))
def test_max_elements_to_print_lt_len_means_partial_iterable_sample_message(self): """ Tests that when max_elements_to_print is less than the length of the whole iterable, the first max_elements_to_print elements are printed. """ elements = [1, 2, 3, 4, 5] iterable = (i for i in elements) max_elements_to_print = len(elements) - 1 expected_message = "iterable %s was unexpectedly non-empty. first %i elements: %s" \ % (iterable, max_elements_to_print, elements[:max_elements_to_print]) def message_has_whole_iterable_sample(exception): assertions.assert_equal(str(exception), expected_message) with assertions.assert_raises_such_that( AssertionError, message_has_whole_iterable_sample): assertions.assert_empty(iterable, max_elements_to_print=max_elements_to_print)
def test_max_elements_to_print_eq_len_means_whole_iterable_sample_message( self): """ Tests that when max_elements_to_print is equal to the length of the whole iterable, the whole iterable is printed. """ elements = [1, 2, 3, 4, 5] iterable = (i for i in elements) expected_message = "iterable %s was unexpectedly non-empty. elements: %s" \ % (iterable, elements) def message_has_whole_iterable_sample(exception): assertions.assert_equal(str(exception), expected_message) with assertions.assert_raises_such_that( AssertionError, message_has_whole_iterable_sample): assertions.assert_empty(iterable, max_elements_to_print=len(elements))
def test_max_elements_to_print_lt_len_means_partial_iterable_sample_message( self): """ Tests that when max_elements_to_print is less than the length of the whole iterable, the first max_elements_to_print elements are printed. """ elements = [1, 2, 3, 4, 5] iterable = (i for i in elements) max_elements_to_print = len(elements) - 1 expected_message = "iterable %s was unexpectedly non-empty. first %i elements: %s" \ % (iterable, max_elements_to_print, elements[:max_elements_to_print]) def message_has_whole_iterable_sample(exception): assertions.assert_equal(str(exception), expected_message) with assertions.assert_raises_such_that( AssertionError, message_has_whole_iterable_sample): assertions.assert_empty( iterable, max_elements_to_print=max_elements_to_print)