Tenemos un conjunto de comandos en nuestro sitio Django, algunos que son administrativos y otros que se ejecutan en trabajos cron que no puedo averiguar cómo probarlos. Ellos prácticamente tener este aspecto:Ejecutar el comando de administración Python/Django desde UnitTest/WebTest
# Saved in file /app/management/commands/some_command.py
# Usage: python manage.py some_command
from django.core.management.base import NoArgsCommand
class Command(NoArgsCommand):
def handle_noargs(self, **options):
# Do something useful
y tengo algunas pruebas, que se ven así:
import unittest
from django.test import TestCase
from django_webtest import WebTest
class SomeTest(WebTest):
fixtures = ['testdata.json']
def setUp(self):
self.open_in_browser = False
# Set up some objects
def test_registration(self):
response = self.client.get('/register/')
self.assertEqual(response.status_code, 200)
form = self.app.get('/register/').forms[1]
# Set up the form
response = form.submit()
self.assertContains(response, 'You are Registered.')
if self.open_in_browser:
response.showbrowser()
# Here I'd like to run some_command to see the how it affects my new user.
En mi prueba (donde tengo el comentario) Me gustaría dirigir mi NoArgsCommand para ver qué le sucede a mi nuevo usuario. No puedo encontrar ninguna documentación o ejemplos sobre cómo lograr esto. También tenga en cuenta que mi entorno de prueba es una base de datos SQLlite que creo desde cero en la memoria, cargué algunos dispositivos y objetos en y ejecuto mis pruebas, así que por mucho que me gustaría configurar los datos en una base de datos real, simplemente ejecute mi comando desde la línea de comandos, no puedo, es demasiado lento. Cualquier idea sería muy apreciada.
RTFM, do! Gracias, no sabía que eso existía. – scoopseven
Nos sucede a todos, especialmente los viernes :) ¡Y por supuesto, de nada! – kgr
¡Gracias! He intentado ejecutar mi prueba unitaria desde Visual Studio y no pude obtenerla hasta que seguí su enlace de referencia. – TurboGus