Использование глобальных переменных в тестировании django является наилучшей практикой ..? - PullRequest
1 голос
/ 31 марта 2020

В django тестировании У меня есть поле Imagefield, которое используется во многих тестовых случаях. Чтобы избежать повторения, я назначил объект Imagefile глобальной переменной

file = open(os.path.join(settings.BASE_DIR, 'logged_out.jpg'), 'rb')
image = {'image':SimpleUploadedFile(name=file.name, content=file.read(), content_type='image/jpeg')}

class FeedFormTest(TestCase):

    def setUp(self):
        self.user = baker.make(SnetUser)
        self.data = {
            'post_info':'Test_data',
        }

    def test_feed_form_is_valid(self):
        #Option 1 Not working
        #self.data.update(image)
        #form = FeedForm(self.data)
        #Option 2 Not working
        #form = FeedForm(self.data, image)
        #Option 3 Working
        form = FeedForm(self.data, image) #locally defined image in SetUp method instead globally
        print(form.errors)
        self.assertTrue(form.is_valid())

Когда я выполняю тест он работает только для изображения, которое определено внутри метода setUp тестового класса. Можете ли вы предложить или направить мне метод эффективного использования переменных, не определяя их несколько раз. Поскольку у меня есть и другие переменные, такие как учетные данные пользователя

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...