[SEBA-450] (part 1)
Refactoring, python3 compat, and tox tests on:
- xosconfig
- xosgenx
- xosutil
Eliminate use of yaml.load() which is unsafe, switch to yaml.safe_load()
More diagnostics during database migration
Change-Id: I0fae5782fca401603a7c4e4ec2b9269ad24bda97
diff --git a/lib/xos-genx/xosgenx/jinja2_extensions/gui.py b/lib/xos-genx/xosgenx/jinja2_extensions/gui.py
index 4cb644a..07dbc35 100644
--- a/lib/xos-genx/xosgenx/jinja2_extensions/gui.py
+++ b/lib/xos-genx/xosgenx/jinja2_extensions/gui.py
@@ -12,8 +12,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-
-from base import xproto_string_type, unquote
+from __future__ import absolute_import
+from .base import xproto_string_type, unquote
def xproto_type_to_ui_type(f):
@@ -49,6 +49,20 @@
return None
+def xproto_dict_to_sorted_string(d):
+ """
+ sorts the dict by key and returns a string representation, which makes
+ for better consistency when testing
+ """
+ ft = [] # formatted tuples
+ for k, v in sorted(d.items(), key=lambda t: t[0]): # sorted by key
+ if v is not None:
+ ft.append("'%s': '%s'" % (k, v))
+ else:
+ ft.append("'%s': None" % k)
+ return "{%s}" % ", ".join(ft)
+
+
def xproto_validators(f):
# To be cleaned up when we formalize validation in xproto
validators = []