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'
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