summaryrefslogblamecommitdiffhomepage
path: root/test/test_python_basic.py
blob: 0c12242f8a20f5817981383665fd901a0cec2c31 (plain) (tree)
1
2
3
4
5
6
7
8
9
10





                                          



                                 
 


                             
                                        

                            
         
     
 







                                    

                                    

                                                           

                                               
                                                                             

                                                  
                                                                                   

                                           
                                                 
 
                              
 

                                                            


                                     
                                                


                                    

                           

                                                  
                                                 
 
                                                        


                                     
                                                



                                   


                                                    
                                                 
 
                                                            

                                 
                                            


                                
                                    
 
                                                    
                                                 
 

                                                                           

                                                                               

                                        
                                  
 
                                                      
                                                          
 
                                               
                                  
 
                                                     
                                                                 
 
                                                 
                                  
 
                                                            
                                                        
 
                                          

                                                                 
 
                                                     
                                                                 
 
                                       

                                                             
 
                                                     
             
                           





                                        


                                             
                                  
 


                                                                              
 

                                                                         
                                      

                                 
                                  
 
                                                                     
                                         
                                                                       
                              
                                                                       
                                        
                                                                     



                               
import unittest
import unit

class TestUnitBasic(unit.TestUnitControl):

    def setUpClass():
        u = unit.TestUnit()

        u.check_modules('python')
        u.check_version('0.5')

    conf_app = {
        "app": {
            "type": "python",
            "processes": { "spare": 0 },
            "path": "/app",
            "module": "wsgi"
        }
    }

    conf_basic = {
        "listeners": {
            "*:7080": {
                "application": "app"
            }
        },
        "applications": conf_app
    }

    def test_python_get_empty(self):
        self.assertEqual(self.conf_get(),
            {'listeners': {}, 'applications': {}}, 'empty')

    def test_python_get_prefix_listeners(self):
        self.assertEqual(self.conf_get('/listeners'), {}, 'listeners prefix')

    def test_python_get_prefix_applications(self):
        self.assertEqual(self.conf_get('/applications'), {}, 'applications prefix')

    def test_python_get_applications(self):
        self.conf(self.conf_app, '/applications')

        conf = self.conf_get()

        self.assertEqual(conf['listeners'], {}, 'listeners')
        self.assertEqual(conf['applications'],
            {
                "app": {
                    "type": "python",
                    "processes": { "spare": 0 },
                    "path": "/app",
                    "module": "wsgi"
                }
            },
            'applications')

    def test_python_get_applications_prefix(self):
        self.conf(self.conf_app, '/applications')

        self.assertEqual(self.conf_get('/applications'),
            {
                "app": {
                    "type": "python",
                    "processes": { "spare": 0 },
                    "path": "/app",
                    "module":"wsgi"
                }
            },
            'applications prefix')

    def test_python_get_applications_prefix_2(self):
        self.conf(self.conf_app, '/applications')

        self.assertEqual(self.conf_get('/applications/app'),
            {
                "type": "python",
                "processes": { "spare": 0 },
                "path": "/app",
                "module": "wsgi"
            },
            'applications prefix 2')

    def test_python_get_applications_prefix_3(self):
        self.conf(self.conf_app, '/applications')

        self.assertEqual(self.conf_get('/applications/app/type'), 'python',
            'type')
        self.assertEqual(self.conf_get('/applications/app/processes/spare'), 0,
            'spare')

    def test_python_get_listeners(self):
        self.conf(self.conf_basic)

        self.assertEqual(self.conf_get()['listeners'],
            {"*:7080":{"application":"app"}}, 'listeners')

    def test_python_get_listeners_prefix(self):
        self.conf(self.conf_basic)

        self.assertEqual(self.conf_get('/listeners'),
            {"*:7080":{"application":"app"}}, 'listeners prefix')

    def test_python_get_listeners_prefix_2(self):
        self.conf(self.conf_basic)

        self.assertEqual(self.conf_get('/listeners/*:7080'),
            {"application":"app"}, 'listeners prefix 2')

    def test_python_change_listener(self):
        self.conf(self.conf_basic)
        self.conf({"*:7081":{"application":"app"}}, '/listeners')

        self.assertEqual(self.conf_get('/listeners'),
            {"*:7081": {"application":"app"}}, 'change listener')

    def test_python_add_listener(self):
        self.conf(self.conf_basic)
        self.conf({"application":"app"}, '/listeners/*:7082')

        self.assertEqual(self.conf_get('/listeners'),
            {
                "*:7080": {
                    "application": "app"
                },
                "*:7082": {
                    "application": "app"
                }
            },
            'add listener')

    def test_python_change_application(self):
        self.conf(self.conf_basic)

        self.conf('30', '/applications/app/processes/max')
        self.assertEqual(self.conf_get('/applications/app/processes/max'), 30,
            'change application max')

        self.conf('"/www"', '/applications/app/path')
        self.assertEqual(self.conf_get('/applications/app/path'), '/www',
            'change application path')

    def test_python_delete(self):
        self.conf(self.conf_basic)

        self.assertIn('error', self.conf_delete('/applications/app'),
            'delete app before listener')
        self.assertIn('success', self.conf_delete('/listeners/*:7080'),
            'delete listener')
        self.assertIn('success', self.conf_delete('/applications/app'),
            'delete app after listener')
        self.assertIn('error', self.conf_delete('/applications/app'),
            'delete app again')

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