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')
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')
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')
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')
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')
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')
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')
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')
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))
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))