atributos Python burlándose

votos
0

Tenía una entrada anterior con problemas de burlarse de un recv zócalo y me encontré con otro tema en otra prueba usando maqueta que son similares en sus errores y creo que todo se reduce a una mala comprensión general de la maqueta. Así que estoy aquí haciendo un nuevo post porque el problema original es más amplio.

Tengo el siguiente código:

import custom_lib

class classA:
    def __init__.py(self):
        self.s = socket.socket(socket.AF_INET,socket.STREAM)
        self.p = custom_lib.classB()
    def functionA:
        buf = self.s.recv.decode()
        self.p.somefunction()

Y este código funcionará sin problemas, ahora quiero burlarse tanto socket / custom_lib en el código de prueba y lo hago de la siguiente manera:

import unittest.mock
import pytest

def test_functionA:
    with mock.patch('custom_lib.ClassB.somefunction') as mock_somefunc:
        mock_somefunc.return_value = hello
        with mock.patch('socket.socket') as mock_socket:
            mock_socket.return_value.recv.decode.return_value = hello123
            A = classA()
            A.functionA()

Sin embargo, con ambas partes simuladas, se ejecutará a través de la funciónA y decir que / atributos no existen esas funciones. Leí en alguna parte que no se puede burlarse de las variables que se realizan dentro de una clase, pero de todos modos hay a su alrededor?

Publicado el 19/09/2018 a las 17:14
fuente por usuario
En otros idiomas...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more