def get_value(parsable_out, division, section, subsection, key): """ Gets the value (right-most field) out of gristle_determinator parsable output given the key values for the rest of the fields. """ mydialect = csv.Dialect mydialect.delimiter = '|' mydialect.quoting = file_type.get_quote_number('QUOTE_ALL') mydialect.quotechar = '"' mydialect.lineterminator = '\n' csvobj = csv.reader(parsable_out.split('\n'), dialect=mydialect) for record in csvobj: if not record: continue assert len(record) == 5 rec_division = record[0] rec_section = record[1] rec_subsection = record[2] rec_key = record[3] rec_value = record[4] if (rec_division == division and rec_section == section and rec_subsection == subsection and rec_key == key): return rec_value return None
def setup_method(self, method): recs = [['Alabama', '8', '18'], ['Alaska', '6', '16'], ['Arizona', '6', '14'], ['Arkansas', '2', '12'], ['California', '19', '44']] self.file_struct = {} self.field_struct = {} fqfn = generate_test_file(delim='|', rec_list=recs, quoted=False) cmd = '%s %s --outputformat=parsable' % (os.path.join( script_path, 'gristle_determinator'), fqfn) r = envoy.run(cmd) #print r.std_out #print r.std_err assert r.status_code == 0 mydialect = csv.Dialect mydialect.delimiter = '|' mydialect.quoting = file_type.get_quote_number('QUOTE_ALL') mydialect.quotechar = '"' mydialect.lineterminator = '\n' csvobj = csv.reader(r.std_out.split('\n'), dialect=mydialect) for record in csvobj: if not record: continue assert len(record) == 5 division = record[0] section = record[1] subsection = record[2] key = record[3] value = record[4] assert division in [ 'file_analysis_results', 'field_analysis_results' ] if division == 'file_analysis_results': assert section == 'main' assert subsection == 'main' self.file_struct[key] = value elif division == 'field_analysis_results': assert 'field_' in section assert subsection in ['main', 'top_values'] if section not in self.field_struct: self.field_struct[section] = {} if subsection not in self.field_struct[section]: self.field_struct[section][subsection] = {} self.field_struct[section][subsection][key] = value
def setup_method(self, method): recs = [ ['Alabama','8','18'], ['Alaska','6','16'], ['Arizona','6','14'], ['Arkansas','2','12'], ['California','19','44'] ] self.file_struct = {} self.field_struct = {} fqfn = generate_test_file(delim='|', rec_list=recs, quoted=False) cmd = '%s %s --outputformat=parsable' % (os.path.join(script_path, 'gristle_determinator'), fqfn) r = envoy.run(cmd) print r.std_out print r.std_err assert r.status_code == 0 mydialect = csv.Dialect mydialect.delimiter = '|' mydialect.quoting = file_type.get_quote_number('QUOTE_ALL') mydialect.quotechar = '"' mydialect.lineterminator = '\n' csvobj = csv.reader(r.std_out.split('\n'), dialect=mydialect) for record in csvobj: if not record: continue assert len(record) == 5 division = record[0] section = record[1] subsection = record[2] key = record[3] value = record[4] assert division in ['file_analysis_results','field_analysis_results'] if division == 'file_analysis_results': assert section == 'main' assert subsection == 'main' self.file_struct[key] = value elif division == 'field_analysis_results': assert 'field_' in section assert subsection in ['main','top_values'] if section not in self.field_struct: self.field_struct[section] = {} if subsection not in self.field_struct[section]: self.field_struct[section][subsection] = {} self.field_struct[section][subsection][key] = value