Skip to content

Commit

Permalink
optimizing code
Browse files Browse the repository at this point in the history
  • Loading branch information
Guts committed Mar 29, 2018
1 parent 2b84516 commit 14f4c5a
Show file tree
Hide file tree
Showing 4 changed files with 184 additions and 26 deletions.
20 changes: 7 additions & 13 deletions isogeo_pysdk/checker.py
Original file line number Diff line number Diff line change
Expand Up @@ -155,11 +155,6 @@ def check_api_response(self, response):
response.json().get("error"),
response.request.url))
return False, response.status_code
else:
pass

# end of method
return True

def check_request_parameters(self, parameters=dict):
"""Check parameters passed to avoid errors and help debug.
Expand Down Expand Up @@ -234,7 +229,7 @@ def check_request_parameters(self, parameters=dict):
else:
logging.debug(i.split(":")[1], i.split(":")[1].isdigit())
dico_query["text"].append(i)
pass
continue

# Values
dico_filters = {i.split(":")[0]: i.split(":")[1:] for i in li_args}
Expand Down Expand Up @@ -267,6 +262,11 @@ def check_is_uuid(self, uuid_str):
:param str uuid_str: UUID string to check
"""
# check uuid type
if not isinstance(uuid_str, string_types):
raise TypeError("'uuid_str' expected a str value.")
else:
pass
# handle Isogeo specific UUID in XML exports
if "isogeo:metadata" in uuid_str:
uuid_str = "urn:uuid:{}".format(uuid_str.split(":")[-1])
Expand All @@ -281,10 +281,6 @@ def check_is_uuid(self, uuid_str):
logging.error("uuid ValueError. {} ({}) -- {}"
.format(type(uuid_str), uuid_str, e))
return False
except TypeError:
logging.error("uuid must be a string. Not: {} ({})"
.format(type(uuid_str), uuid_str))
return False

def check_edit_tab(self, tab, md_type):
"""Check if asked tab is part of Isogeo web form and reliable
Expand Down Expand Up @@ -323,10 +319,8 @@ def check_edit_tab(self, tab, md_type):
" Only for these types: {}."
.format(tab, md_type, EDIT_TABS.get(tab))
)
return False
else:
pass
return True
return True


# ##############################################################################
Expand Down
2 changes: 1 addition & 1 deletion test_coverage.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ pip install --upgrade setuptools wheel
pip install --upgrade -r .\tests\requirements_test.txt

"-- STEP -- Run unit tests"
python -m unittest discover
# python -m unittest discover

"-- STEP -- Run coverage"
coverage run -m unittest discover -s tests/
Expand Down
136 changes: 125 additions & 11 deletions tests/test_checker.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,17 +53,13 @@ def test_checker_validity_bearer_valid(self):
isogeo = Isogeo(client_id=app_id,
client_secret=app_token)
bearer = isogeo.connect()
self.assertIsInstance(checker.check_bearer_validity(bearer,
isogeo.connect()),
self.assertIsInstance(checker.check_bearer_validity(bearer, isogeo.connect()),
tuple)
self.assertEqual(len(checker.check_bearer_validity(bearer,
isogeo.connect())),
self.assertEqual(len(checker.check_bearer_validity(bearer, isogeo.connect())),
2)
self.assertIsInstance(checker.check_bearer_validity(bearer,
isogeo.connect())[0],
self.assertIsInstance(checker.check_bearer_validity(bearer, isogeo.connect())[0],
string_types)
self.assertIsInstance(checker.check_bearer_validity(bearer,
isogeo.connect())[1],
self.assertIsInstance(checker.check_bearer_validity(bearer, isogeo.connect())[1],
int)

def test_checker_validity_bearer_expired(self):
Expand Down Expand Up @@ -113,6 +109,10 @@ def test_checker_uuid_bad(self):
self.assertEqual(uuid_bad_1, 0)
self.assertEqual(uuid_bad_2, 0)
self.assertEqual(uuid_bad_3, 0)
# type error
uuid_int = 2018
with self.assertRaises(TypeError):
checker.check_is_uuid(uuid_str=uuid_int)

# Internet connection
def test_checker_internet_ok(self):
Expand All @@ -128,28 +128,142 @@ def test_checker_internet_bad(self):
# edition tabs
def test_check_edit_tab_ok(self):
"""Test if a good tab is valid"""



# vector-dataset
tab_ok_i = checker.check_edit_tab(tab="identification",
md_type="vector-dataset")
tab_ok_h = checker.check_edit_tab(tab="history",
md_type="vector-dataset")
tab_ok_g = checker.check_edit_tab(tab="geography",
md_type="vector-dataset")
tab_ok_q = checker.check_edit_tab(tab="quality",
md_type="vector-dataset")
tab_ok_a = checker.check_edit_tab(tab="attributes",
md_type="vector-dataset")
tab_ok_c = checker.check_edit_tab(tab="constraints",
md_type="vector-dataset")
tab_ok_r = checker.check_edit_tab(tab="resources",
md_type="vector-dataset")
tab_ok_ct = checker.check_edit_tab(tab="contacts",
md_type="vector-dataset")
tab_ok_ad = checker.check_edit_tab(tab="advanced",
md_type="vector-dataset")
tab_ok_m = checker.check_edit_tab(tab="metadata",
md_type="vector-dataset")
self.assertEqual(tab_ok_i, 1)
self.assertEqual(tab_ok_h, 1)
self.assertEqual(tab_ok_g, 1)
self.assertEqual(tab_ok_q, 1)
self.assertEqual(tab_ok_a, 1)
self.assertEqual(tab_ok_c, 1)
self.assertEqual(tab_ok_r, 1)
self.assertEqual(tab_ok_ct, 1)
self.assertEqual(tab_ok_ad, 1)
self.assertEqual(tab_ok_m, 1)
# raster-dataset
tab_ok_i = checker.check_edit_tab(tab="identification",
md_type="raster-dataset")
tab_ok_h = checker.check_edit_tab(tab="history",
md_type="raster-dataset")
tab_ok_g = checker.check_edit_tab(tab="geography",
md_type="raster-dataset")
tab_ok_q = checker.check_edit_tab(tab="quality",
md_type="raster-dataset")
tab_ok_c = checker.check_edit_tab(tab="constraints",
md_type="raster-dataset")
tab_ok_r = checker.check_edit_tab(tab="resources",
md_type="raster-dataset")
tab_ok_ct = checker.check_edit_tab(tab="contacts",
md_type="raster-dataset")
tab_ok_ad = checker.check_edit_tab(tab="advanced",
md_type="raster-dataset")
tab_ok_m = checker.check_edit_tab(tab="metadata",
md_type="raster-dataset")
self.assertEqual(tab_ok_i, 1)
self.assertEqual(tab_ok_h, 1)
self.assertEqual(tab_ok_g, 1)
self.assertEqual(tab_ok_q, 1)
self.assertEqual(tab_ok_c, 1)
self.assertEqual(tab_ok_r, 1)
self.assertEqual(tab_ok_ct, 1)
self.assertEqual(tab_ok_ad, 1)
self.assertEqual(tab_ok_m, 1)
# services
tab_ok_i = checker.check_edit_tab(tab="identification",
md_type="service")
tab_ok_h = checker.check_edit_tab(tab="history",
md_type="service")
tab_ok_g = checker.check_edit_tab(tab="geography",
md_type="service")
tab_ok_q = checker.check_edit_tab(tab="quality",
md_type="service")
tab_ok_c = checker.check_edit_tab(tab="constraints",
md_type="service")
tab_ok_r = checker.check_edit_tab(tab="resources",
md_type="service")
tab_ok_ct = checker.check_edit_tab(tab="contacts",
md_type="service")
tab_ok_ad = checker.check_edit_tab(tab="advanced",
md_type="service")
tab_ok_m = checker.check_edit_tab(tab="metadata",
md_type="service")
self.assertEqual(tab_ok_i, 1)
self.assertEqual(tab_ok_h, 1)
self.assertEqual(tab_ok_g, 1)
self.assertEqual(tab_ok_q, 1)
self.assertEqual(tab_ok_c, 1)
self.assertEqual(tab_ok_r, 1)
self.assertEqual(tab_ok_ct, 1)
self.assertEqual(tab_ok_ad, 1)
self.assertEqual(tab_ok_m, 1)
# resources
tab_ok_i = checker.check_edit_tab(tab="identification",
md_type="resource")
tab_ok_h = checker.check_edit_tab(tab="history",
md_type="resource")
tab_ok_c = checker.check_edit_tab(tab="constraints",
md_type="resource")
tab_ok_r = checker.check_edit_tab(tab="resources",
md_type="resource")
tab_ok_ct = checker.check_edit_tab(tab="contacts",
md_type="resource")
tab_ok_ad = checker.check_edit_tab(tab="advanced",
md_type="resource")
tab_ok_m = checker.check_edit_tab(tab="metadata",
md_type="resource")
self.assertEqual(tab_ok_i, 1)
self.assertEqual(tab_ok_h, 1)
self.assertEqual(tab_ok_c, 1)
self.assertEqual(tab_ok_r, 1)
self.assertEqual(tab_ok_ct, 1)
self.assertEqual(tab_ok_ad, 1)
self.assertEqual(tab_ok_m, 1)

def test_check_edit_tab_bad(self):
"""Raise errors"""
with self.assertRaises(TypeError):
checker.check_edit_tab(tab=1984, md_type="vector-dataset")
with self.assertRaises(TypeError):
checker.check_edit_tab(tab="identification",
md_type=2)
with self.assertRaises(TypeError):
checker.check_edit_tab(tab=True,
md_type=False)
with self.assertRaises(ValueError):
checker.check_edit_tab(tab="download", md_type="raster-dataset")
with self.assertRaises(ValueError):
checker.check_edit_tab(tab="identification", md_type="nogeographic")
# resource type
with self.assertRaises(ValueError):
checker.check_edit_tab(tab="geography", md_type="resource")
with self.assertRaises(ValueError):
checker.check_edit_tab(tab="quality", md_type="resource")
with self.assertRaises(ValueError):
checker.check_edit_tab(tab="attributes", md_type="resource")
# raster
with self.assertRaises(ValueError):
checker.check_edit_tab(tab="attributes", md_type="raster-dataset")
# service
with self.assertRaises(ValueError):
checker.check_edit_tab(tab="attributes", md_type="service")


Expand Down
52 changes: 51 additions & 1 deletion tests/test_search.py
Original file line number Diff line number Diff line change
Expand Up @@ -111,13 +111,59 @@ def test_search_specifc_mds(self):
self.assertEqual(len(search_ids_1.get("results")), 1)
self.assertEqual(len(search_ids_2.get("results")), 2)

def test_search_parameter_query_ok(self):
"""Search with good query parameters."""
# workgroup - owner
self.isogeo.search(self.bearer,
query="owner:32f7e95ec4e94ca3bc1afda960003882",
page_size=0,
whole_share=0)
# inspire themes
self.isogeo.search(self.bearer,
query="keyword:inspire-theme:administrativeunits",
page_size=0,
whole_share=0)
# SRS
self.isogeo.search(self.bearer,
query="coordinate-system:2154",
page_size=0,
whole_share=0)
# types
self.isogeo.search(self.bearer,
query="type:dataset",
page_size=0,
whole_share=0)
self.isogeo.search(self.bearer,
query="type:vector-dataset",
page_size=0,
whole_share=0)
self.isogeo.search(self.bearer,
query="type:raster-dataset",
page_size=0,
whole_share=0)
self.isogeo.search(self.bearer,
query="type:service",
page_size=0,
whole_share=0)
self.isogeo.search(self.bearer,
query="type:resource",
page_size=0,
whole_share=0)
# unknown
self.isogeo.search(self.bearer,
query="unknown:filter",
page_size=0,
whole_share=0)

def test_search_bad_parameter_query(self):
"""Search with bad parameter."""
with self.assertRaises(ValueError):
self.isogeo.search(self.bearer,
query="type:youpi")
with self.assertRaises(ValueError):
self.isogeo.search(self.bearer,
query="action:yipiyo")
with self.assertRaises(ValueError):
self.isogeo.search(self.bearer,
query="provider:youplaboum")

Expand All @@ -128,20 +174,24 @@ def test_search_bad_parameter_geographic(self):
# georel should'nt be used without box or geo
self.isogeo.search(self.bearer,
georel="intersects")
with self.assertRaises(ValueError):
# georel bad value
self.isogeo.search(self.bearer,
box="-4.970,30.69418,8.258,51.237",
bbox="-4.970,30.69418,8.258,51.237",
georel="cross")

def test_parameter_not_unique_search(self):
"""SDK raises error for search with a parameter that must be unique."""
with self.assertRaises(ValueError):
self.isogeo.search(self.bearer,
query="coordinate-system:32517 coordinate-system:4326")
with self.assertRaises(ValueError):
self.isogeo.search(self.bearer,
query="format:shp format:dwg")
with self.assertRaises(ValueError):
self.isogeo.search(self.bearer,
query="owner:32f7e95ec4e94ca3bc1afda960003882 owner:08b3054757544463abd06f3ab51ee491")
with self.assertRaises(ValueError):
self.isogeo.search(self.bearer,
query="type:vector-dataset type:raster-dataset")
# disabling check, it should not raise anything
Expand Down

0 comments on commit 14f4c5a

Please sign in to comment.