예제 #1
0
 def setup_timbl_server(self):
     options = "+vo +vdb +vdi %s -f %s" % (
         self.descriptor.metrics, os.path.abspath("data/base.inst"))
     # Timbl server will automatically terminate when TimblServer object
     # dies, so keep a reference to it
     self.server = TimblServer(options=options)
     self.server.start()
예제 #2
0
 def test_restart(self):
     server = TimblServer(timbl_opts=self.timbl_opts, wait_for_dead=True)
     server.start()
     server.restart()
     self.assertTrue(server.pid)
     self.assertTrue(server.pid in server.kill_pids)
     self.assertTrue(os.getpgid(server.pid))
예제 #3
0
 def test_server_logfile(self):
     log_file = tempfile.NamedTemporaryFile(mode="rb", bufsize=0)
     log_fname = log_file.name
     server = TimblServer(timbl_opts=self.timbl_opts,
                          server_log_fname=log_fname)
     server.start()
     server.stop()
     self.assertTrue(open(log_fname).readlines())
예제 #4
0
 def test_logging_2(self):
     log_fname = tempfile.NamedTemporaryFile().name
     logger = file_logger("my_log", log_fname)
     server = TimblServer(timbl_opts=self.timbl_opts, logger=logger)
     server.start()
     server.stop()
     #self.assertTrue(open(log_fname).read())
     print open(log_fname).read()
     os.remove(log_fname)
예제 #5
0
 def _init_server(self, descriptor, inst_fname, inst_base_fname, options,
                  server_log_fname):
     options = timbl_options_string(descriptor, 
                                    inst_fname=inst_fname,
                                    inst_base_fname=inst_base_fname,
                                    other=options)
     # Timbl server will automatically terminate when TimblServer object
     # dies, so keep a reference to it
     self._server = TimblServer(timbl_opts=options,
                                server_log_fname=server_log_fname)
     self._server.start()
예제 #6
0
 def test_logging_1(self):
     # quick & global config of logging system so output of loggers
     # goes to stdout
     logging.basicConfig(level=logging.DEBUG,
                         format="%(levelname)s <%(name)s> :: %(message)s")
     server = TimblServer(timbl_opts=self.timbl_opts,
                          wait_for_dead=True,
                          log_tag="server1")
     server.start()
     server.stop()
     # global reset of logging level
     logging.getLogger().setLevel(logging.CRITICAL)
예제 #7
0
    def test_multiple_servers(self):
        # make sure there are no left overs
        TimblServer.kill_pids = []

        for i in range(10):
            server = TimblServer(timbl_opts=self.timbl_opts,
                                 wait_for_dead=True)
            server.start()

        self.assertEqual(len(TimblServer.kill_pids), 10)

        for pid in TimblServer.kill_pids:
            self.assertTrue(os.getpgid(server.pid))
예제 #8
0
    def test_start_and_stop(self):
        server = TimblServer(timbl_opts=self.timbl_opts, wait_for_dead=True)
        server.start()
        self.assertTrue(server.pid)
        self.assertTrue(server.pid in server.kill_pids)
        self.assertTrue(os.getpgid(server.pid))

        server_pid = server.pid
        server.stop()
        self.assertFalse(server.pid)
        self.assertFalse(server.pid in server.kill_pids)
        # this requires wait_for_dead=True
        self.assertRaises(OSError, os.getpgid, server_pid)
예제 #9
0
def start_timbl_server():
    global SERVER

    options = "-f {0}/dimin.train".format(DATA_DIR)
    SERVER = TimblServer(timbl_opts=options)
    SERVER.start()
예제 #10
0
 def test_init(self):
     server = TimblServer(timbl_opts=self.timbl_opts)