Articles of burlándose

¿Cómo simular llamadas de función encadenadas en python?

Estoy usando la biblioteca simulada escrita por Michael Foord para ayudarme con mis pruebas en una aplicación django. Me gustaría probar que estoy configurando mi consulta correctamente, pero no creo que deba realmente llegar a la base de datos, así que estoy tratando de burlarme de la consulta. Puedo burlarme bien de la primera parte […]

Python: Creando un directorio falso o falso con archivos para probar la unidad

Estoy tratando de crear una prueba unitaria para la siguiente función: def my_function(path): #Search files at the given path for file in os.listdir(path): if file.endswith(“.json”): #Search for file i’m looking for if file == “file_im_looking_for.json”: #Open file os.chdir(path) json_file=json.load(open(file)) print json_file[“name”] Sin embargo, estoy teniendo problemas para crear un directorio falso con archivos para que […]

¿Cómo simular una función de coroutine tornado utilizando el marco simulado para la prueba de unidad?

El título simplemente describía mi problema. Me gustaría burlarme de “_func_inner_1” con un valor de retorno específico. Gracias por cualquier consejo 🙂 código bajo prueba: from tornado.gen import coroutine, Return from tornado.testing import gen_test from tornado.testing import AsyncTestCase import mock @coroutine def _func_inner_1(): raise Return(1) @coroutine def _func_under_test_1(): temp = yield _func_inner_1() raise Return(temp + […]

Burlarse de un método de clase que se utiliza a través de una instancia

Estoy tratando de parchear un método de clase usando simulacro como se describe en la documentación . El objeto Mock en sí mismo funciona bien, pero sus métodos no: por ejemplo, sus atributos como call_count no se actualizan, a pesar de que el atributo method_calls del objeto Mock clase sí lo está. Más importante aún, […]

¿Cómo debo verificar un mensaje de registro al probar el código Python en la nariz?

Estoy tratando de escribir una prueba unitaria simple que verificará que, bajo ciertas condiciones, una clase en mi aplicación registrará un error a través de la API de registro estándar. No puedo averiguar cuál es la forma más limpia de probar esta situación. Sé que la nariz ya captura la salida de registro a través […]

¿Cuál es la diferencia entre mock.patch.object (… y mock.patch (

Estoy tratando de entender la diferencia entre estos dos enfoques de burlarse de un método. ¿Alguien podría ayudar a distinguirlos? Para este ejemplo, yo uso la biblioteca passlib. from passlib.context import CryptContext from unittest import mock with mock.patch.object(CryptContext, ‘verify’, return_value=True) as foo1: mycc = CryptContext(schemes=’bcrypt_sha256′) mypass = mycc.encrypt(‘test’) assert mycc.verify(‘tesssst’, mypass) with mock.patch(‘passlib.context.CryptContext.verify’, return_value=True) as […]

Django probando modelo con ImageField

Necesito probar el modelo de foto de mi aplicación Django. ¿Cómo puedo burlar el ImageField con un archivo de imagen de prueba? tests.py class PhotoTestCase(TestCase): def test_add_photo(self): newPhoto = Photo() newPhoto.image = # ?????? newPhoto.save() self.assertEqual(Photo.objects.count(), 1)

Como simular usuarios y peticiones en django.

Tengo un código django que interactúa con objetos de solicitud u objetos de usuario. Por ejemplo, algo como: foo_model_instance = models.get_or_create_foo_from_user(request.user) Si fueras a probar con el shell django python o en una prueba de unidad, ¿qué pasarías allí? Aquí, simplemente, un objeto Usuario lo hará, pero la necesidad de un objeto de solicitud simulada […]

burlándose de una función dentro de un método de clase

Quiero simular una función que se llama dentro de un método de clase mientras se prueba el método de clase en un proyecto de Django. Considera la siguiente estructura: app / utils.py def func(): … return resp # outcome is a HTTPResponse object app / models.py from app.utils import func class MyModel(models.Model): # fields def […]

¿Se puede restablecer un iterador de efecto secundario simulado después de que se haya agotado?

mock.reset_mock() no restablecerá un iterador de efectos secundarios. ¿Hay una manera de hacer esto sin crear el simulacro de nuevo? >>> from mock import MagicMock >>> mock = MagicMock(side_effect = [1,2]) >>> mock(), mock() (1, 2) >>> mock() Traceback (most recent call last): File “”, line 1, in mock() File “C:\Python27\Lib\site-packages\mock.py”, line 955, in __call__ […]