forked from Ponysearch/Ponysearch
59 lines
1.2 KiB
Python
59 lines
1.2 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""Shared testing code."""
|
|
|
|
from plone.testing import Layer
|
|
from unittest2 import TestCase
|
|
|
|
|
|
import os
|
|
import subprocess
|
|
import sys
|
|
|
|
|
|
class SearxTestLayer:
|
|
|
|
__name__ = u'SearxTestLayer'
|
|
|
|
def setUp(cls):
|
|
pass
|
|
setUp = classmethod(setUp)
|
|
|
|
def tearDown(cls):
|
|
pass
|
|
tearDown = classmethod(tearDown)
|
|
|
|
def testSetUp(cls):
|
|
pass
|
|
testSetUp = classmethod(testSetUp)
|
|
|
|
def testTearDown(cls):
|
|
pass
|
|
testTearDown = classmethod(testTearDown)
|
|
|
|
|
|
class SearxRobotLayer(Layer):
|
|
"""Searx Robot Test Layer"""
|
|
|
|
def setUp(self):
|
|
os.setpgrp() # create new process group, become its leader
|
|
webapp = os.path.join(
|
|
os.path.abspath(os.path.dirname(os.path.realpath(__file__))),
|
|
'webapp.py'
|
|
)
|
|
exe = os.path.abspath(os.path.dirname(__file__) + '/../bin/py')
|
|
self.server = subprocess.Popen(
|
|
[exe, webapp, 'settings_robot'],
|
|
stdout=subprocess.PIPE,
|
|
stderr=subprocess.STDOUT
|
|
)
|
|
|
|
def tearDown(self):
|
|
# TERM all processes in my group
|
|
os.killpg(os.getpgid(self.server.pid), 15)
|
|
|
|
|
|
SEARXROBOTLAYER = SearxRobotLayer()
|
|
|
|
|
|
class SearxTestCase(TestCase):
|
|
layer = SearxTestLayer
|