Ejemplo n.º 1
0
def test_get_dataset_range_fields():
    xx = get_dataset_fields(METADATA_DOC_RANGES)
    v = xx['x_range'].extract(SAMPLE_DOC_RANGES)
    assert v == Range(1, 4)

    v = xx['t_range'].extract(SAMPLE_DOC_RANGES)
    assert v.begin.strftime('%Y-%m-%d') == "1999-04-15"
    assert v.end.strftime('%Y-%m-%d') == "1999-04-16"

    # missing range should return None
    assert xx['ab'].extract({}) is None

    # partially missing Range
    assert xx['ab'].extract(dict(a=3)) == Range(3, None)
    assert xx['ab'].extract(dict(b=4)) == Range(None, 4)

    # float-range conversion
    assert xx['float_range'].type_name == 'numeric-range'
Ejemplo n.º 2
0
def test_get_dataset_simple_fields():
    xx = get_dataset_fields(METADATA_DOC)
    assert xx['x_default_type'].type_name == 'string'

    type_map = dict(
        double=float,
        integer=int,
        string=str,
        datetime=datetime.datetime,
        numeric=decimal.Decimal,
    )

    for n, f in xx.items():
        assert n == f.name
        assert isinstance(f.description, str)

        expected_type = type_map.get(f.type_name)
        vv = f.extract(SAMPLE_DOC)
        assert isinstance(vv, expected_type)

        # missing data should return None
        assert f.extract({}) is None