def setUp(self): self.sched = JobSched() self.sched.config = {} self.sched.config['profiles'] = eval(config.profiles) self.sched.config['listen_host'] = config.listen_host self.sched.config['listen_port'] = config.listen_port self.sched.config['videofolder'] = config.videofolder self.sched.config['secret'] = config.secret self.server = XMLRPCConvert(self.sched)
class TranscodeDaemonTestCase(unittest.TestCase): def setUp(self): self.sched = JobSched() self.sched.config = {} self.sched.config['profiles'] = eval(config.profiles) self.sched.config['listen_host'] = config.listen_host self.sched.config['listen_port'] = config.listen_port self.sched.config['videofolder'] = config.videofolder self.sched.config['secret'] = config.secret self.server = XMLRPCConvert(self.sched) def test_profiles(self): daemonProfiles = self.server.xmlrpc_getAvailableProfiles() self.assertEqual(daemonProfiles, [p['id'] for p in eval(config.profiles)]) def test_transcode(self, profiles = None): if not profiles: profiles = self.server.xmlrpc_getAvailableProfiles() profile = profiles[0] os.chdir('..') else: profile = profiles[0] options = dict() filePath = 'path' fileUrl = 'http://www.engagemedia.org/Members/emnews/videos/wikileaks_parody.mp4/@@download/video_file/wikileaks_parody.mp4' fileName = 'wikileaks_parody.mp4' UID = '123' input = { 'path' : filePath, 'url' : fileUrl, 'type' : 'video/mp4', 'fieldName' : '', 'fileName' : fileName, 'uid' : UID, } input = {'key':b64encode(encrypt(str(input), config.secret))} job = self.server.xmlrpc_transcode(input, profile, options, False) def checkResult(info): result = eval(decrypt(b64decode(info['key']), config.secret), {"__builtins__":None},{}) print result self.sched.running = False assert 'SUCCESS' in result['msg'] if len(profiles)>1: self.test_transcode(profiles[1:]) job.addCallback(checkResult) job.addErrback(checkResult) self.sched.run()
def launchHttp(self, application): root = TranscodeWebRoot() root.putChild('', root) root.putChild('RPC2', XMLRPCConvert(self)) root.putChild( self.config['videofolder'], FileNoListing(self.config['videofolder'], defaultType='video/webm')) host = self.config['listen_host'].encode('ascii') port = self.config['listen_port'].encode('ascii') site = server.Site(root) thyStopFact = site.stopFactory def myStopFact(): thyStopFact() self.stop(stopReactor=False) site.stopFactory = myStopFact self.service = strports.service('tcp:%s:interface=%s' % (port, host), site) self.service.setServiceParent(application) log.info("Launched http channel")