[Python] Mock... non capisco la patch

Karim lemieliste a gmail.com
Gio 8 Set 2016 12:13:42 CEST


Salve a tutti, ho un codice che non riesco a capire...

ho un test che mi patcha una funzione:

from tests.utils import mock_session_oauth

    @patch('app.tasks._create_session')
    def test_refresh_token_task(self, create_session_mocked):
        create_oauth_session_mocked.return_value = mock_session_oauth()
          # qui esegui i miei test...


`mock_session_oauth` restituisce un oggetto Mock con vari settaggi che mi
servono. L'ho provato da shell e funziona. Si comporta esattamente come
voglio.

Ora io vorrei che `create_session_mocked` diventi quell'oggetto e lo faccio
all'inizio del testo. In realta' `create_session_mocked` non ha il mio
MagicMock restituito dalla funzione, ma un MagicMock restituto da patch
come se non avessi fatto nessun assign.

Ora mi chiedo come mai succede questo.

Inoltre ho capito che non e' il modo giusto per fare questa operazione, io
vorrei che la patch mi usasse direttamente il mock che restituisce la mia
funzione senza troppi fronzoli, puo' farlo? Puo' anche passare dei
parametri alla funzione, nel caso volessi? Forse e' meglio usare il with?

Grazie per gli eventuali chiarimenti.

-- 
Karim N. Gorjux
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20160908/ebfe5bf6/attachment.html>


Maggiori informazioni sulla lista Python