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


                                                


                                                                     



                                                  


                                                                    



                                                 


                                                                    



                                             

                                                                          
                





                                          
                     
                     
                


                                                                          
                





                                          
                     
                     
                   



                                              

                                                                           
                





                                          
                     
                     
                


                                                                           
                





                                               
                     
                     
                    



                                            




                                                   
                





                                               
                     
                          
                
 
                                                             
 
                





                                               


                     



                                                      
                                

                                    
                                      


                                      
 
                                                   
 
                                                                        
 
                


                                        
                                          

                                          
                     
                  
                            
 
                                                             
 
                


                                        
                                          

                                          


                            
from unit.applications.lang.python import TestApplicationPython

prerequisites = {'modules': {'python': 'any'}}


class TestPythonEnvironment(TestApplicationPython):
    def test_python_environment_name_null(self):
        self.load('environment')

        assert 'error' in self.conf(
            {"va\0r": "val1"}, 'applications/environment/environment'
        ), 'name null'

    def test_python_environment_name_equals(self):
        self.load('environment')

        assert 'error' in self.conf(
            {"var=": "val1"}, 'applications/environment/environment'
        ), 'name equals'

    def test_python_environment_value_null(self):
        self.load('environment')

        assert 'error' in self.conf(
            {"var": "\0val"}, 'applications/environment/environment'
        ), 'value null'

    def test_python_environment_update(self):
        self.load('environment')

        self.conf({"var": "val1"}, 'applications/environment/environment')

        assert (
            self.get(
                headers={
                    'Host': 'localhost',
                    'X-Variables': 'var',
                    'Connection': 'close',
                }
            )['body']
            == 'val1'
        ), 'set'

        self.conf({"var": "val2"}, 'applications/environment/environment')

        assert (
            self.get(
                headers={
                    'Host': 'localhost',
                    'X-Variables': 'var',
                    'Connection': 'close',
                }
            )['body']
            == 'val2'
        ), 'update'

    def test_python_environment_replace(self):
        self.load('environment')

        self.conf({"var1": "val1"}, 'applications/environment/environment')

        assert (
            self.get(
                headers={
                    'Host': 'localhost',
                    'X-Variables': 'var1',
                    'Connection': 'close',
                }
            )['body']
            == 'val1'
        ), 'set'

        self.conf({"var2": "val2"}, 'applications/environment/environment')

        assert (
            self.get(
                headers={
                    'Host': 'localhost',
                    'X-Variables': 'var1,var2',
                    'Connection': 'close',
                }
            )['body']
            == 'val2'
        ), 'replace'

    def test_python_environment_clear(self):
        self.load('environment')

        self.conf(
            {"var1": "val1", "var2": "val2"},
            'applications/environment/environment',
        )

        assert (
            self.get(
                headers={
                    'Host': 'localhost',
                    'X-Variables': 'var1,var2',
                    'Connection': 'close',
                }
            )['body']
            == 'val1,val2'
        ), 'set'

        self.conf({}, 'applications/environment/environment')

        assert (
            self.get(
                headers={
                    'Host': 'localhost',
                    'X-Variables': 'var1,var2',
                    'Connection': 'close',
                }
            )['body']
            == ''
        ), 'clear'

    def test_python_environment_replace_default(self):
        self.load('environment')

        home_default = self.get(
            headers={
                'Host': 'localhost',
                'X-Variables': 'HOME',
                'Connection': 'close',
            }
        )['body']

        assert len(home_default) > 1, 'get default'

        self.conf({"HOME": "/"}, 'applications/environment/environment')

        assert (
            self.get(
                headers={
                    'Host': 'localhost',
                    'X-Variables': 'HOME',
                    'Connection': 'close',
                }
            )['body']
            == '/'
        ), 'replace default'

        self.conf({}, 'applications/environment/environment')

        assert (
            self.get(
                headers={
                    'Host': 'localhost',
                    'X-Variables': 'HOME',
                    'Connection': 'close',
                }
            )['body']
            == home_default
        ), 'restore default'