Skip to content

Commit 94197c6

Browse files
committed
Fix wrong exception catching
Add unit tests for POST with broken mapper
1 parent 554fef9 commit 94197c6

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

netboxapi/mapper.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ def post(self, **json):
8888
if isinstance(v, NetboxMapper):
8989
try:
9090
json[k] = v.id
91-
except KeyError:
91+
except AttributeError:
9292
raise ValueError("Mapper {} has no id".format(k))
9393
new_mapper_dict = self.netbox_api.post(self._route, json=json)
9494
try:

tests/test_mapper.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,20 @@ def test_post_foreign_key(self, mapper):
242242

243243
assert received_req.last_request.json()["fk"] == 2
244244

245+
def test_post_foreign_key_broken_mapper(self, mapper):
246+
url = self.get_mapper_url(mapper)
247+
248+
fk_mapper = NetboxMapper(mapper.netbox_api, "foo", "bar")
249+
250+
with requests_mock.Mocker() as m:
251+
m.register_uri(
252+
"post", url, json={
253+
"id": 1, "name": "testname", "fk": {"id": 2}
254+
}
255+
)
256+
with pytest.raises(ValueError):
257+
mapper.post(name="testname", fk=fk_mapper)
258+
245259
def test_put(self, mapper):
246260
child_mapper = self.get_child_mapper(mapper)
247261
url = self.get_mapper_url(child_mapper) + "{}/".format(child_mapper.id)

0 commit comments

Comments
 (0)