Имеются классы, которые работают c потоками, c базой данных, с процессами, используя функции из twisted. Для того чтобы они работали, нужно запустить reactor.
Не знаю как лучше написать тесты для этих классов, используя unittest.
Последний мой неработающий вариант
import unittest
from twisted.internet import reactor
from twisted.internet import protocol
from twisted.python import log
class ProcessProtocol(protocol.ProcessProtocol):
def __init__(self, callback):
self._callback = callback
self._out_buffer = ''
def outReceived(self, data):
self._out_buffer += data
def processEnded(self, reason):
self._callback(self._out_buffer)
class SimpleTest(unittest.TestCase):
def test_test1(self):
def callback(data):
self.assertEqual(data, 'Linux\n')
reactor.spawnProcess(ProcessProtocol(callback), 'uname', args=['uname'])
def test_test2(self):
def callback(data):
self.assertEqual(data, 'Linux')
reactor.spawnProcess(ProcessProtocol(callback), 'uname', args=['uname'])
reactor.callLater(1, unittest.main)
reactor.callLater(5, reactor.stop)
reactor.run()