Hello community,
here is the log from the commit of package python-pynetbox for openSUSE:Factory
checked in at 2020-07-09 13:20:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pynetbox (Old)
and /work/SRC/openSUSE:Factory/.python-pynetbox.new.3060 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pynetbox"
Thu Jul 9 13:20:20 2020 rev:13 rq:819676 version:5.0.4
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pynetbox/python-pynetbox.changes
2020-06-26 21:50:03.402717968 +0200
+++
/work/SRC/openSUSE:Factory/.python-pynetbox.new.3060/python-pynetbox.changes
2020-07-09 13:21:24.413656335 +0200
@@ -1,0 +2,18 @@
+Wed Jul 8 15:53:44 UTC 2020 - Martin Hauke <[email protected]>
+
+- Update to version 5.0.4
+ * Fixes issue saving local_config_context attribute on objects
+
+-------------------------------------------------------------------
+Mon Jul 6 18:38:36 UTC 2020 - Martin Hauke <[email protected]>
+
+- Update to version 5.0.3
+ * Fixes issue with threads overwriting Request.filters.
+
+-------------------------------------------------------------------
+Mon Jul 6 18:37:47 UTC 2020 - Martin Hauke <[email protected]>
+
+- Udpate to version 5.0.2
+ * Fixes Api.get_version() to use the session object.
+
+-------------------------------------------------------------------
Old:
----
pynetbox-5.0.1.tar.gz
New:
----
pynetbox-5.0.4.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pynetbox.spec ++++++
--- /var/tmp/diff_new_pack.kLwyqY/_old 2020-07-09 13:21:25.017658245 +0200
+++ /var/tmp/diff_new_pack.kLwyqY/_new 2020-07-09 13:21:25.017658245 +0200
@@ -18,7 +18,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-pynetbox
-Version: 5.0.1
+Version: 5.0.4
Release: 0
Summary: NetBox API client library
License: Apache-2.0
++++++ pynetbox-5.0.1.tar.gz -> pynetbox-5.0.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pynetbox-5.0.1/PKG-INFO new/pynetbox-5.0.4/PKG-INFO
--- old/pynetbox-5.0.1/PKG-INFO 2020-06-25 23:42:27.403050400 +0200
+++ new/pynetbox-5.0.4/PKG-INFO 2020-07-08 17:31:56.122555500 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: pynetbox
-Version: 5.0.1
+Version: 5.0.4
Summary: NetBox API client library
Home-page: https://github.com/digitalocean/pynetbox
Author: Zach Moody
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pynetbox-5.0.1/pynetbox/core/endpoint.py
new/pynetbox-5.0.4/pynetbox/core/endpoint.py
--- old/pynetbox-5.0.1/pynetbox/core/endpoint.py 2020-06-25
23:42:12.000000000 +0200
+++ new/pynetbox-5.0.4/pynetbox/core/endpoint.py 2020-07-08
17:31:48.000000000 +0200
@@ -295,22 +295,22 @@
:Returns: Dict containing the available choices.
- :Examples:
+ :Example (from NetBox 2.8.x):
>>> from pprint import pprint
>>> pprint(nb.ipam.ip_addresses.choices())
- {'role': [{'display_name': 'Secondary', 'value': 20},
- {'display_name': 'VIP', 'value': 40},
- {'display_name': 'VRRP', 'value': 41},
- {'display_name': 'Loopback', 'value': 10},
- {'display_name': 'GLBP', 'value': 43},
- {'display_name': 'CARP', 'value': 44},
- {'display_name': 'HSRP', 'value': 42},
- {'display_name': 'Anycast', 'value': 30}],
- 'status': [{'display_name': 'Active', 'value': 1},
- {'display_name': 'Reserved', 'value': 2},
- {'display_name': 'Deprecated', 'value': 3},
- {'display_name': 'DHCP', 'value': 5}]}
+ {'role': [{'display_name': 'Loopback', 'value': 'loopback'},
+ {'display_name': 'Secondary', 'value': 'secondary'},
+ {'display_name': 'Anycast', 'value': 'anycast'},
+ {'display_name': 'VIP', 'value': 'vip'},
+ {'display_name': 'VRRP', 'value': 'vrrp'},
+ {'display_name': 'HSRP', 'value': 'hsrp'},
+ {'display_name': 'GLBP', 'value': 'glbp'},
+ {'display_name': 'CARP', 'value': 'carp'}],
+ 'status': [{'display_name': 'Active', 'value': 'active'},
+ {'display_name': 'Reserved', 'value': 'reserved'},
+ {'display_name': 'Deprecated', 'value': 'deprecated'},
+ {'display_name': 'DHCP', 'value': 'dhcp'}]}
>>>
"""
if self._choices:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pynetbox-5.0.1/pynetbox/core/query.py
new/pynetbox-5.0.4/pynetbox/core/query.py
--- old/pynetbox-5.0.1/pynetbox/core/query.py 2020-06-25 23:42:12.000000000
+0200
+++ new/pynetbox-5.0.4/pynetbox/core/query.py 2020-07-08 17:31:48.000000000
+0200
@@ -197,7 +197,7 @@
headers = {
"Content-Type": "application/json;",
}
- req = requests.get(self.normalize_url(self.base), headers=headers,)
+ req = self.http_session.get(self.normalize_url(self.base),
headers=headers,)
if req.ok:
return req.headers.get("API-Version", "")
else:
@@ -250,7 +250,7 @@
params = {}
if not url_override:
if self.filters:
- params = self.filters
+ params.update(self.filters)
if add_params:
params.update(add_params)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pynetbox-5.0.1/pynetbox/core/response.py
new/pynetbox-5.0.4/pynetbox/core/response.py
--- old/pynetbox-5.0.1/pynetbox/core/response.py 2020-06-25
23:42:12.000000000 +0200
+++ new/pynetbox-5.0.4/pynetbox/core/response.py 2020-07-08
17:31:48.000000000 +0200
@@ -13,6 +13,8 @@
See the License for the specific language governing permissions and
limitations under the License.
"""
+import copy
+
import pynetbox.core.app
from six.moves.urllib.parse import urlsplit
from pynetbox.core.query import Request
@@ -235,7 +237,10 @@
def _add_cache(self, item):
key, value = item
- self._init_cache.append((key, get_return(value)))
+ if key == "local_context_data":
+ self._init_cache.append((key, copy.deepcopy(value)))
+ else:
+ self._init_cache.append((key, get_return(value)))
def _parse_values(self, values):
""" Parses values init arg.
@@ -252,7 +257,9 @@
for k, v in values.items():
if isinstance(v, dict):
lookup = getattr(self.__class__, k, None)
- if k == "custom_fields" or hasattr(lookup, "_json_field"):
+ if k in ["custom_fields", "local_context_data"] or hasattr(
+ lookup, "_json_field"
+ ):
self._add_cache((k, v.copy()))
setattr(self, k, v)
continue
@@ -275,20 +282,6 @@
app, name = urlsplit(url).path.split("/")[2:4]
return getattr(pynetbox.core.app.App(self.api, app), name)
- def _compare(self):
- """Compares current attributes to values at instantiation.
-
- In order to be idempotent we run this method in `save()`.
-
- Returns:
- Boolean value, True indicates current instance has the same
- attributes as the ones passed to `values`.
- """
-
- if self.serialize(init=True) == self.serialize():
- return True
- return False
-
def full_details(self):
"""Queries the hyperlinked endpoint if 'url' is defined.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pynetbox-5.0.1/pynetbox.egg-info/PKG-INFO
new/pynetbox-5.0.4/pynetbox.egg-info/PKG-INFO
--- old/pynetbox-5.0.1/pynetbox.egg-info/PKG-INFO 2020-06-25
23:42:26.000000000 +0200
+++ new/pynetbox-5.0.4/pynetbox.egg-info/PKG-INFO 2020-07-08
17:31:55.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: pynetbox
-Version: 5.0.1
+Version: 5.0.4
Summary: NetBox API client library
Home-page: https://github.com/digitalocean/pynetbox
Author: Zach Moody
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pynetbox-5.0.1/tests/test_api.py
new/pynetbox-5.0.4/tests/test_api.py
--- old/pynetbox-5.0.1/tests/test_api.py 2020-06-25 23:42:12.000000000
+0200
+++ new/pynetbox-5.0.4/tests/test_api.py 2020-07-08 17:31:48.000000000
+0200
@@ -51,7 +51,10 @@
headers = {"API-Version": "1.999"}
ok = True
- @patch("requests.get", return_value=ResponseHeadersWithVersion())
+ @patch(
+ "pynetbox.core.query.requests.sessions.Session.get",
+ return_value=ResponseHeadersWithVersion(),
+ )
def test_api_version(self, *_):
api = pynetbox.api(host,)
self.assertEqual(api.version, "1.999")
@@ -60,7 +63,10 @@
headers = {}
ok = True
- @patch("requests.get", return_value=ResponseHeadersWithoutVersion())
+ @patch(
+ "pynetbox.core.query.requests.sessions.Session.get",
+ return_value=ResponseHeadersWithoutVersion(),
+ )
def test_api_version_not_found(self, *_):
api = pynetbox.api(host,)
self.assertEqual(api.version, "")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pynetbox-5.0.1/tests/test_dcim.py
new/pynetbox-5.0.4/tests/test_dcim.py
--- old/pynetbox-5.0.1/tests/test_dcim.py 2020-06-25 23:42:12.000000000
+0200
+++ new/pynetbox-5.0.4/tests/test_dcim.py 2020-07-08 17:31:48.000000000
+0200
@@ -111,7 +111,7 @@
headers=HEADERS,
)
- def test_compare(self):
+ def test_diff(self):
with patch(
"pynetbox.core.query.requests.sessions.Session.get",
return_value=Response(
@@ -120,7 +120,7 @@
):
ret = getattr(nb, self.name).get(1)
self.assertTrue(ret)
- self.assertTrue(ret._compare())
+ self.assertEqual(ret._diff(), set())
def test_serialize(self):
with patch(
@@ -186,7 +186,7 @@
ret.serial = "123123123123"
ret_serialized = ret.serialize()
self.assertTrue(ret_serialized)
- self.assertFalse(ret._compare())
+ self.assertEqual(ret._diff(), {"serial"})
self.assertEqual(ret_serialized["serial"], "123123123123")
@patch(
@@ -264,7 +264,7 @@
"""
ret = getattr(nb, self.name).get(1)
ret.custom_fields["test_custom"] = "Testing"
- self.assertFalse(ret._compare())
+ self.assertEqual(ret._diff(), {"custom_fields"})
self.assertTrue(ret.serialize())
self.assertEqual(ret.custom_fields["test_custom"], "Testing")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pynetbox-5.0.1/tests/test_ipam.py
new/pynetbox-5.0.4/tests/test_ipam.py
--- old/pynetbox-5.0.1/tests/test_ipam.py 2020-06-25 23:42:12.000000000
+0200
+++ new/pynetbox-5.0.4/tests/test_ipam.py 2020-07-08 17:31:48.000000000
+0200
@@ -107,7 +107,7 @@
ret.prefix = "10.1.2.0/24"
ret_serialized = ret.serialize()
self.assertTrue(ret_serialized)
- self.assertFalse(ret._compare())
+ self.assertEqual(ret._diff(), {"prefix"})
self.assertEqual(ret_serialized["prefix"], "10.1.2.0/24")
@patch(
@@ -216,7 +216,7 @@
ret.description = "testing"
ret_serialized = ret.serialize()
self.assertTrue(ret_serialized)
- self.assertFalse(ret._compare())
+ self.assertEqual(ret._diff(), {"description"})
self.assertEqual(ret_serialized["address"], "10.0.255.1/32")
self.assertEqual(ret_serialized["description"], "testing")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pynetbox-5.0.1/tests/unit/test_response.py
new/pynetbox-5.0.4/tests/unit/test_response.py
--- old/pynetbox-5.0.1/tests/unit/test_response.py 2020-06-25
23:42:12.000000000 +0200
+++ new/pynetbox-5.0.4/tests/unit/test_response.py 2020-07-08
17:31:48.000000000 +0200
@@ -55,12 +55,16 @@
"nested_dict": {"id": 222, "name": "bar"},
"tags": ["foo", "bar"],
"int_list": [123, 321, 231],
+ "local_context_data": {"data": ["one"]},
}
test = Record(test_values, None, None)
test.tags.append("baz")
test.nested_dict = 1
test.string_field = "foobaz"
- self.assertEqual(test._diff(), {"tags", "nested_dict", "string_field"})
+ test.local_context_data["data"].append("two")
+ self.assertEqual(
+ test._diff(), {"tags", "nested_dict", "string_field",
"local_context_data"}
+ )
def test_diff_append_records_list(self):
test_values = {