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


                          
                                      
                           
                                 
         
     
 
                  
                                                              
                                 
     

                                        
                                                
 
                              
 
                                                            

                                 


                                  
                                              
                                   
                                         
                 


                           

                                               
                                                
 

                                          


                                  
                                              
                                   
                                         

                 

                                  

                                                 
                                                
 

                                              

                              
                                          
                               
                                     
              

                                    

                                                 
                                                
 





                                                                               
 
                                     
                                  
 

                                         
                                                     

                        
 
                                            
                                  
 

                                       
                                                     

                               
 
                                              
                                  
 

                                              
                                         

                                 
 
                                       
                                  
                                                                        
 

                                       
                                                     

                              
 
                                    
                                  
                                                                   
 

                                       
             

                                                       
              

                           

                                          
                                  
 
                                                         




                                                            
 
                                                    




                                                   

                              
                                  
 
















                                                                              

























                                                                             

                          
                       
from unit.control import TestControl


class TestPHPBasic(TestControl):
    prerequisites = ['php']

    conf_app = {
        "app": {
            "type": "php",
            "processes": {"spare": 0},
            "root": "/app",
            "index": "index.php",
        }
    }

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

    def test_php_get_applications(self):
        self.conf(self.conf_app, 'applications')

        conf = self.conf_get()

        self.assertEqual(conf['listeners'], {}, 'listeners')
        self.assertEqual(
            conf['applications'],
            {
                "app": {
                    "type": "php",
                    "processes": {"spare": 0},
                    "root": "/app",
                    "index": "index.php",
                }
            },
            'applications',
        )

    def test_php_get_applications_prefix(self):
        self.conf(self.conf_app, 'applications')

        self.assertEqual(
            self.conf_get('applications'),
            {
                "app": {
                    "type": "php",
                    "processes": {"spare": 0},
                    "root": "/app",
                    "index": "index.php",
                }
            },
            'applications prefix',
        )

    def test_php_get_applications_prefix_2(self):
        self.conf(self.conf_app, 'applications')

        self.assertEqual(
            self.conf_get('applications/app'),
            {
                "type": "php",
                "processes": {"spare": 0},
                "root": "/app",
                "index": "index.php",
            },
            'applications prefix 2',
        )

    def test_php_get_applications_prefix_3(self):
        self.conf(self.conf_app, 'applications')

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

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

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

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

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

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

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

    def test_php_change_listener(self):
        self.conf(self.conf_basic)
        self.conf({"*:7081": {"pass": "applications/app"}}, 'listeners')

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

    def test_php_add_listener(self):
        self.conf(self.conf_basic)
        self.conf({"pass": "applications/app"}, 'listeners/*:7082')

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

    def test_php_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/root')
        self.assertEqual(
            self.conf_get('applications/app/root'),
            '/www',
            'change application root',
        )

    def test_php_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'
        )

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

        self.assertIn(
            'success',
            self.conf_delete('listeners'),
            'listeners delete',
        )

        self.assertIn(
            'success',
            self.conf_delete('applications'),
            'applications delete',
        )

        self.assertIn(
            'success',
            self.conf(self.conf_app, 'applications'),
            'listeners restore',
        )

        self.assertIn(
            'success',
            self.conf({"*:7080": {"pass": "applications/app"}}, 'listeners'),
            'applications restore',
        )

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