예제 #1
0
 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)
예제 #2
0
    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)
예제 #3
0
 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)
예제 #4
0
 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")
예제 #5
0
 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")
예제 #6
0
 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")
예제 #7
0
 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
예제 #8
0
    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")
예제 #9
0
    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
예제 #10
0
 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")
예제 #11
0
 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")
예제 #12
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)
예제 #13
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)
예제 #14
0
    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)
예제 #15
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))
예제 #16
0
    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)
예제 #17
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))
예제 #18
0
    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)