Mamy kilka poleceń w naszej witrynie Django, niektóre z nich są administracyjne, a inne działają na zadaniach cron, których nie mogę wymyślić. Są one dość dużo wyglądać następująco:Uruchom komendę zarządzania Python/Django z 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
I mam pewne testy, które wyglądać tak:
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.
W moim teście (gdzie mam komentarz) Chciałbym uruchomić mój NoArgsCommand aby zobaczyć, co stanie się z moim nowym użytkownikiem. Nie mogę znaleźć żadnej dokumentacji ani przykładów, jak to osiągnąć. Zauważ też, że moim środowiskiem testowym jest SQLLite DB, który tworzę od zera w pamięci, ładuję niektóre urządzenia i obiekty do moich testów, tak jakbym chciał ustawić dane w prawdziwym DB, po prostu uruchom moje polecenie z linii poleceń, nie mogę, jest to zbyt czasochłonne. Wszelkie pomysły będą mile widziane.
RTFM, Doh! Dziękuję, nie wiedziałem, że to nawet istniało. – scoopseven
Zdarza się nam wszystkim, szczególnie w piątki :) I oczywiście, nie ma za co! – kgr
Dzięki! Próbowałem uruchomić testowanie jednostki z Visual Studio i nie mogłem go uzyskać, dopóki nie podążyłem za twoim linkiem referencyjnym. – TurboGus