diff options
Diffstat (limited to 'searx/testing.py')
| -rw-r--r-- | searx/testing.py | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/searx/testing.py b/searx/testing.py new file mode 100644 index 000000000..4b1810d6a --- /dev/null +++ b/searx/testing.py @@ -0,0 +1,59 @@ +# -*- 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 |