Пример #1
0
 def test_log_creation(self, mock_check_output):
     '''Test build_python()'s behaviour when given standard inputs.'''
     mock_check_output.side_effect = fx.python_side_effect
     helpers.standard_test(self,
                           gs.build_python,
                           'py',
                           system_mock=mock_check_output)
Пример #2
0
 def test_stata_executable_unix(self, mock_check):
     mock_check.side_effect = fx.make_stata_side_effect('stata-mp')
     env = {'stata_executable': 'stata-mp'}
     helpers.standard_test(self,
                           gs.build_stata,
                           'do',
                           env=env,
                           system_mock=mock_check)
Пример #3
0
    def test_nonexistent_input(self):
        '''
        Test that build_python() doesn't raise errors if
        its source script doesn't exist.
        '''
        if os.path.exists('test.py'):
            os.remove('test.py')

        helpers.standard_test(self, gs.build_python, source = 'test.py')
Пример #4
0
    def test_nonexistent_input(self):
        '''
        Test build_python()'s behaviour when the source script doesn't exist.
        '''
        if os.path.exists('test.py'):
            os.remove('test.py')

        with self.assertRaises(ExecCallError):
            helpers.standard_test(self, gs.build_python, source = 'test.py')
Пример #5
0
    def test_user_executable_windows(self, mock_check):
        mock_check.side_effect = fx.make_stata_side_effect('stata-mp')

        env = {'user_flavor': 'stata-mp'}
        helpers.standard_test(self,
                              gs.build_stata,
                              'do',
                              env=env,
                              system_mock=mock_check)
Пример #6
0
 def test_no_executable(self, mock_check_output):
     '''
     Check build_r()'s behaviour when R is not recognised as
     an executable.
     '''
     mock_check_output.side_effect = \
         fx.make_r_side_effect(recognized = False)
     with self.assertRaises(ExecCallError):
         helpers.standard_test(self, gs.build_r, 'R', 
                               system_mock = mock_check_output)
Пример #7
0
    def test_windows(self, mock_copy, mock_check_output):
        '''
        Test that build_matlab() creates a log and properly submits
        a matlab system command on a Windows machine.
        '''
        mock_copy.side_effect = fx.matlab_copy_effect
        mock_check_output.side_effect = fx.make_matlab_side_effect(True)

        helpers.standard_test(self, gs.build_matlab, 'm')
        self.check_call(mock_check_output, ['-nosplash', '-minimize', '-wait'])
Пример #8
0
 def test_unix(self, mock_check, mock_path):
     '''Test build_stata()'s standard behaviour on Unix machines'''
     mock_check.side_effect = fx.make_stata_side_effect('stata-mp')
     # Mock is_in_path() to finds just one executable of Stata
     mock_path.side_effect = fx.make_stata_path_effect('stata-mp')
     env = {'stata_executable': None}
     helpers.standard_test(self,
                           gs.build_stata,
                           'do',
                           env=env,
                           system_mock=mock_check)
Пример #9
0
 def test_standard(self, mock_check_output):
     '''Test build_r()'s behaviour when given standard inputs.'''
     mock_check_output.side_effect = fx.make_r_side_effect(True)
     helpers.standard_test(self, gs.build_r, 'R', 
                           system_mock = mock_check_output)
     # With a list of targets
     # We expect that build_r() can run without creating its targets
     targets = ['./build/r.rds', 'additional_target', '']
     helpers.standard_test(self, gs.build_r, 'R', 
                           system_mock = mock_check_output,
                           target      = targets)    
Пример #10
0
    def test_unix(self, mock_copy, mock_check_output):
        '''
        Test that build_matlab() creates a log and properly submits
        a matlab system command on a Unix machine.
        '''
        # Mock copy so that it just creates the destination file
        mock_copy.side_effect = fx.matlab_copy_effect
        mock_check_output.side_effect = fx.make_matlab_side_effect(True)

        helpers.standard_test(self, gs.build_matlab, 'm')
        self.check_call(mock_check_output, ['-nosplash', '-nodesktop'])
Пример #11
0
 def test_default(self, mock_system):
     '''
     Test that build_lyx() behaves correctly when provided with
     standard inputs. 
     '''
     mock_system.side_effect = fx.lyx_side_effect
     target = './build/lyx.pdf'
     helpers.standard_test(self, gs.build_lyx, 'lyx', 
                           system_mock = mock_system, 
                           target = target)
     self.assertTrue(os.path.isfile(target))
Пример #12
0
    def test_clarg(self, mock_copy, mock_check_output):
        '''
        Test that build_matlab() properly sets command-line arguments
        in its env argument as system environment variables.
        '''
        mock_copy.side_effect = fx.matlab_copy_effect
        mock_check_output.side_effect = fx.make_matlab_side_effect(True)

        env = {'CL_ARG': 'COMMANDLINE'}
        helpers.standard_test(self, gs.build_matlab, 'm', 
                              system_mock = mock_check_output, env = env)
        self.assertEqual(os.environ['CL_ARG'], env['CL_ARG'])
Пример #13
0
 def test_list_arguments(self, mock_system):
     '''
     Check that build_lyx() works when its source and target 
     arguments are lists
     '''
     mock_system.side_effect = fx.lyx_side_effect
     target = ['./build/lyx.pdf']
     helpers.standard_test(self, gs.build_lyx, 'lyx', 
                           system_mock = mock_system, 
                           source = ['./test_script.lyx'],
                           target = target)
     self.assertTrue(os.path.isfile(target[0]))
Пример #14
0
 def test_standard(self, mock_check_output):
     '''Test build_r()'s behaviour when given standard inputs.'''
     mock_check_output.side_effect = fx.make_r_side_effect(True)
     helpers.standard_test(self,
                           gs.build_r,
                           'R',
                           system_mock=mock_check_output)
     # With a list of targets
     targets = ['./test_output.txt']
     helpers.standard_test(self,
                           gs.build_r,
                           'R',
                           system_mock=mock_check_output,
                           target=targets)
Пример #15
0
    def test_windows(self, mock_is_64, mock_check, mock_path):
        '''
        Test that build_stata() behaves correctly on a Windows machine
        when given appropriate inputs. 
        '''
        mock_check.side_effect = fx.make_stata_side_effect('StataMP-64.exe')
        mock_path.side_effect = fx.make_stata_path_effect('StataMP-64.exe')
        mock_is_64.return_value = False

        env = {'stata_executable': None}
        helpers.standard_test(self,
                              gs.build_stata,
                              'do',
                              env=env,
                              system_mock=mock_check)
Пример #16
0
    def test_windows(self, mock_is_64, mock_check, mock_path):
        '''
        Test that build_stata() behaves correctly on a Windows machine
        when given appropriate inputs. 
        '''
        # i) Non-64-bit Windows without a STATAEXE environment variable
        mock_check.side_effect = fx.make_stata_side_effect('statamp.exe')
        mock_path.side_effect = fx.make_stata_path_effect('statamp.exe')
        mock_is_64.return_value = False

        env = {'user_flavor': None}
        helpers.standard_test(self,
                              gs.build_stata,
                              'do',
                              env=env,
                              system_mock=mock_check)

        # ii) 64-bit Windows without a STATAEXE environment variable
        mock_check.side_effect = fx.make_stata_side_effect('statamp-64.exe')
        mock_path.side_effect = fx.make_stata_path_effect('statamp-64.exe')
        mock_is_64.return_value = True

        helpers.standard_test(self,
                              gs.build_stata,
                              'do',
                              env=env,
                              system_mock=mock_check)

        # ii) Windows with a STATAEXE environment variable
        mock_check.side_effect = fx.make_stata_side_effect(r'%STATAEXE%')
        mock_path.side_effect = fx.make_stata_path_effect(r'%STATAEXE%')

        with mock.patch('%s.os.environ' % path, {'STATAEXE': 'statamp.exe'}):
            helpers.standard_test(self,
                                  gs.build_stata,
                                  'do',
                                  env=env,
                                  system_mock=mock_check)