Esempio n. 1
0
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
Esempio n. 2
0
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
Esempio n. 3
0
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) == ""
Esempio n. 4
0
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) == ""
Esempio n. 5
0
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
Esempio n. 6
0
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]) == ""