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



                                                






                                                                         



                                                  






                                                                        



                                                 






                                                                        



                                             


























                                                                          



                                              


























                                                                           



                                            















                                                   
 
                                                             
 










                                               



                                                      
                                

                                    
                                      


                                      
 
                                                               
 
                                                                        
 



                                        
                                          


                                          
                 

                              
 
                                                             
 



                                        
                                          


                                          
                         


                              

                          
                                
from unit.applications.lang.python import TestApplicationPython


class TestPythonEnvironment(TestApplicationPython):
    prerequisites = {'modules': {'python': 'any'}}

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

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

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

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

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

        self.assertIn(
            'error',
            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')

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

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

        self.assertEqual(
            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')

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

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

        self.assertEqual(
            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',
        )

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

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

        self.assertEqual(
            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']

        self.assertGreater(len(home_default), 1, 'get default')

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

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

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

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


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