summaryrefslogblamecommitdiffhomepage
path: root/test/test_python_atexit.py
blob: b41a80db018de2888b07ec258c3fb629333efcf4 (plain) (tree)
1
2
3
4
5
6
7
8
9




               
                                                 

                     
                                               
 
                                 








                                     
                                                    
             




                                           








                                        
                                                

                                                      

                 
          
 
                  
 



                              
 
                                                  






                                                                        
import os
import time
import unittest
import unit

class TestUnitPythonAtExit(unit.TestUnitControl):

    def setUpClass():
        unit.TestUnit().check_modules('python')

    def test_python_atexit(self):
        code, name = """
import atexit

def create_file():
    open('%s', 'w')

atexit.register(create_file)

def application(env, start_response):
    start_response('200', [('Content-Length', '0')])
    return []

""" % (self.testdir + '/atexit'), 'py_app'

        self.python_application(name, code)

        self.conf({
            "listeners": {
                "*:7080": {
                    "application": "app"
                }
            },
            "applications": {
                "app": {
                    "type": "python",
                    "processes": { "spare": 0 },
                    "path": self.testdir + '/' + name,
                    "module": "wsgi"
                }
            }
        })

        self.get()

        self.conf({
            "listeners": {},
            "applications": {}
        })

        time.sleep(0.2)   # wait for 'atexit' file

        self.assertEqual(os.path.exists(self.testdir + '/atexit'), True,
            'python atexit')


if __name__ == '__main__':
    unittest.main()