def test_create_filter_range(self): self.assertEqual( create_filter('not a valid field', '1500,2500', SearchWaypoint), None) self.assertEqual(create_filter('walt', '', SearchWaypoint), None) self.assertEqual( create_filter('walt', 'not a, number', SearchWaypoint), None) self.assertEqual(create_filter('walt', '1500,2500', SearchWaypoint), Range(elevation={ 'gte': 1500, 'lte': 2500 })) self.assertEqual( create_filter('walt', '1500.5,2500.99', SearchWaypoint), Range(elevation={ 'gte': 1500.5, 'lte': 2500.99 })) self.assertEqual(create_filter('walt', '1500,', SearchWaypoint), Range(elevation={'gte': 1500})) self.assertEqual(create_filter('walt', '1500', SearchWaypoint), Range(elevation={'gte': 1500})) self.assertEqual(create_filter('walt', ',2500', SearchWaypoint), Range(elevation={'lte': 2500})) self.assertEqual(create_filter('walt', 'NaN,2500', SearchWaypoint), Range(elevation={'lte': 2500})) self.assertEqual(create_filter('walt', '1500,NaN', SearchWaypoint), Range(elevation={'gte': 1500}))
def test_create_filter_range(self): self.assertEqual( create_filter('not a valid field', '1500,2500', SearchWaypoint), None) self.assertEqual( create_filter('walt', '', SearchWaypoint), None) self.assertEqual( create_filter('walt', 'not a, number', SearchWaypoint), None) self.assertEqual( create_filter('walt', '1500,2500', SearchWaypoint), Range(elevation={'gte': 1500, 'lte': 2500})) self.assertEqual( create_filter('walt', '1500.5,2500.99', SearchWaypoint), Range(elevation={'gte': 1500.5, 'lte': 2500.99})) self.assertEqual( create_filter('walt', '1500,', SearchWaypoint), Range(elevation={'gte': 1500})) self.assertEqual( create_filter('walt', '1500', SearchWaypoint), Range(elevation={'gte': 1500})) self.assertEqual( create_filter('walt', ',2500', SearchWaypoint), Range(elevation={'lte': 2500})) self.assertEqual( create_filter('walt', 'NaN,2500', SearchWaypoint), Range(elevation={'lte': 2500})) self.assertEqual( create_filter('walt', '1500,NaN', SearchWaypoint), Range(elevation={'gte': 1500}))
def test_create_filter_arrayenum(self): self.assertEqual(create_filter("wrock", "", SearchWaypoint), None) self.assertEqual(create_filter("wrock", "invalid type", SearchWaypoint), None) self.assertEqual(create_filter("wrock", "basalte", SearchWaypoint), Term(rock_types="basalte")) self.assertEqual(create_filter("wrock", "basalte,invalid type", SearchWaypoint), Term(rock_types="basalte")) self.assertEqual( create_filter("wrock", "basalte,calcaire", SearchWaypoint), Terms(rock_types=["basalte", "calcaire"]) )
def test_create_filter_area_ids(self): self.assertEqual(create_filter('a', '', SearchWaypoint), None) self.assertEqual(create_filter('a', 'invalid id', SearchWaypoint), None) self.assertEqual(create_filter('a', '123', SearchWaypoint), Term(areas=123)) self.assertEqual(create_filter('a', '123,invalid id', SearchWaypoint), Term(areas=123)) self.assertEqual(create_filter('a', '123,456', SearchWaypoint), Terms(areas=[123, 456]))
def test_create_filter_available_locales(self): self.assertEqual(create_filter('l', '', SearchWaypoint), None) self.assertEqual(create_filter('l', 'invalid type', SearchWaypoint), None) self.assertEqual(create_filter('l', 'en', SearchWaypoint), Term(available_locales='en')) self.assertEqual(create_filter('l', 'en,invalid type', SearchWaypoint), Term(available_locales='en')) self.assertEqual(create_filter('l', 'en,fr', SearchWaypoint), Terms(available_locales=['en', 'fr']))
def test_create_filter_enum(self): self.assertEqual(create_filter('wtyp', '', SearchWaypoint), None) self.assertEqual(create_filter('wtyp', 'invalid type', SearchWaypoint), None) self.assertEqual(create_filter('wtyp', 'summit', SearchWaypoint), Term(waypoint_type='summit')) self.assertEqual( create_filter('wtyp', 'summit,invalid type', SearchWaypoint), Term(waypoint_type='summit')) self.assertEqual(create_filter('wtyp', 'summit,lake', SearchWaypoint), Terms(waypoint_type=['summit', 'lake']))
def test_create_filter_arrayenum(self): self.assertEqual(create_filter('wrock', '', SearchWaypoint), None) self.assertEqual( create_filter('wrock', 'invalid type', SearchWaypoint), None) self.assertEqual(create_filter('wrock', 'basalte', SearchWaypoint), Term(rock_types='basalte')) self.assertEqual( create_filter('wrock', 'basalte,invalid type', SearchWaypoint), Term(rock_types='basalte')) self.assertEqual( create_filter('wrock', 'basalte,calcaire', SearchWaypoint), Terms(rock_types=['basalte', 'calcaire']))
def test_create_filter_enum_range(self): self.assertEqual(create_filter("not a valid field", "medium,great", SearchWaypoint), None) self.assertEqual(create_filter("qa", "", SearchWaypoint), None) self.assertEqual(create_filter("qa", "not a, valid enum", SearchWaypoint), None) self.assertEqual(create_filter("qa", "medium,great", SearchWaypoint), Range(quality={"gte": 2, "lte": 4})) self.assertEqual(create_filter("qa", "medium,", SearchWaypoint), Range(quality={"gte": 2})) self.assertEqual(create_filter("qa", "medium", SearchWaypoint), Range(quality={"gte": 2})) self.assertEqual(create_filter("qa", ",great", SearchWaypoint), Range(quality={"lte": 4})) self.assertEqual(create_filter("qa", "invalid enum,great", SearchWaypoint), Range(quality={"lte": 4})) self.assertEqual(create_filter("qa", "medium,invalid enum", SearchWaypoint), Range(quality={"gte": 2}))
def test_create_filter_integer_range(self): self.assertEqual( create_filter('not a valid field', '1200,2400', SearchRoute), None) self.assertEqual(create_filter('ele', '', SearchRoute), None) self.assertEqual(create_filter('ele', 'invalid term', SearchRoute), None) self.assertEqual(create_filter('ele', '1200', SearchRoute), None) self.assertEqual( create_filter('ele', '1200,invalid term', SearchRoute), None) self.assertEqual( create_filter('ele', 'invalid term,2400', SearchRoute), None) self.assertEqual( create_filter('ele', '1200,2400', SearchRoute), Bool(must_not=Bool(should=[ Range(elevation_min={'gt': 2400}), Range(elevation_max={'lt': 1200}), Bool(must=[ Missing(field='elevation_min'), Missing(field='elevation_max') ]) ]))) self.assertEqual( create_filter('height', '1200,2400', SearchWaypoint), Bool(must_not=Bool(should=[ Range(height_min={'gt': 2400}), Range(height_max={'lt': 1200}), Bool(must=[ Missing(field='height_min'), Missing(field='height_max') ]) ])))
def test_create_filter_integer_range(self): self.assertEqual(create_filter("not a valid field", "1200,2400", SearchRoute), None) self.assertEqual(create_filter("ele", "", SearchRoute), None) self.assertEqual(create_filter("ele", "invalid term", SearchRoute), None) self.assertEqual(create_filter("ele", "1200", SearchRoute), None) self.assertEqual(create_filter("ele", "1200,invalid term", SearchRoute), None) self.assertEqual(create_filter("ele", "invalid term,2400", SearchRoute), None) self.assertEqual( create_filter("ele", "1200,2400", SearchRoute), Bool( must_not=Bool( should=[ Range(elevation_min={"gt": 2400}), Range(elevation_max={"lt": 1200}), Bool(must=[Missing(field="elevation_min"), Missing(field="elevation_max")]), ] ) ), ) self.assertEqual( create_filter("height", "1200,2400", SearchWaypoint), Bool( must_not=Bool( should=[ Range(height_min={"gt": 2400}), Range(height_max={"lt": 1200}), Bool(must=[Missing(field="height_min"), Missing(field="height_max")]), ] ) ), )
def test_create_filter_bool(self): self.assertEqual( create_filter('phone', '', SearchWaypoint), None) self.assertEqual( create_filter('phone', 'invalid value', SearchWaypoint), None) self.assertEqual( create_filter('phone', 'true', SearchWaypoint), Term(has_phone=True)) self.assertEqual( create_filter('phone', 'True', SearchWaypoint), Term(has_phone=True)) self.assertEqual( create_filter('phone', '1', SearchWaypoint), Term(has_phone=True)) self.assertEqual( create_filter('phone', 'false', SearchWaypoint), Term(has_phone=False)) self.assertEqual( create_filter('phone', 'False', SearchWaypoint), Term(has_phone=False)) self.assertEqual( create_filter('phone', '0', SearchWaypoint), Term(has_phone=False))
def test_create_filter_range(self): self.assertEqual(create_filter("not a valid field", "1500,2500", SearchWaypoint), None) self.assertEqual(create_filter("walt", "", SearchWaypoint), None) self.assertEqual(create_filter("walt", "not a, number", SearchWaypoint), None) self.assertEqual( create_filter("walt", "1500,2500", SearchWaypoint), Range(elevation={"gte": 1500, "lte": 2500}) ) self.assertEqual( create_filter("walt", "1500.5,2500.99", SearchWaypoint), Range(elevation={"gte": 1500.5, "lte": 2500.99}) ) self.assertEqual(create_filter("walt", "1500,", SearchWaypoint), Range(elevation={"gte": 1500})) self.assertEqual(create_filter("walt", "1500", SearchWaypoint), Range(elevation={"gte": 1500})) self.assertEqual(create_filter("walt", ",2500", SearchWaypoint), Range(elevation={"lte": 2500})) self.assertEqual(create_filter("walt", "NaN,2500", SearchWaypoint), Range(elevation={"lte": 2500})) self.assertEqual(create_filter("walt", "1500,NaN", SearchWaypoint), Range(elevation={"gte": 1500}))
def test_create_filter_enum(self): self.assertEqual( create_filter('wtyp', '', SearchWaypoint), None) self.assertEqual( create_filter('wtyp', 'invalid type', SearchWaypoint), None) self.assertEqual( create_filter('wtyp', 'summit', SearchWaypoint), Term(waypoint_type='summit')) self.assertEqual( create_filter('wtyp', 'summit,invalid type', SearchWaypoint), Term(waypoint_type='summit')) self.assertEqual( create_filter('wtyp', 'summit,lake', SearchWaypoint), Terms(waypoint_type=['summit', 'lake']))
def test_create_filter_arrayenum(self): self.assertEqual( create_filter('wrock', '', SearchWaypoint), None) self.assertEqual( create_filter('wrock', 'invalid type', SearchWaypoint), None) self.assertEqual( create_filter('wrock', 'basalte', SearchWaypoint), Term(rock_types='basalte')) self.assertEqual( create_filter('wrock', 'basalte,invalid type', SearchWaypoint), Term(rock_types='basalte')) self.assertEqual( create_filter('wrock', 'basalte,calcaire', SearchWaypoint), Terms(rock_types=['basalte', 'calcaire']))
def test_create_filter_available_locales(self): self.assertEqual( create_filter('l', '', SearchWaypoint), None) self.assertEqual( create_filter('l', 'invalid type', SearchWaypoint), None) self.assertEqual( create_filter('l', 'en', SearchWaypoint), Term(available_locales='en')) self.assertEqual( create_filter('l', 'en,invalid type', SearchWaypoint), Term(available_locales='en')) self.assertEqual( create_filter('l', 'en,fr', SearchWaypoint), Terms(available_locales=['en', 'fr']))
def test_create_filter_area_ids(self): self.assertEqual( create_filter('a', '', SearchWaypoint), None) self.assertEqual( create_filter('a', 'invalid id', SearchWaypoint), None) self.assertEqual( create_filter('a', '123', SearchWaypoint), Term(areas=123)) self.assertEqual( create_filter('a', '123,invalid id', SearchWaypoint), Term(areas=123)) self.assertEqual( create_filter('a', '123,456', SearchWaypoint), Terms(areas=[123, 456]))
def test_create_filter_bool(self): self.assertEqual(create_filter("plift", "", SearchWaypoint), None) self.assertEqual(create_filter("plift", "invalid value", SearchWaypoint), None) self.assertEqual(create_filter("plift", "true", SearchWaypoint), Term(lift_access=True)) self.assertEqual(create_filter("plift", "True", SearchWaypoint), Term(lift_access=True)) self.assertEqual(create_filter("plift", "1", SearchWaypoint), Term(lift_access=True)) self.assertEqual(create_filter("plift", "false", SearchWaypoint), Term(lift_access=False)) self.assertEqual(create_filter("plift", "False", SearchWaypoint), Term(lift_access=False)) self.assertEqual(create_filter("plift", "0", SearchWaypoint), Term(lift_access=False))
def test_create_filter_date_range(self): self.assertEqual( create_filter('date', '', SearchOuting), None) self.assertEqual( create_filter('date', 'invalid date', SearchOuting), None) self.assertEqual( create_filter('date', '2016-01-01', SearchOuting), Bool(must=[ Range(date_start={'lte': '2016-01-01'}), Range(date_end={'gte': '2016-01-01'}) ])) self.assertEqual( create_filter('date', '2016-01-01,invalid date', SearchOuting), Bool(must=[ Range(date_start={'lte': '2016-01-01'}), Range(date_end={'gte': '2016-01-01'}) ])) self.assertEqual( create_filter('date', '2016-01-01,2016-01-01', SearchOuting), Bool(must=[ Range(date_start={'lte': '2016-01-01'}), Range(date_end={'gte': '2016-01-01'}) ])) self.assertEqual( create_filter('date', '2016-01-01,2016-01-03', SearchOuting), Bool(must_not=Bool(should=[ Range(date_start={'gt': '2016-01-03'}), Range(date_end={'lt': '2016-01-01'}) ])))
def test_create_filter_date(self): self.assertEqual(create_filter('idate', '', SearchImage), None) self.assertEqual(create_filter('idate', 'invalid date', SearchImage), None) self.assertEqual( create_filter('idate', '2016-01-01', SearchImage), Range(date_time={ 'gte': '2016-01-01', 'lte': '2016-01-01' })) self.assertEqual( create_filter('idate', '2016-01-01,invalid date', SearchImage), Range(date_time={ 'gte': '2016-01-01', 'lte': '2016-01-01' })) self.assertEqual( create_filter('idate', '2016-01-01,2016-01-01', SearchImage), Range(date_time={ 'gte': '2016-01-01', 'lte': '2016-01-01' })) self.assertEqual( create_filter('idate', '2016-01-01,2016-01-03', SearchImage), Range(date_time={ 'gte': '2016-01-01', 'lte': '2016-01-03' }))
def test_create_filter_date_range(self): self.assertEqual(create_filter('date', '', SearchOuting), None) self.assertEqual(create_filter('date', 'invalid date', SearchOuting), None) self.assertEqual( create_filter('date', '2016-01-01', SearchOuting), Bool(must=[ Range(date_start={'lte': '2016-01-01'}), Range(date_end={'gte': '2016-01-01'}) ])) self.assertEqual( create_filter('date', '2016-01-01,invalid date', SearchOuting), Bool(must=[ Range(date_start={'lte': '2016-01-01'}), Range(date_end={'gte': '2016-01-01'}) ])) self.assertEqual( create_filter('date', '2016-01-01,2016-01-01', SearchOuting), Bool(must=[ Range(date_start={'lte': '2016-01-01'}), Range(date_end={'gte': '2016-01-01'}) ])) self.assertEqual( create_filter('date', '2016-01-01,2016-01-03', SearchOuting), Bool(must_not=Bool(should=[ Range(date_start={'gt': '2016-01-03'}), Range(date_end={'lt': '2016-01-01'}) ])))
def test_create_filter_bool(self): self.assertEqual(create_filter('plift', '', SearchWaypoint), None) self.assertEqual( create_filter('plift', 'invalid value', SearchWaypoint), None) self.assertEqual(create_filter('plift', 'true', SearchWaypoint), Term(lift_access=True)) self.assertEqual(create_filter('plift', 'True', SearchWaypoint), Term(lift_access=True)) self.assertEqual(create_filter('plift', '1', SearchWaypoint), Term(lift_access=True)) self.assertEqual(create_filter('plift', 'false', SearchWaypoint), Term(lift_access=False)) self.assertEqual(create_filter('plift', 'False', SearchWaypoint), Term(lift_access=False)) self.assertEqual(create_filter('plift', '0', SearchWaypoint), Term(lift_access=False))
def test_create_filter_bool(self): self.assertEqual(create_filter('phone', '', SearchWaypoint), None) self.assertEqual( create_filter('phone', 'invalid value', SearchWaypoint), None) self.assertEqual(create_filter('phone', 'true', SearchWaypoint), Term(has_phone=True)) self.assertEqual(create_filter('phone', 'True', SearchWaypoint), Term(has_phone=True)) self.assertEqual(create_filter('phone', '1', SearchWaypoint), Term(has_phone=True)) self.assertEqual(create_filter('phone', 'false', SearchWaypoint), Term(has_phone=False)) self.assertEqual(create_filter('phone', 'False', SearchWaypoint), Term(has_phone=False)) self.assertEqual(create_filter('phone', '0', SearchWaypoint), Term(has_phone=False))
def test_create_filter_enum_range(self): self.assertEqual( create_filter('not a valid field', 'medium,great', SearchWaypoint), None) self.assertEqual(create_filter('qa', '', SearchWaypoint), None) self.assertEqual( create_filter('qa', 'not a, valid enum', SearchWaypoint), None) self.assertEqual(create_filter('qa', 'medium,great', SearchWaypoint), Range(quality={ 'gte': 2, 'lte': 4 })) self.assertEqual(create_filter('qa', 'medium,', SearchWaypoint), Range(quality={'gte': 2})) self.assertEqual(create_filter('qa', 'medium', SearchWaypoint), Range(quality={'gte': 2})) self.assertEqual(create_filter('qa', ',great', SearchWaypoint), Range(quality={'lte': 4})) self.assertEqual( create_filter('qa', 'invalid enum,great', SearchWaypoint), Range(quality={'lte': 4})) self.assertEqual( create_filter('qa', 'medium,invalid enum', SearchWaypoint), Range(quality={'gte': 2}))
def test_create_filter_enum_range_min_max(self): self.assertEqual(create_filter("not a valid field", "4b,6c", SearchWaypoint), None) self.assertEqual(create_filter("crat", "", SearchWaypoint), None) self.assertEqual(create_filter("crat", "invalid term", SearchWaypoint), None) self.assertEqual(create_filter("crat", "4b", SearchWaypoint), None) self.assertEqual(create_filter("crat", "4b,invalid term", SearchWaypoint), None) self.assertEqual(create_filter("crat", "invalid term,6c", SearchWaypoint), None) self.assertEqual( create_filter("crat", "4b,6c", SearchWaypoint), Bool( must_not=Bool( should=[ Range(climbing_rating_min={"gt": 17}), Range(climbing_rating_max={"lt": 5}), Bool(must=[Missing(field="climbing_rating_min"), Missing(field="climbing_rating_max")]), ] ) ), )
def test_create_filter_enum_range_min_max(self): self.assertEqual( create_filter('not a valid field', '4b,6c', SearchWaypoint), None) self.assertEqual(create_filter('crat', '', SearchWaypoint), None) self.assertEqual(create_filter('crat', 'invalid term', SearchWaypoint), None) self.assertEqual(create_filter('crat', '4b', SearchWaypoint), None) self.assertEqual( create_filter('crat', '4b,invalid term', SearchWaypoint), None) self.assertEqual( create_filter('crat', 'invalid term,6c', SearchWaypoint), None) self.assertEqual( create_filter('crat', '4b,6c', SearchWaypoint), Bool(must_not=Bool(should=[ Range(climbing_rating_min={'gt': 17}), Range(climbing_rating_max={'lt': 5}), Bool(must=[ Missing(field='climbing_rating_min'), Missing(field='climbing_rating_max') ]) ])))
def test_create_filter_date_range(self): self.assertEqual(create_filter("date", "", SearchOuting), None) self.assertEqual(create_filter("date", "invalid date", SearchOuting), None) self.assertEqual( create_filter("date", "2016-01-01", SearchOuting), Bool(must=[Range(date_start={"lte": "2016-01-01"}), Range(date_end={"gte": "2016-01-01"})]), ) self.assertEqual( create_filter("date", "2016-01-01,invalid date", SearchOuting), Bool(must=[Range(date_start={"lte": "2016-01-01"}), Range(date_end={"gte": "2016-01-01"})]), ) self.assertEqual( create_filter("date", "2016-01-01,2016-01-01", SearchOuting), Bool(must=[Range(date_start={"lte": "2016-01-01"}), Range(date_end={"gte": "2016-01-01"})]), ) self.assertEqual( create_filter("date", "2016-01-01,2016-01-03", SearchOuting), Bool(must_not=Bool(should=[Range(date_start={"gt": "2016-01-03"}), Range(date_end={"lt": "2016-01-01"})])), )
def test_create_filter_date(self): self.assertEqual(create_filter("idate", "", SearchImage), None) self.assertEqual(create_filter("idate", "invalid date", SearchImage), None) self.assertEqual( create_filter("idate", "2016-01-01", SearchImage), Range(date_time={"gte": "2016-01-01", "lte": "2016-01-01"}), ) self.assertEqual( create_filter("idate", "2016-01-01,invalid date", SearchImage), Range(date_time={"gte": "2016-01-01", "lte": "2016-01-01"}), ) self.assertEqual( create_filter("idate", "2016-01-01,2016-01-01", SearchImage), Range(date_time={"gte": "2016-01-01", "lte": "2016-01-01"}), ) self.assertEqual( create_filter("idate", "2016-01-01,2016-01-03", SearchImage), Range(date_time={"gte": "2016-01-01", "lte": "2016-01-03"}), )
def test_create_filter_area_ids(self): self.assertEqual(create_filter("a", "", SearchWaypoint), None) self.assertEqual(create_filter("a", "invalid id", SearchWaypoint), None) self.assertEqual(create_filter("a", "123", SearchWaypoint), Term(areas=123)) self.assertEqual(create_filter("a", "123,invalid id", SearchWaypoint), Term(areas=123)) self.assertEqual(create_filter("a", "123,456", SearchWaypoint), Terms(areas=[123, 456]))
def test_create_filter_enum(self): self.assertEqual(create_filter("wtyp", "", SearchWaypoint), None) self.assertEqual(create_filter("wtyp", "invalid type", SearchWaypoint), None) self.assertEqual(create_filter("wtyp", "summit", SearchWaypoint), Term(waypoint_type="summit")) self.assertEqual(create_filter("wtyp", "summit,invalid type", SearchWaypoint), Term(waypoint_type="summit")) self.assertEqual(create_filter("wtyp", "summit,lake", SearchWaypoint), Terms(waypoint_type=["summit", "lake"]))
def test_create_filter_available_locales(self): self.assertEqual(create_filter("l", "", SearchWaypoint), None) self.assertEqual(create_filter("l", "invalid type", SearchWaypoint), None) self.assertEqual(create_filter("l", "en", SearchWaypoint), Term(available_locales="en")) self.assertEqual(create_filter("l", "en,invalid type", SearchWaypoint), Term(available_locales="en")) self.assertEqual(create_filter("l", "en,fr", SearchWaypoint), Terms(available_locales=["en", "fr"]))