Skip to content

Commit

Permalink
Add examples in README
Browse files Browse the repository at this point in the history
  • Loading branch information
vuilleumierc committed Oct 16, 2024
1 parent 283be30 commit 9c8eae5
Showing 1 changed file with 68 additions and 0 deletions.
68 changes: 68 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,71 @@ geoserver = GeoServerCloud(
)
geoserver.create_workspace("newworkspace")
```

## About

Lightweight Python client to interact with GeoServer Cloud REST API, GeoServer ACL and OGC services.
Intended use cases are listed below.

### Programmatic setup of a GeoServer catalog

For example, creating a workspace, connecting to a PostGIS datastore and publishing a PG layer:

```python
geoserver.create_workspace("example")
geoserver.create_pg_datastore(
workspace="example",
datastore="example_store",
pg_host="localhost",
pg_port=5432,
pg_db="database",
pg_user="user",
pg_password="password"
)
geoserver.create_feature_type(
layer="layer_example"
workspace="example",
datastore="example_store",
title={
"en":"Layer title",
"fr": "Titre de la couche",
"default": "Default title",
},
)
```

### Testing

Automatic tests of GeoServer functionalities with `pytest`, for example before upgrading.
The example below tests the fallback mechanism for internationalized layer titles in the GetCapabilities document.

```python
@pytest.mark.parametrize(
"language,expected_title",
[
(
"en",
"Layer title",
),
(
"fr",
"Titre de la couche",
),
(
"de,en",
"Layer title",
),
(
None,
"Default title",
),
],
)
def test_i18n_layer_title(geoserver, language, expected_title):
capabilities = geoserver.get_wms_layers(
workspace="example",
accept_languages=language,
)
layer = capabilities.get("Layer")
assert layer.get("Title") == expected_title
```

0 comments on commit 9c8eae5

Please sign in to comment.