def process_record(config, line_index, line_number, o, outputs, schemas, templates, validators, rendering_functions): stream = o['stream'] if stream not in schemas: raise Exception( "A record for stream {} was encountered before a corresponding schema" .format(stream)) output_file_list = outputs[stream] template_list = templates[stream] # Get schema for this record's stream schema = schemas[stream] # Validate record validators[stream].validate(o['record']) record_dict = o['record'] # enrich record with processing specific values record_dict['record_index'] = line_index record_dict['record_number'] = line_number record_values = wrap_namespace(record_dict) schema_values = wrap_namespace(schema) for templates in template_list: one_file_per_record = templates['one_file_per_record'] output_file = get_or_open_file_for_template(config, one_file_per_record, output_file_list, record_dict, templates, stream) render_templates_for_record(line_index, one_file_per_record, output_file, record_values, schema_values, templates, rendering_functions) line_index += 1 line_number += 1 return record_values, schema_values, line_index, line_number
def test_access_attribute(): # given record_dict = { "checked": True, "dimensions": { "width": 20, "height": 40 }, "tags": ["rNEZGFXulwhyahOLnDEKRYAzbvHvkMRLsBSMxMxRRFkVhrvPoTeTgl", "WfCqViSIjILXTiUxHWPMKhYBHHvwjpjGewtvKezMrKXxgHiXavUWmCBDXkOBHNlGDSzvFvsYZgztrpmxDAxIFz", "AWiLOHpyJDWRzSoZLWlFtPxLHwIxSyPDcgHWIQznfmGhPiTZPBXpQinmVWnQpQQDufH", "CFEpSHIrsQRhQArc", "sDxgDwkbCxydjFiUdAKpGUtvSkslNyRXHIfLiOHsCtoAzvKmuhXkUAiaZTDAWyHsLtflCWqouPRsrbDAAIoVgQjN", "VSEUqAEMWVgiJZZqhgKiRTAGzFbSvfnCP", "ThcDIgAItOnp", "jFpmDZckKYJeFmjPSCiWiCKavrOldVdWcyD"], "inner": [ {"key1": "value1"}, {"key1": "value2"} ] } # when record_values = wrap_namespace(record_dict) # then assert record_values.checked is not None assert record_values.checked is True assert record_values.dimensions.width is not None assert 20 == record_values.dimensions.width assert record_values.dimensions.height is not None assert 40 == record_values.dimensions.height assert record_values.tags[0] is not None assert "rNEZGFXulwhyahOLnDEKRYAzbvHvkMRLsBSMxMxRRFkVhrvPoTeTgl" == record_values.tags[0] assert record_values.inner[0].key1 is not None assert "value1" == record_values.inner[0].key1 assert record_values.inner[1].key1 is not None assert "value2" == record_values.inner[1].key1
def test_access_inner_invalid3_attribute(): # given record_dict = { "checked": True, "dimensions": None, } # when record_values = wrap_namespace(record_dict) # then assert record_values.dimensions.width is not None assert str(record_values.dimensions.width) == ""
def test_access_inner_invalid_attribute(): # given record_dict = { "checked": True, "dimensions": { "width": 20, "height": 40 } } # when record_values = wrap_namespace(record_dict) # then assert record_values.invalid.width is not None assert str(record_values.invalid.width) == ""
def test_access_inner_invalid2_attribute(): # given record_dict = { "checked": True, "inner": [ None, {"key1": "value2"} ] } # when record_values = wrap_namespace(record_dict) # then assert record_values.inner[0].key1 is not None assert str(record_values.inner[0].key1) == "" assert record_values.inner[1].key1 is not None assert "value2" == record_values.inner[1].key1
def test_access_inner_invalid4_attribute(): # given record_dict = { "checked": True, "dimensions": None, "tags": ["rNEZGFXulwhyahOLnDEKRYAzbvHvkMRLsBSMxMxRRFkVhrvPoTeTgl", None, "AWiLOHpyJDWRzSoZLWlFtPxLHwIxSyPDcgHWIQznfmGhPiTZPBXpQinmVWnQpQQDufH", "CFEpSHIrsQRhQArc", "sDxgDwkbCxydjFiUdAKpGUtvSkslNyRXHIfLiOHsCtoAzvKmuhXkUAiaZTDAWyHsLtflCWqouPRsrbDAAIoVgQjN", "VSEUqAEMWVgiJZZqhgKiRTAGzFbSvfnCP", "ThcDIgAItOnp", "jFpmDZckKYJeFmjPSCiWiCKavrOldVdWcyD"], } # when record_values = wrap_namespace(record_dict) # then assert record_values.tags[1] is not None assert str(record_values.tags[1]) == ""