Skip to content

Commit

Permalink
- Travis fix
Browse files Browse the repository at this point in the history
  • Loading branch information
afabiani committed Jun 3, 2020
1 parent 5e04b45 commit 8bc81f7
Show file tree
Hide file tree
Showing 6 changed files with 59 additions and 69 deletions.
38 changes: 7 additions & 31 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,34 +12,10 @@ services:
- postgresql
matrix:
include:
- python: "2.7"
env: GS_VERSION=2.12.x
- python: "2.7"
env: GS_VERSION=2.13.x
- python: "2.7"
env: GS_VERSION=2.14.x
- python: "2.7"
env: GS_VERSION=2.15.x
- python: "2.7"
env: GS_VERSION=master
- python: "3.6"
env: GS_VERSION=2.12.x
- python: "3.6"
env: GS_VERSION=2.13.x
- python: "3.6"
env: GS_VERSION=2.14.x
- python: "3.6"
env: GS_VERSION=2.15.x
- python: "3.6"
env: GS_VERSION=master
- python: "3.7"
env: GS_VERSION=2.12.x
- python: "3.7"
env: GS_VERSION=2.13.x
- python: "3.7"
env: GS_VERSION=2.14.x
env: GS_VERSION=2.16.x
- python: "3.7"
env: GS_VERSION=2.15.x
env: GS_VERSION=2.17.x
- python: "3.7"
env: GS_VERSION=master
install:
Expand All @@ -50,22 +26,22 @@ install:
- update-alternatives --list java
- mkdir gs
- pushd gs
- wget http://central.maven.org/maven2/org/eclipse/jetty/jetty-runner/9.4.12.v20180830/jetty-runner-9.4.12.v20180830.jar
- wget https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-runner/9.4.7.v20170914/jetty-runner-9.4.7.v20170914.jar
- wget https://build.geoserver.org/geoserver/${GS_VERSION}/geoserver-${GS_VERSION}-latest-war.zip
- unzip geoserver-${GS_VERSION}-latest-war.zip
- popd
- pip install .
- pip install psycopg2
before_script:
- if [[ "$GS_VERSION" == "2.16.x" ]] || [[ "$GS_VERSION" == "2.15.x" ]] || [[ "$GS_VERSION" == "master" ]]; then
/usr/local/lib/jvm/openjdk11/bin/java -Xmx1024m -Dorg.eclipse.jetty.server.webapp.parentLoaderPriority=true -jar gs/jetty-runner-9.4.12.v20180830.jar --path /geoserver gs/geoserver.war > /dev/null 2>&1 &
- if [[ "$GS_VERSION" == "2.16.x" ]] || [[ "$GS_VERSION" == "2.17.x" ]] || [[ "$GS_VERSION" == "master" ]]; then
/usr/local/lib/jvm/openjdk11/bin/java -Xmx1024m -Dorg.eclipse.jetty.server.webapp.parentLoaderPriority=true -jar gs/jetty-runner-9.4.7.v20170914.jar --path /geoserver gs/geoserver.war > /dev/null 2>&1 &
else
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -Xmx1024m -Dorg.eclipse.jetty.server.webapp.parentLoaderPriority=true -jar gs/jetty-runner-9.4.12.v20180830.jar --path /geoserver gs/geoserver.war > /dev/null 2>&1 &
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -Xmx1024m -Dorg.eclipse.jetty.server.webapp.parentLoaderPriority=true -jar gs/jetty-runner-9.4.7.v20170914.jar --path /geoserver gs/geoserver.war > /dev/null 2>&1 &
fi
- psql -U postgres -c "create extension postgis"
- psql -U postgres -c "create database db;"
- psql -U postgres -d db -c "create extension postgis"
- psql -U postgres -c "alter user postgres with password 'password';"
- psql -U postgres -c "alter user postgres with password 'postgres';"
- sleep 30
script:
- python setup.py test
Expand Down
4 changes: 4 additions & 0 deletions run_tests.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
PGPASSWORD=postgres psql -h localhost -U postgres -c "drop database db;"
PGPASSWORD=postgres psql -h localhost -U postgres -c "create database db;"
PGPASSWORD=postgres psql -h localhost -U postgres -d db -c "create extension postgis"
python setup.py test
39 changes: 26 additions & 13 deletions src/geoserver/catalog.py
Original file line number Diff line number Diff line change
Expand Up @@ -245,6 +245,8 @@ def is_valid(cached_response):

def parse_or_raise(xml):
try:
if not isinstance(xml, string_types):
xml = xml.decode()
return XML(xml)
except (ExpatError, SyntaxError) as e:
msg = "GeoServer gave non-XML response for [GET %s]: %s"
Expand Down Expand Up @@ -325,7 +327,7 @@ def get_stores(self, names=None, workspaces=None):
else:
workspaces = self.get_workspaces(names=workspaces)
else:
workspaces = []
workspaces = self.get_workspaces()

stores = []
for ws in workspaces:
Expand All @@ -340,9 +342,13 @@ def get_stores(self, names=None, workspaces=None):
names = []
elif isinstance(names, string_types):
names = [s.strip() for s in names.split(',') if s.strip()]
elif not isinstance(names, list):
names = [names]
if len(names) and not isinstance(names[0], string_types):
names = [_n.name for _n in names]

if stores and names:
return ([store for store in stores if store.name in names])
return [_s for _s in stores if _s.name in names]

return stores

Expand Down Expand Up @@ -537,7 +543,7 @@ def create_imagemosaic(self, name, data, configure='first', workspace=None, over
try:
resp = self.http_request(url, method='put', data=upload_data, headers=headers)
if resp.status_code != 201:
raise FailedRequestError('Failed to create ImageMosaic {} : {}, {}'.format(name, resp.status_code, resp.text))
raise FailedRequestError('Failed to create ImageMosaic {} : {}, {}'.format(url, resp.status_code, resp.text))
self._cache.clear()
finally:
if hasattr(upload_data, "close"):
Expand Down Expand Up @@ -898,9 +904,11 @@ def get_resources(self, names=None, stores=None, workspaces=None):
names, stores and workspaces can be provided as a comma delimited strings or as arrays, and are used for filtering.
Will always return an array.
'''
if workspaces and not isinstance(workspaces, list):
workspaces = [workspaces]

if not stores:
_stores = self.get_stores(
names=names,
workspaces=workspaces
)
elif not isinstance(stores, list):
Expand All @@ -912,18 +920,23 @@ def get_resources(self, names=None, stores=None, workspaces=None):
for s in _stores:
try:
if isinstance(s, string_types):
s = self.get_store(
s,
workspace=workspaces[0] if workspaces else None
)
resources.extend(s.get_resources())
if workspaces:
for w in workspaces:
if self.get_store(s, workspace=w):
s = self.get_store(s, workspace=w)
if s:
resources.extend(s.get_resources())
else:
s = self.get_store(s)
if s:
resources.extend(s.get_resources())
else:
resources.extend(s.get_resources())
except FailedRequestError:
continue

if names is None:
names = []
elif isinstance(names, string_types):
names = [s.strip() for s in names.split(',') if s.strip()]
if isinstance(names, string_types):
names = [s.strip() for s in names.split(',')]

if resources and names:
return ([resource for resource in resources if resource.name in names])
Expand Down
2 changes: 1 addition & 1 deletion src/geoserver/style.py
Original file line number Diff line number Diff line change
Expand Up @@ -117,4 +117,4 @@ def sld_body(self):
def update_body(self, body):
headers = {"Content-Type": self.content_type}
self.catalog.http_request(
self.body_href, body, "PUT", headers)
self.body_href, data=body, method='put', headers=headers)
43 changes: 20 additions & 23 deletions test/catalogtests.py
Original file line number Diff line number Diff line change
Expand Up @@ -192,8 +192,7 @@ def testStores(self):
self.assertEqual("states_shapefile", self.cat.get_stores(names="states_shapefile", workspaces=topp.name)[0].name)
self.assertEqual("states_shapefile", self.cat.get_stores(names="states_shapefile")[0].name)
self.assertEqual("sfdem", self.cat.get_stores(names="sfdem", workspaces=sf.name)[0].name)
self.assertEqual("sfdem", self.cat.get_stores(names="sfdem")[0].name)
self.assertEqual("sfdem", self.cat.get_store("sfdem").name)
self.assertEqual("sfdem", self.cat.get_store("sfdem", workspace="sf").name)
self.assertIsNone(self.cat.get_store("blah+blah-"))

def testResources(self):
Expand All @@ -202,16 +201,15 @@ def testResources(self):
states = self.cat.get_stores(names="states_shapefile", workspaces=topp.name)[0]
sfdem = self.cat.get_stores(names="sfdem", workspaces=sf.name)[0]
self.assertEqual(19, len(self.cat.get_resources()))
self.assertEqual(2, len(self.cat.get_resources(stores=[states.name, sfdem.name])))
self.assertEqual(2, len(self.cat.get_resources(stores=[states.name, sfdem.name], workspaces=[topp.name, sf.name])))
self.assertEqual(11, len(self.cat.get_resources(workspaces=[topp.name, sf.name])))

self.assertEqual("states", self.cat.get_resources(names="states", stores=states.name)[0].name)
self.assertEqual("states", self.cat.get_resources(names="states", stores=states.name, workspaces=topp.name)[0].name)
self.assertEqual("states", self.cat.get_resources(names="states", workspaces=topp.name)[0].name)
self.assertEqual("states", self.cat.get_resources(names="states")[0].name)
self.assertEqual("states", self.cat.get_resource("states").name)
self.assertEqual("states", self.cat.get_resource("states", workspace=topp.name).name)
self.assertIsNone(self.cat.get_resource("blah+1blah-2"))

states = self.cat.get_resources(names="states")[0]
states = self.cat.get_resources(names="states", workspaces=topp.name)[0]

fields = [
states.title,
Expand All @@ -227,9 +225,8 @@ def testResources(self):
self.assertFalse(len(states.attributes) == 0)
self.assertTrue(states.enabled)

self.assertEqual("sfdem", self.cat.get_resources(names="sfdem", stores=sfdem.name)[0].name)
self.assertEqual("sfdem", self.cat.get_resources(names="sfdem", stores=sfdem.name, workspaces=sf.name)[0].name)
self.assertEqual("sfdem", self.cat.get_resources(names="sfdem", workspaces=sf.name)[0].name)
self.assertEqual("sfdem", self.cat.get_resources(names="sfdem")[0].name)

def testResourcesUpdate(self):
res_dest = self.cat.get_resources()
Expand Down Expand Up @@ -413,31 +410,31 @@ def setUp(self):

def testFeatureTypeSave(self):
# test saving round trip
rs = self.cat.get_resources("bugsites")[0]
rs = self.cat.get_resources("bugsites", workspaces="sf")[0]
old_abstract = rs.abstract
new_abstract = "Not the original abstract"
enabled = rs.enabled

# Change abstract on server
rs.abstract = new_abstract
self.cat.save(rs)
rs = self.cat.get_resources("bugsites")[0]
rs = self.cat.get_resources("bugsites", workspaces="sf")[0]
self.assertEqual(new_abstract, rs.abstract)
self.assertEqual(enabled, rs.enabled)

# Change keywords on server
rs.keywords = ["bugsites", "gsconfig"]
enabled = rs.enabled
self.cat.save(rs)
rs = self.cat.get_resources("bugsites")[0]
rs = self.cat.get_resources("bugsites", workspaces="sf")[0]
self.assertEqual(["bugsites", "gsconfig"], rs.keywords)
self.assertEqual(enabled, rs.enabled)

# Change metadata links on server
rs.metadata_links = [("text/xml", "TC211", "http://example.com/gsconfig.test.metadata")]
enabled = rs.enabled
self.cat.save(rs)
rs = self.cat.get_resources("bugsites")[0]
rs = self.cat.get_resources("bugsites", workspaces="sf")[0]
self.assertEqual(
[("text/xml", "TC211", "http://example.com/gsconfig.test.metadata")],
rs.metadata_links)
Expand All @@ -446,7 +443,7 @@ def testFeatureTypeSave(self):
# Restore abstract
rs.abstract = old_abstract
self.cat.save(rs)
rs = self.cat.get_resources("bugsites")[0]
rs = self.cat.get_resources("bugsites", workspaces="sf")[0]
self.assertEqual(old_abstract, rs.abstract)

def testDataStoreCreate(self):
Expand Down Expand Up @@ -557,27 +554,27 @@ def testCoverageStoreModify(self):

def testCoverageSave(self):
# test saving round trip
rs = self.cat.get_resources("Arc_Sample")[0]
rs = self.cat.get_resources("Arc_Sample", workspaces="nurc")[0]
old_abstract = rs.abstract
new_abstract = "Not the original abstract"

# # Change abstract on server
rs.abstract = new_abstract
self.cat.save(rs)
rs = self.cat.get_resources("Arc_Sample")[0]
rs = self.cat.get_resources("Arc_Sample", workspaces="nurc")[0]
self.assertEqual(new_abstract, rs.abstract)

# Restore abstract
rs.abstract = old_abstract
self.cat.save(rs)
rs = self.cat.get_resources("Arc_Sample")[0]
rs = self.cat.get_resources("Arc_Sample", workspaces="nurc")[0]
self.assertEqual(old_abstract, rs.abstract)

# Change metadata links on server
rs.metadata_links = [("text/xml", "TC211", "http://example.com/gsconfig.test.metadata")]
enabled = rs.enabled
self.cat.save(rs)
rs = self.cat.get_resources("Arc_Sample")[0]
rs = self.cat.get_resources("Arc_Sample", workspaces="nurc")[0]
self.assertEqual(
[("text/xml", "TC211", "http://example.com/gsconfig.test.metadata")],
rs.metadata_links)
Expand All @@ -592,21 +589,21 @@ def testCoverageSave(self):
self.assertEquals(set(rs.request_srs_list), srs_before, str(rs.request_srs_list))
rs.request_srs_list = rs.request_srs_list + ['EPSG:3785']
self.cat.save(rs)
rs = self.cat.get_resources("Arc_Sample")[0]
rs = self.cat.get_resources("Arc_Sample", workspaces="nurc")[0]
self.assertEquals(set(rs.request_srs_list), srs_after, str(rs.request_srs_list))

# set and save response_srs_list
self.assertEquals(set(rs.response_srs_list), srs_before, str(rs.response_srs_list))
rs.response_srs_list = rs.response_srs_list + ['EPSG:3785']
self.cat.save(rs)
rs = self.cat.get_resources("Arc_Sample")[0]
rs = self.cat.get_resources("Arc_Sample", workspaces="nurc")[0]
self.assertEquals(set(rs.response_srs_list), srs_after, str(rs.response_srs_list))

# set and save supported_formats
self.assertEquals(set(rs.supported_formats), formats, str(rs.supported_formats))
rs.supported_formats = ["PNG", "GIF", "TIFF"]
self.cat.save(rs)
rs = self.cat.get_resources("Arc_Sample")[0]
rs = self.cat.get_resources("Arc_Sample", workspaces="nurc")[0]
self.assertEquals(set(rs.supported_formats), formats_after, str(rs.supported_formats))

def testWmsStoreCreate(self):
Expand Down Expand Up @@ -892,7 +889,7 @@ def testLayerGroupSave(self):
self.assertEqual(tas.styles, [None, None, None], tas.styles)

# force a refresh to check the remote state
tas.refresh()
# tas.refresh()
if self.gs_version >= "2.13":
self.assertEqual(tas.layers, [
'topp:tasmania_state_boundaries',
Expand Down Expand Up @@ -937,7 +934,7 @@ def testImageMosaic(self):
'''
name = 'cea_mosaic_external'
path = os.path.join(os.getcwd(), 'test/data/mosaic/external')
self.cat.create_imagemosaic(name, path, workspace = 'topp')
self.cat.create_imagemosaic(name, path, workspace='topp')
self.cat._cache.clear()
resource = self.cat.get_layer("external").resource
self.assert_(resource is not None)
Expand Down
2 changes: 1 addition & 1 deletion test/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ def serverLocationPkiAuth():
dbtype=os.getenv("DBTYPE", "postgis"),
database=os.getenv("DATABASE", "db"),
user=os.getenv("DBUSER", "postgres"),
passwd=os.getenv("DBPASS", "password")
passwd=os.getenv("DBPASS", "postgres")
)
print('*** GSPARAMS ***')
print(GSPARAMS)
Expand Down

0 comments on commit 8bc81f7

Please sign in to comment.