A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/yohanboniface/osm-geocoding-tester below:

geocoders/geocoder-tester: Run search queries against a geocoder that supports geocodejson spec.

Run search queries against a geocoder that supports geocodejson spec.

Simply:

For a global help, type:

Tests are split by geographical area, so you can run only a subset of all the tests, for example because your local database only contains a small area, or because you want to focus on some data.

Available subsets: germany, france, iledefrance, italy.

If you want to run only a subset of the tests, run for example

What if I want to have details about the failures?

How can I stop at first failing test?

Can I change the api URL I'm testing against?

py.test --api-url http://photon.komoot.de/api/

If you want to test not only against another photon instance, but against a nominatim or pelias service, supply the optional --api-type parameter and specify either photon, nominatim or pelias.

py.test --api-url https://nominatim.openstreetmap.org/ --api-type nominatim

Note that support for pelias is still rudimentary.

Can I limit the number of tests to be run (even if my filter select thousands of tests) ?

Or, to limit the number of failures:

Can I have a geojson to compare failures ?

Sometimes, the data used by the search engine is not perfect, so to run the checks without comparing diacritics and such:

You can compare two runs (for example to compare two branches). First, save the report from the first run:

py.test --save-report path/to/report.log

Then compare when running a new version

py.test --compare-report path/to/report.log

Note: in compare mode, only new failures will appear as "FAILED" and their traceback will be rendered; already known failures will appear as "xfail" and in yellow instead of red. If you want those known to fail tests not to be run at all (thus you'll don't know how many of them now pass), you can use the --skip-xfail command line argument.

We support python, CSV and YAML format.

Before creating a new file, check that there isn't a one that can host the test you want to add.

How do I name my file? Just make it start with test_, and chose the right extension according to the format you want to use: .py, .csv or .yml.

Where do I save my file? Chose the right geographical area, and if you create a new area remember to create all levels, like france/iledefrance/paris.

Remember to check the tests already done to get inspiration.

You generally want to use YAML format if you are managing tests by hand in your text editor, CSV if you are generating test cases from a script, and python test cases if you need more control.

They are normal python tests. Just note that you have two utils in base.py: search and assert_search that can do a lot for you.

One column is mandatory: query, where you store the query you make. Then you can add as many expected_xxx columns you want, according to what you want to test. For example, to test the name in the result, you will store the expected value in the column expected_name; for an osm_id it will be expected_osm_id, and so on. Note on expected_coordinate format: it should be of the form lat,lon,tolerated deviation in meters, e.g. 51.0,10.3,700.

Optional columns:

The spec name is the query, then one key is mandatory: expected, which then has the subkeys you want to test against (name, housenumber…). Optional keys: limit, lang, lat and lon, skip. You can add categories to your test by using the key mark (which expects a list), that you can then run with -m yourmarker.

Geocoder-tester is available under a MIT license. See LICENSE.txt for more information.

Some of the test cases under geocoder_tester/world/ are derived from data with other licenses:

Please refer to the license files in the appropriate subdirectories. When no separate license file is present, the tests are considered to be in the public domain. You may use them without any restrictions.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4