30 lines
997 B
Python
30 lines
997 B
Python
import json
|
|
from StringIO import StringIO
|
|
from django.test import TestCase
|
|
|
|
from eventtracking import tracker as eventtracker
|
|
|
|
from track.management.tracked_command import TrackedCommand
|
|
|
|
|
|
class DummyCommand(TrackedCommand):
|
|
"""A locally-defined command, for testing, that returns the current context as a JSON string."""
|
|
def handle(self, *args, **options):
|
|
return json.dumps(eventtracker.get_tracker().resolve_context())
|
|
|
|
|
|
class CommandsTestBase(TestCase):
|
|
|
|
def _run_dummy_command(self, *args, **kwargs):
|
|
"""Runs the test command's execute method directly, and outputs a dict of the current context."""
|
|
out = StringIO()
|
|
DummyCommand().execute(*args, stdout=out, **kwargs)
|
|
out.seek(0)
|
|
return json.loads(out.read())
|
|
|
|
def test_command(self):
|
|
args = ['whee']
|
|
kwargs = {'key1': 'default', 'key2': True}
|
|
json_out = self._run_dummy_command(*args, **kwargs)
|
|
self.assertEquals(json_out['command'], 'unknown')
|