Mocks Python y propiedades

10 views
Skip to first unread message

David Villa

unread,
Aug 11, 2010, 5:43:24 AM8/11/10
to tdde...@googlegroups.com
Hola:

Bueno, pues creo que el asunto lo dice todo. Necesito una librería de
mocks para Python que soporte properties, es decir, algo como:

class Real:
@property
def p(self):
return 4

--

class TestFoo(unittest.TestCase):
def test_p(self):
mock = Mock() # doble de 'Real'
mock.p = 4

[...]

self.assertTrue(mock.p.called)


Este ejemplo usa python-mock y parece que no hay forma de especificar
una propiedad. O defines un atributo (que no se puede «asertar») o un
método (que no me vale, porque la CUT lo usa como propiedad...

Parece que mox y dingus tampoco sirven, o no sé cómo hacerlo. ¿alguna
idea?

Gracias

signature.asc

Carlos Ble

unread,
Aug 11, 2010, 2:34:45 PM8/11/10
to tdde...@googlegroups.com
Nunca me ha hecho falta hacer eso. Que quieres probar?
--
Carlos Ble
www.MavenCharts.com
www.iExpertos.com
www.carlosble.com

David Villa

unread,
Aug 14, 2010, 8:20:16 PM8/14/10
to tdde...@googlegroups.com, ble.j...@gmail.com
Hola:

Voy a poner un ejemplo mínimo para ilustrarlo porque me va a costar
menos que aislar un cacho de mi programa. Suponiendo que tengo una
clase como la que decía antes:

class A:
@property
def p(self):
return <algún dato derivado>


y otra clase que la usa:

class B:
def __init__(self, a):
self.a = a

def run(self):
<algo que usa> self.a.p


cuyas instancias se crean con:

B(A())


Si quiero hacer un test unitario para probar la clase B y quiero estar
seguro de que se invoca A.p necesito un mock para A.

Obviamente lo puedo hacer con un método normal en lugar de una
property y aunque puede que en este caso me pueda apañar, me
gustaría saber cómo hacer un mock con alguna librería de mocks, si es
posible.

Gracias

On Wed, 11 Aug 2010 19:34:45 +0100
Carlos Ble <ble.j...@gmail.com> osó decir:

signature.asc
Reply all
Reply to author
Forward
0 new messages