Skip to content

Commit 24d0113

Browse files
author
Anthony Ruhier
committed
Merge branch 'dev'
Fixes #2 Mappers were not doing the correct request for GET and PUT
2 parents f1efa97 + b3afdae commit 24d0113

File tree

4 files changed

+68
-24
lines changed

4 files changed

+68
-24
lines changed

netboxapi/mapper.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,16 @@ def get(self, *args, **kwargs):
3737
else:
3838
route = self._route
3939

40-
new_mappers_dict = self.netbox_api.get(route, data=kwargs)
40+
new_mappers_dict = self.netbox_api.get(route, params=kwargs)
41+
if "results" in new_mappers_dict:
42+
new_mappers_dict = new_mappers_dict["results"]
43+
4144
if isinstance(new_mappers_dict, dict):
4245
new_mappers_dict = [new_mappers_dict]
4346
for d in new_mappers_dict:
44-
yield self._build_new_mapper_from(d, route)
47+
yield self._build_new_mapper_from(
48+
d, route + "{}/".format(d["id"])
49+
)
4550

4651
def post(self, **json):
4752
"""

setup.cfg

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,18 @@
1+
[bumpversion]
2+
current_version = 1.0.1
3+
commit = True
4+
tag = True
5+
tag_name = {new_version}
6+
7+
[bumpversion:file:setup.py]
8+
search = version="{current_version}"
9+
replace = version="{new_version}"
10+
111
[aliases]
2-
test=pytest
3-
# verbose mode
4-
testv=pytest --addopts "-v --duration=10"
5-
# test debug, with pdb
6-
testd=pytest --addopts "--pdb"
7-
# last failed
8-
testlf=pytest --addopts "--lf"
9-
# coverage related tests
10-
testcov=pytest --addopts "--cov netboxapi --cov-config .coveragerc"
11-
testcoveralls=pytest --addopts "--cov netboxapi --cov-report="
12+
test = pytest
13+
testv = pytest --addopts "-v --duration=10"
14+
testd = pytest --addopts "--pdb"
15+
testlf = pytest --addopts "--lf"
16+
testcov = pytest --addopts "--cov netboxapi --cov-config .coveragerc"
17+
testcoveralls = pytest --addopts "--cov netboxapi --cov-report="
18+

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
setup(
1111
name="netboxapi",
12-
version="1.0.0",
12+
version="1.0.1",
1313

1414
description="Client API for Netbox",
1515

tests/test_mapper.py

Lines changed: 43 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,27 +18,52 @@ def mapper(self):
1818

1919
def test_get(self, mapper):
2020
url = self.get_mapper_url(mapper)
21-
expected_attr = {"id": 1, "name": "test"}
21+
expected_attr = {
22+
"count": 1, "next": None, "previous": None,
23+
"results": [{"id": 1, "name": "test"}]
24+
}
2225
with requests_mock.Mocker() as m:
2326
m.register_uri("get", url, json=expected_attr)
2427
child_mapper = next(mapper.get())
2528

26-
for key, val in expected_attr.items():
29+
for key, val in expected_attr["results"][0].items():
2730
assert getattr(child_mapper, key) == val
2831

2932
def test_get_submodel(self, mapper):
3033
url = self.get_mapper_url(mapper)
31-
expected_attr = {"id": 1, "name": "first_model"}
34+
expected_attr = {
35+
"count": 1, "next": None, "previous": None,
36+
"results": [{"id": 1, "name": "first_model"}]
37+
}
3238

3339
with requests_mock.Mocker() as m:
34-
m.register_uri("get", url, json={"id": 1, })
40+
m.register_uri(
41+
"get", url,
42+
json={
43+
"count": 1, "next": None, "previous": None,
44+
"results": [{"id": 1}]
45+
}
46+
)
3547
parent_mapper = next(mapper.get())
36-
m.register_uri("get", url + "submodel/", json=expected_attr)
48+
m.register_uri(
49+
"get", url + "{}/{}/".format(parent_mapper.id, "submodel"),
50+
json=expected_attr
51+
)
3752
submodel_mapper = next(parent_mapper.get("submodel"))
3853

39-
for key, val in expected_attr.items():
54+
for key, val in expected_attr["results"][0].items():
4055
assert getattr(submodel_mapper, key) == val
4156

57+
def test_get_query(self, mapper):
58+
url = self.get_mapper_url(mapper) + "?name=test"
59+
expected_attr = {
60+
"count": 1, "next": None, "previous": None,
61+
"results": [{"id": 1, "name": "test"}]
62+
}
63+
with requests_mock.Mocker() as m:
64+
m.register_uri("get", url, json=expected_attr)
65+
next(mapper.get(name="test"))
66+
4267
def test_post(self, mapper):
4368
url = self.get_mapper_url(mapper)
4469

@@ -53,7 +78,7 @@ def test_post(self, mapper):
5378

5479
def test_put(self, mapper):
5580
child_mapper = self.get_child_mapper(mapper)
56-
url = self.get_mapper_url(child_mapper)
81+
url = self.get_mapper_url(child_mapper) + "{}/".format(child_mapper.id)
5782
with requests_mock.Mocker() as m:
5883
received_req = m.register_uri(
5984
"put", url, json=self.update_or_create_resource_json_callback
@@ -70,7 +95,10 @@ def update_or_create_resource_json_callback(self, request, context):
7095

7196
def get_child_mapper(self, mapper):
7297
url = self.get_mapper_url(mapper)
73-
expected_attr = {"id": 1, "name": "test"}
98+
expected_attr = {
99+
"count": 1, "next": None, "previous": None,
100+
"results": [{"id": 1, "name": "test"}]
101+
}
74102
with requests_mock.Mocker() as m:
75103
m.register_uri("get", url, json=expected_attr)
76104
child_mapper = next(mapper.get())
@@ -93,11 +121,13 @@ def test_delete_from_child(self, mapper):
93121
url = self.get_mapper_url(mapper) + "1/"
94122

95123
with requests_mock.Mocker() as m:
96-
m.register_uri("get", url, json={"id": 1, })
124+
m.register_uri(
125+
"get", url, json={"id": 1}
126+
)
97127
obj_mapper = next(mapper.get(1))
98128

99129
with requests_mock.Mocker() as m:
100-
m.register_uri("delete", url)
130+
m.register_uri("delete", url + "1/")
101131
response = obj_mapper.delete()
102132

103133
assert response.status_code == 200
@@ -106,7 +136,9 @@ def test_delete_other_id_from_child(self, mapper):
106136
url = self.get_mapper_url(mapper) + "1/"
107137

108138
with requests_mock.Mocker() as m:
109-
m.register_uri("get", url, json={"id": 1, })
139+
m.register_uri(
140+
"get", url, json={"id": 1}
141+
)
110142
obj_mapper = next(mapper.get(1))
111143

112144
with pytest.raises(ForbiddenAsChildError):

0 commit comments

Comments
 (0)