Sto usando Mock per sostituire il metodo da una classe con uno specifico valore di ritorno. Funziona molto bene, forse un po 'troppo bene ... Faccio questo (vedi sotto), ma nella prossima classe di test, riuso la classe della password senza fare il mocking, e il simulato inserito in quel test è ancora efficace.Python Annulla metodo mock
from utils import password as pass_helper
class TestPassword(unittest.TestCase):
def setUp(self):
self.username = "user"
self.password = "Test_1234_pass"
pass_helper._get_password_from_keyboard = Mock(return_value=self.password)
def test_password(self):
password = pass_helper._get_password_from_keyboard(self.username)
self.assertEqual(password, self.password)
ho provato disfare il mock nel metodo tearDown facendo qualcosa di simile, ma non funziona.
pass_helper._get_password_from_keyboard = pass_helper._get_password_from_keyboard
Come è possibile ripristinare la funzionalità originale del metodo di classe?
Sembra che il problema sia risolto, grazie! :) – Amaranth
dopo averlo fatto, ottengo che 'il metodo unbound xxx deve essere chiamato con l'istanza xxx come primo argomento (ottenuto invece int)' –