Ejemplo n.º 1
0
def test_api_model_to_internal(api_model):
    husky_model = FdqModelMapper.to_internal(api_model, _VIRTUAL_DATA_SOURCE,
                                             'company_id')
    assert husky_model.to_primitive() == {
        'data_sources': [_VIRTUAL_DATA_SOURCE],
        'fully_qualified_name_parts':
        api_model.data_source.split('.'),
        'model_type':
        'metric',
        'attributes': {
            attr.taxon: attr.to_primitive()
            for api_attr in api_model.attributes
            for attr in FdqModelAttributeMapper.to_internal(
                api_attr, _VIRTUAL_DATA_SOURCE, set(api_model.identifiers))
        },
        'company_id':
        'company_id',
        'joins': [
            FdqModelJoinMapper.to_internal(
                join, _VIRTUAL_DATA_SOURCE).to_primitive()
            for join in api_model.joins
        ],
        'name':
        prefix_with_virtual_data_source(_VIRTUAL_DATA_SOURCE,
                                        api_model.model_name),
        'project_id':
        None,
        'visibility':
        api_model.visibility.name,
    }
Ejemplo n.º 2
0
def test_api_model_attribute_to_internal(model_attr):
    identifiers = {'taxon_slug'}
    attrs = FdqModelAttributeMapper.to_internal(model_attr,
                                                _VIRTUAL_DATA_SOURCE,
                                                identifiers)

    assert [attr.to_primitive() for attr in attrs] == [{
        'tel_transformation':
        model_attr.data_reference,
        'taxon':
        prefix_with_virtual_data_source(_VIRTUAL_DATA_SOURCE,
                                        model_attr.field_map[0]),
        'identifier':
        model_attr.field_map[0] in identifiers,
        'quantity_type':
        ValueQuantityType.scalar.value,
    }]