python'da sahte bir nesneyi güncelle
Aug 20 2020
Aşağıdaki gibi oluşturulmuş bir alay nesnem var:
with patch('requests.get') as request:
self.request = request
self.request.session = MockSession()
self.request.cookies = {}
Başka bir işlevle nasıl güncellenebilir?
Yanıtlar
2 MrBeanBremen Aug 19 2020 at 23:16
Yama uygulanmış bir nesneyi kaydetmek istiyorsanız, yamayı manuel olarak başlatmalı ve durdurmalısınız. Bağlam yöneticisini (örneğin with patch) kullanırsanız, yama, kapsamdan çıkıldığında geri alınacaktır.
İşte yapabilecekleriniz:
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.')
Gerçek testi kontrol etmediğimi unutmayın - bu, uygulama mantığınıza bağlıdır.
Yama işlemini doğrudan testte de yapabilirsiniz:
@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.')
Donovan, Şarkılarından 1'ini The Beatles'ın "Lucy in the Sky with Diamonds" şarkısıyla karşılaştırdı
Gene Simmons, KISS Çizgi Romanlarının Potansiyel Olarak "İnsanlığı Yeniden Yaratabileceğini" Söyledi
Tom Girardi Dolandırıcılık Suçlamalarından Yargılanma Yetkisinin Belirlenmesi İçin Duruşmaya Katıldı
Kevin Jonas'ın Kızı Alena, Doğum Günü Fotoğrafında Büyümüş Görünüyor: '9 Yaşında Gerçek Hissetmiyor'