Kamil,

Maybe I am missing something, but you can test for exceptions like this:

class TestSomething(unittest.TestCase):

    def test_something_that_raises_an_exception(self):
        *with self.assertRaises(Exception):*
            # Do something that is supposed to raise an exception

John

On 03/08/18 20:52, Kamil Pluciński wrote:
Hi all ;)
I work with this ticket: 29024 <https://code.djangoproject.com/ticket/29024>. I changed decorate_class function in TextContextDecorator <https://github.com/django/django/blob/master/django/test/utils.py#L313>:
def setUp(inner_self):
     context = self.enable()
     if self.attr_name:
         setattr(inner_self, self.attr_name, context)
     try:
         decorated_setUp(inner_self)
     except:
         self.disable()
         raise Exception

I have to test it, so I tried something like this:
class TestContextDecoratorImplementation(TestContextDecorator):
     some_var =False     def enable(self):
         self.__class__.some_var =True     def disable(self):
         self.__class__.some_var =False class 
TestContextDecoratorTests(SimpleTestCase):

     def test_disable_method_after_exception(self):

         @TestContextDecoratorImplementation()
         class TestWithException(unittest.TestCase):
             def setUp(self):
                 raise Exception("HIDE THIS")

             def test_var_is_true(self):
                 self.assertTrue(TestContextDecoratorImplementation.some_var)


         class SimpleTest(unittest.TestCase):
             def test_var_is_false(self):
                 self.assertFalse(TestContextDecoratorImplementation.some_var)

         runTest =lambda test: unittest.TextTestRunner().run(test)

         result = runTest(TestWithException('test_var_is_true'))
         self.assertEqual(result.testsRun, 1)
         self.assertEqual(len(result.errors), 1)

         result = runTest(SimpleTest('test_var_is_false'))
         self.assertEqual(result.testsRun, 1)
         self.assertEqual(len(result.failures), 0)

but I can`t remove exceptions from logs:
|
System check identified no issues (0 silenced).
E
======================================================================
ERROR: test_var_is_true (test_utils.tests.TestContextDecoratorTests.test_disable_method_after_exception.<locals>.TestWithException)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/pluto/git/django/django/django/test/utils.py", line 351, in setUp
decorated_setUp(inner_self)
  File "/home/pluto/git/django/django/tests/test_utils/tests.py", line 1244, in setUp
raise Exception("HIDE THIS")
Exception: HIDE THIS

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/pluto/git/django/django/django/test/utils.py", line 354, in setUp
raise Exception
Exception

----------------------------------------------------------------------
Ran 1 test in 0.000s

FAILED (errors=1)
.
----------------------------------------------------------------------
Ran 1 test in 0.000s

OK
.
----------------------------------------------------------------------
Ran 1 test in 0.001s

OK

|

How can I hide it? Or what is good way to test this class?
Regards :D
--
You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected] <mailto:[email protected]>. To post to this group, send email to [email protected] <mailto:[email protected]>.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/69e80b65-c604-45cf-b48b-e46200d56780%40googlegroups.com <https://groups.google.com/d/msgid/django-users/69e80b65-c604-45cf-b48b-e46200d56780%40googlegroups.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Django 
users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/7cd7e0fd-9d78-ba59-d17a-5ed5ab5ed31b%40martinhome.org.uk.
For more options, visit https://groups.google.com/d/optout.

Reply via email to