Record.todict behaves suspisciously
[sfa.git] / sfa / storage / model.py
index 7ed955f..7ce8345 100644 (file)
@@ -107,8 +107,14 @@ class RegRecord (Base, AlchemyObj):
         if dict:                                self.load_from_dict (dict)
 
     def __repr__(self):
-        result="<Record id=%s, type=%s, hrn=%s, authority=%s, pointer=%s" % \
-                (self.record_id, self.type, self.hrn, self.authority, self.pointer)
+        result="<Record id=%s, type=%s, hrn=%s, authority=%s" % \
+                (self.record_id, self.type, self.hrn, self.authority)
+#        for extra in ('pointer', 'email', 'name'):
+#        for extra in ('email', 'name'):
+# displaying names at this point it too dangerous, because of unicode
+        for extra in ('email'):
+            if hasattr(self, extra):
+                result += " {}={},".format(extra, getattr(self, extra))
         # skip the uniform '--- BEGIN CERTIFICATE --' stuff
         if self.gid:
             result+=" gid=%s..."%self.gid[28:36]
@@ -204,7 +210,8 @@ class RegAuthority (RegRecord):
     # no proper data yet, just hack the typename
     def __repr__ (self):
         result = RegRecord.__repr__(self).replace("Record", "Authority")
-        result.replace(">", " name={}>".format(self.name))
+# here again trying to display names that can be utf8 is too dangerous        
+#        result.replace(">", " name={}>".format(self.name))
         return result
 
     def update_pis (self, pi_hrns, dbsession):
@@ -462,9 +469,9 @@ def make_record_dict (record_dict):
     # register non-db attributes in an extensions field
     return result
         
-def make_record_xml (xml):
-    xml_record = XML(xml)
-    xml_dict = xml_record.todict()
+def make_record_xml (xml_str):
+    xml = XML(xml_str)
+    xml_dict = xml.todict()
     logger.info("load from xml, keys=%s"%xml_dict.keys())
     return make_record_dict (xml_dict)