Szyderczy test w Django nie działa, gdy działa wszystko w TestCase, ale działa dobrze jeden po drugim

Używam python mock do łatania niektórych funkcji i klas podczas testowania widoków w Django.

Jeśli wykonuję każdy test niezależnie, wszystkie testy działają. Ale kiedy uruchamiam TestCase, jakiś test nie działa (łatka nie działa).

class ViewsTest(TestCase):
    @mock.patch('extras.utils.get_user_category')
    def test_select_test(self, mock_method):        
        mock_method.return_value = Category(id=1, name="Foo")

        response = self.client.post(reverse('select_test', args=['Foo']))

        self.assertEqual(200, self.client.post(reverse('select')).status_code)

    @mock.patch('user_profile.models.Profile.categories')
    def test_category_view(self, mock_related):      
        mock_related.all.return_value = []

        self.assertEqual(200, self.client.post(reverse('category')).status_code)

Mam wydruki w widokach, aby zobaczyć każdą szyderczą metodę, kiedy to działa, drukuje:

MagicMock name = 'get_user_category' id = '162815756'

A kiedy nie działa, widzę:

funkcja get_user_category na 0x8e0fb8c

Próbowałem patchera start () i stop (), ale nadal mam problemy.

Jaki jest problem?

questionAnswers(1)

yourAnswerToTheQuestion