Ejemplo n.º 1
0
    def testUnknownOptions(self):
        '''
        Unknown options should be gracefully ignored with error message
        to stderr
        TODO : add error message test 
        '''
        list_opts = [[self.opt_unknown1], [self.opt_input, self.data_input],
                     [self.opt_output, self.data_output],
                     [self.opt_mapper, self.data_mapper],
                     [self.opt_reducer, self.data_reducer],
                     [self.opt_unknown2]]

        emu_path = os.path.dirname(
            os.path.join(os.path.abspath(os.path.dirname(__file__)), '..'))
        pseud_opts = make_opt_list(list_opts)
        args = emu.analyze_argv(pseud_opts)
        self.assertEqual(args.emulator_path, emu_path, 'Emulator directory')
        self.assertEqual(args.input_path, self.data_input_path,
                         'Input directory')
        self.assertEqual(args.output_path, self.data_output_path,
                         'Output directory')
        self.assertEqual(args.mapper, self.data_mapper_path, 'Mapper')
        self.assertEqual(args.reducer, self.data_reducer_path, 'Reducer')

        # change the order of options
        random.shuffle(list_opts)
        pseud_opts = make_opt_list(list_opts)
        args = emu.analyze_argv(pseud_opts)
        self.assertEqual(args.input_path, self.data_input_path,
                         'Input directory')
        self.assertEqual(args.output_path, self.data_output_path,
                         'Output directory')
        self.assertEqual(args.mapper, self.data_mapper_path, 'Mapper')
        self.assertEqual(args.reducer, self.data_reducer_path, 'Reducer')

        # change the order of options again
        random.shuffle(list_opts)
        pseud_opts = make_opt_list(list_opts)
        args = emu.analyze_argv(pseud_opts)
        self.assertEqual(args.input_path, self.data_input_path,
                         'Input directory')
        self.assertEqual(args.output_path, self.data_output_path,
                         'Output directory')
        self.assertEqual(args.mapper, self.data_mapper_path, 'Mapper')
        self.assertEqual(args.reducer, self.data_reducer_path, 'Reducer')
Ejemplo n.º 2
0
    def testUnknownOptions(self):
        '''
        Unknown options should be gracefully ignored with error message
        to stderr
        TODO : add error message test 
        '''
        list_opts = [ [self.opt_unknown1],
                      [self.opt_input, self.data_input],
                      [self.opt_output, self.data_output],
                      [self.opt_mapper, self.data_mapper],
                      [self.opt_reducer, self.data_reducer],
                      [self.opt_unknown2] ]
        
        emu_path = os.path.dirname(os.path.join(os.path.abspath(os.path.dirname(__file__)), '..'))
        pseud_opts = make_opt_list(list_opts)
        args = emu.analyze_argv(pseud_opts)
        self.assertEqual(args.emulator_path, emu_path, 'Emulator directory')
        self.assertEqual(args.input_path, self.data_input_path, 'Input directory')
        self.assertEqual(args.output_path, self.data_output_path, 'Output directory')
        self.assertEqual(args.mapper, self.data_mapper_path, 'Mapper')
        self.assertEqual(args.reducer, self.data_reducer_path, 'Reducer')
        
        # change the order of options
        random.shuffle(list_opts)
        pseud_opts = make_opt_list(list_opts)
        args = emu.analyze_argv(pseud_opts)
        self.assertEqual(args.input_path, self.data_input_path, 'Input directory')
        self.assertEqual(args.output_path, self.data_output_path, 'Output directory')
        self.assertEqual(args.mapper, self.data_mapper_path, 'Mapper')
        self.assertEqual(args.reducer, self.data_reducer_path, 'Reducer')

        # change the order of options again
        random.shuffle(list_opts)
        pseud_opts = make_opt_list(list_opts)
        args = emu.analyze_argv(pseud_opts)
        self.assertEqual(args.input_path, self.data_input_path, 'Input directory')
        self.assertEqual(args.output_path, self.data_output_path, 'Output directory')
        self.assertEqual(args.mapper, self.data_mapper_path, 'Mapper')
        self.assertEqual(args.reducer, self.data_reducer_path, 'Reducer')
Ejemplo n.º 3
0
    def testCmdenvEmptyVal(self):
        '''
        -cmdenv test with empty value
        '''
        test_var = 'TEST_VAR'
        expected = ''           # empty value
        pseud_opts = make_opt_list( [ [self.opt_cmdenv, test_var + '=' + expected] ] )
        args = emu.analyze_argv(pseud_opts)

        var, val = args.cmdenv[0]
        self.assertTrue(var == test_var, 'Returned environment variable not match original' + var)
        self.assertEqual(val, expected, 'Value for {} not match'.format(var))
        self.assertEqual(len(args.cmdenv), 1, 'the wrong number of items')
Ejemplo n.º 4
0
    def testCmdenvThree(self):
        '''
        -cmdenv test with three options
        '''
        values = { 'VAR1' : 'val1', 'VAR2' : 'val2', 'VAR3' : 'val3' }
        list_opts = [ [self.opt_cmdenv, var + '=' + values[var]] for var in iter(values) ]
        pseud_opts = make_opt_list(list_opts)
        args = emu.analyze_argv(pseud_opts)

        for var, val in args.cmdenv:
            self.assertTrue(var in values, 'Returned environment variable not match original' + var)
            self.assertEqual(val, values[var], 'Value for {} not match'.format(var))
        self.assertEqual(len(args.cmdenv), len(values), 'the wrong number of items')
Ejemplo n.º 5
0
    def testCmdenvNoValue(self):
        '''
        -cmdenv test with duplicate
        '''
        test_var = 'TEST_VAR'
        expected = 'expected_value'
        # 'TEST_VAR=expected_value' and 'TEST_VAR'
        # arg w/o the value part must be ignored
        temp_opts = [ [self.opt_cmdenv, test_var + '=' + expected], [self.opt_cmdenv, test_var] ]
        pseud_opts = make_opt_list( temp_opts )
        args = emu.analyze_argv(pseud_opts)

        var, val = args.cmdenv[0]
        self.assertTrue(var == test_var, 'Returned environment variable not match original' + var)
        self.assertEqual(val, expected, 'Value for {} not match'.format(var))
        self.assertEqual(len(args.cmdenv), 1, 'the wrong number of items')
Ejemplo n.º 6
0
    def testCmdenvEmptyVal(self):
        '''
        -cmdenv test with empty value
        '''
        test_var = 'TEST_VAR'
        expected = ''  # empty value
        pseud_opts = make_opt_list(
            [[self.opt_cmdenv, test_var + '=' + expected]])
        args = emu.analyze_argv(pseud_opts)

        var, val = args.cmdenv[0]
        self.assertTrue(
            var == test_var,
            'Returned environment variable not match original' + var)
        self.assertEqual(val, expected, 'Value for {} not match'.format(var))
        self.assertEqual(len(args.cmdenv), 1, 'the wrong number of items')
Ejemplo n.º 7
0
    def testCmdenvThree(self):
        '''
        -cmdenv test with three options
        '''
        values = {'VAR1': 'val1', 'VAR2': 'val2', 'VAR3': 'val3'}
        list_opts = [[self.opt_cmdenv, var + '=' + values[var]]
                     for var in iter(values)]
        pseud_opts = make_opt_list(list_opts)
        args = emu.analyze_argv(pseud_opts)

        for var, val in args.cmdenv:
            self.assertTrue(
                var in values,
                'Returned environment variable not match original' + var)
            self.assertEqual(val, values[var],
                             'Value for {} not match'.format(var))
        self.assertEqual(len(args.cmdenv), len(values),
                         'the wrong number of items')
Ejemplo n.º 8
0
    def testCmdenvNoValue(self):
        '''
        -cmdenv test with duplicate
        '''
        test_var = 'TEST_VAR'
        expected = 'expected_value'
        # 'TEST_VAR=expected_value' and 'TEST_VAR'
        # arg w/o the value part must be ignored
        temp_opts = [[self.opt_cmdenv, test_var + '=' + expected],
                     [self.opt_cmdenv, test_var]]
        pseud_opts = make_opt_list(temp_opts)
        args = emu.analyze_argv(pseud_opts)

        var, val = args.cmdenv[0]
        self.assertTrue(
            var == test_var,
            'Returned environment variable not match original' + var)
        self.assertEqual(val, expected, 'Value for {} not match'.format(var))
        self.assertEqual(len(args.cmdenv), 1, 'the wrong number of items')
Ejemplo n.º 9
0
    def testCorrectOptions(self):
        # -cmdenv data
        env_var = 'HSETESTVAR'
        env_val = 'hsetestenv_val'
        val_cmdenv = env_var + '=' + env_val

        # -files data
        files = [ 'file1.txt', 'dir/file2.txt' ]
        val_files = ','.join(files)
        num_files = len(files)

        list_opts = [ [self.opt_input, self.data_input],
                      [self.opt_output, self.data_output],
                      [self.opt_interim, self.data_interim],
                      [self.opt_mapper, self.data_mapper],
                      [self.opt_reducer, self.data_reducer],
                      [self.opt_cmdenv, val_cmdenv],
                      [self.opt_files, val_files]
                    ]

        emu_path = os.path.dirname(os.path.join(os.path.abspath(os.path.dirname(__file__)), '..'))
        pseud_opts = make_opt_list(list_opts)
        args = emu.analyze_argv(pseud_opts)
        self.assertEqual(args.emulator_path, emu_path, 'Emulator directory')
        self.assertEqual(args.input_path, self.data_input_path, 'Input directory')
        self.assertEqual(args.output_path, self.data_output_path, 'Output directory')
        self.assertEqual(args.interim_dir, self.data_interim_path, 'Interim directory')
        self.assertEqual(args.mapper, self.data_mapper_path, 'Mapper')
        self.assertEqual(args.reducer, self.data_reducer_path, 'Reducer')

        ret_env_var, ret_env_val = args.cmdenv[0]
        self.assertEqual(ret_env_var, env_var, "Environment variable doesn't exist")
        self.assertEqual(ret_env_val, env_val, "Environment variable wrong value")

        list_files = args.files
        self.assertEqual(len(list_files), num_files, 'Number of files are incorrect')
        for f in files:
            self.assertIn(f, list_files, "{} is not included in file list".format(f))

        # change the order of options
        random.shuffle(list_opts)
        pseud_opts = make_opt_list(list_opts)
        args = emu.analyze_argv(pseud_opts)
        self.assertEqual(args.input_path, self.data_input_path, 'Input directory')
        self.assertEqual(args.output_path, self.data_output_path, 'Output directory')
        self.assertEqual(args.interim_dir, self.data_interim_path, 'Interim directory')
        self.assertEqual(args.mapper, self.data_mapper_path, 'Mapper')
        self.assertEqual(args.reducer, self.data_reducer_path, 'Reducer')
        ret_env_var, ret_env_val = args.cmdenv[0]
        self.assertEqual(ret_env_var, env_var, "Environment variable doesn't exist")
        self.assertEqual(ret_env_val, env_val, "Environment variable wrong value")

        list_files = args.files
        self.assertEqual(len(list_files), num_files, 'Number of files are incorrect')
        for f in files:
            self.assertIn(f, list_files, "{} is not included in file list".format(f))

        # change the order of options again
        random.shuffle(list_opts)
        pseud_opts = make_opt_list(list_opts)
        args = emu.analyze_argv(pseud_opts)
        self.assertEqual(args.input_path, self.data_input_path, 'Input directory')
        self.assertEqual(args.output_path, self.data_output_path, 'Output directory')
        self.assertEqual(args.interim_dir, self.data_interim_path, 'Interim directory')
        self.assertEqual(args.mapper, self.data_mapper_path, 'Mapper')
        self.assertEqual(args.reducer, self.data_reducer_path, 'Reducer')
        ret_env_var, ret_env_val = args.cmdenv[0]
        self.assertEqual(ret_env_var, env_var, "Environment variable doesn't exist")
        self.assertEqual(ret_env_val, env_val, "Environment variable wrong value")

        list_files = args.files
        self.assertEqual(len(list_files), num_files, 'Number of files are incorrect')
        for f in files:
            self.assertIn(f, list_files, "{} is not included in file list".format(f))
Ejemplo n.º 10
0
    def testCorrectOptions(self):
        # -cmdenv data
        env_var = 'HSETESTVAR'
        env_val = 'hsetestenv_val'
        val_cmdenv = env_var + '=' + env_val

        # -files data
        files = ['file1.txt', 'dir/file2.txt']
        val_files = ','.join(files)
        num_files = len(files)

        list_opts = [[self.opt_input, self.data_input],
                     [self.opt_output, self.data_output],
                     [self.opt_interim, self.data_interim],
                     [self.opt_mapper, self.data_mapper],
                     [self.opt_reducer, self.data_reducer],
                     [self.opt_cmdenv, val_cmdenv],
                     [self.opt_files, val_files]]

        emu_path = os.path.dirname(
            os.path.join(os.path.abspath(os.path.dirname(__file__)), '..'))
        pseud_opts = make_opt_list(list_opts)
        args = emu.analyze_argv(pseud_opts)
        self.assertEqual(args.emulator_path, emu_path, 'Emulator directory')
        self.assertEqual(args.input_path, self.data_input_path,
                         'Input directory')
        self.assertEqual(args.output_path, self.data_output_path,
                         'Output directory')
        self.assertEqual(args.interim_dir, self.data_interim_path,
                         'Interim directory')
        self.assertEqual(args.mapper, self.data_mapper_path, 'Mapper')
        self.assertEqual(args.reducer, self.data_reducer_path, 'Reducer')

        ret_env_var, ret_env_val = args.cmdenv[0]
        self.assertEqual(ret_env_var, env_var,
                         "Environment variable doesn't exist")
        self.assertEqual(ret_env_val, env_val,
                         "Environment variable wrong value")

        list_files = args.files
        self.assertEqual(len(list_files), num_files,
                         'Number of files are incorrect')
        for f in files:
            self.assertIn(f, list_files,
                          "{} is not included in file list".format(f))

        # change the order of options
        random.shuffle(list_opts)
        pseud_opts = make_opt_list(list_opts)
        args = emu.analyze_argv(pseud_opts)
        self.assertEqual(args.input_path, self.data_input_path,
                         'Input directory')
        self.assertEqual(args.output_path, self.data_output_path,
                         'Output directory')
        self.assertEqual(args.interim_dir, self.data_interim_path,
                         'Interim directory')
        self.assertEqual(args.mapper, self.data_mapper_path, 'Mapper')
        self.assertEqual(args.reducer, self.data_reducer_path, 'Reducer')
        ret_env_var, ret_env_val = args.cmdenv[0]
        self.assertEqual(ret_env_var, env_var,
                         "Environment variable doesn't exist")
        self.assertEqual(ret_env_val, env_val,
                         "Environment variable wrong value")

        list_files = args.files
        self.assertEqual(len(list_files), num_files,
                         'Number of files are incorrect')
        for f in files:
            self.assertIn(f, list_files,
                          "{} is not included in file list".format(f))

        # change the order of options again
        random.shuffle(list_opts)
        pseud_opts = make_opt_list(list_opts)
        args = emu.analyze_argv(pseud_opts)
        self.assertEqual(args.input_path, self.data_input_path,
                         'Input directory')
        self.assertEqual(args.output_path, self.data_output_path,
                         'Output directory')
        self.assertEqual(args.interim_dir, self.data_interim_path,
                         'Interim directory')
        self.assertEqual(args.mapper, self.data_mapper_path, 'Mapper')
        self.assertEqual(args.reducer, self.data_reducer_path, 'Reducer')
        ret_env_var, ret_env_val = args.cmdenv[0]
        self.assertEqual(ret_env_var, env_var,
                         "Environment variable doesn't exist")
        self.assertEqual(ret_env_val, env_val,
                         "Environment variable wrong value")

        list_files = args.files
        self.assertEqual(len(list_files), num_files,
                         'Number of files are incorrect')
        for f in files:
            self.assertIn(f, list_files,
                          "{} is not included in file list".format(f))