perbarui objek tiruan dengan python
Aug 20 2020
Saya memiliki objek tiruan yang dibuat sebagai berikut:
with patch('requests.get') as request:
self.request = request
self.request.session = MockSession()
self.request.cookies = {}
Bagaimana itu bisa diperbarui melalui fungsi lain
Jawaban
2 MrBeanBremen Aug 19 2020 at 23:16
Jika Anda ingin menyimpan objek yang ditambal, Anda harus memulai dan menghentikan penambalan secara manual. Jika Anda menggunakan manajer konteks (misalnya with patch
), penambalan akan dikembalikan saat keluar dari ruang lingkup.
Inilah yang dapat Anda lakukan:
class TestSomething(unittest.TestCase):
def setUp(self):
self.patcher = patch('requests.get') # returns the patcher object
self.request = self.patcher.start() # returns the patched object
self.request.session = MockSession()
self.request.cookies = {}
def tearDown(self):
sef.patcher.stop()
def test_03_set_nonce(self):
self.web_session.set_nonce(self.request)
self.assertTrue(len(self.request.cookies) > 0, 'set_nonce failed.')
Perhatikan bahwa saya tidak memeriksa pengujian yang sebenarnya - ini tergantung pada logika aplikasi Anda.
Anda juga dapat melakukan penambalan langsung dalam pengujian:
@patch('requests.get')
def test_03_set_nonce(self, request):
request.session = MockSession()
request.cookies = {}
self.web_session.set_nonce(request)
self.assertTrue(len(request.cookies) > 0, 'set_nonce failed.')
Kiat Pemilik Anjing yang Bermanfaat: Mengapa Penting untuk Membiarkan Anjing Anda Mengendus di Jalan
Jana Duggar: Semua yang Dia Katakan Tentang Cinta dan Jendela 5 Tahunnya untuk Menemukan 'Yang Satu'