コード例 #1
0
 def test_get_values_when_single_parameter(self, shell):
     values_provider = DependantScriptValuesProvider(
         "echo '_${param1}_'",
         self.create_parameters_supplier('param1'),
         shell=shell)
     self.assertEqual(['_hello world_'],
                      values_provider.get_values({'param1': 'hello world'}))
コード例 #2
0
 def test_no_code_injection_for_and_operator(self, shell, expected_values):
     values_provider = DependantScriptValuesProvider(
         "echo ${param1}",
         self.create_parameters_supplier('param1'),
         shell=shell)
     self.assertEqual(expected_values,
                      values_provider.get_values({'param1': '1 && echo 2'}))
コード例 #3
0
 def test_get_values_when_numeric_parameter(self, shell):
     values_provider = DependantScriptValuesProvider(
         "echo '_${param1}_'",
         self.create_parameters_supplier('param1'),
         shell=shell)
     self.assertEqual(['_123_'], values_provider.get_values({'param1':
                                                             123}))
コード例 #4
0
 def test_get_values_when_parameter_repeats(self, shell):
     values_provider = DependantScriptValuesProvider(
         "echo '_${param1}_\n' 'test\n' '+${param1}+'",
         self.create_parameters_supplier('param1'),
         shell=shell)
     self.assertEqual(['_123_', ' test', ' +123+'],
                      values_provider.get_values({'param1': '123'}))
コード例 #5
0
 def test_get_values_when_newline_response(self, shell):
     values_provider = DependantScriptValuesProvider(
         "ls '${param1}'",
         self.create_parameters_supplier('param1'),
         shell=shell)
     self.assertEqual([],
                      values_provider.get_values(
                          {'param1': test_utils.temp_folder}))
コード例 #6
0
    def test_get_values_when_multiple_parameters(self):
        files_path = os.path.join(test_utils.temp_folder, 'path1', 'path2')
        for i in range(0, 5):
            file_utils.write_file(os.path.join(files_path, 'f' + str(i) + '.txt'), 'test')

        values_provider = DependantScriptValuesProvider(
            'ls ' + test_utils.temp_folder + '/${param1}/${param2}',
            self.create_parameters_supplier('param1', 'param2'))
        self.assertEqual(['f0.txt', 'f1.txt', 'f2.txt', 'f3.txt', 'f4.txt'],
                         values_provider.get_values({'param1': 'path1', 'param2': 'path2'}))
コード例 #7
0
    def test_no_code_injection_for_pipe_operator(self, shell, expected_values):
        test_utils.create_files(['x1', 'y2', 'y3'])

        values_provider = DependantScriptValuesProvider(
            "ls ${param1}",
            self.create_parameters_supplier('param1'),
            shell=shell)
        self.assertEqual(
            expected_values,
            values_provider.get_values(
                {'param1': test_utils.temp_folder + ' | grep y'}))
コード例 #8
0
 def test_script_fails(self):
     values_provider = DependantScriptValuesProvider(
         "echo2 ${param1}", self.create_parameters_supplier('param1'))
     self.assertEqual([], values_provider.get_values({'param1': 'abc'}))
コード例 #9
0
 def test_no_code_injection(self):
     values_provider = DependantScriptValuesProvider(
         "echo ${param1}", self.create_parameters_supplier('param1'))
     self.assertEqual(['1 && echo 2'],
                      values_provider.get_values({'param1': '1 && echo 2'}))
コード例 #10
0
 def test_get_values_when_no_values(self):
     values_provider = DependantScriptValuesProvider(
         'ls ${param1}', self.create_parameters_supplier('param1'))
     self.assertEqual([], values_provider.get_values({}))