# HG changeset patch # User Julien Cristau # Date 1424173422 -3600 # Node ID d5403de0792b5af26fc4ccdf77bfca3cb370d9b1 # Parent 7c4e090bc25f627ab542fbbe0666f53512efb91e [server] use unicode wherever appropriate in transaction/undo related methods Silences lgdb/sqlite warnings about using str instead of unicode. diff -r 7c4e090bc25f -r d5403de0792b server/session.py --- a/server/session.py Mon Mar 09 18:02:49 2015 +0100 +++ b/server/session.py Tue Feb 17 12:43:42 2015 +0100 @@ -971,7 +971,7 @@ def transaction_uuid(self, set=True): uuid = self.transaction_data.get('tx_uuid') if set and uuid is None: - self.transaction_data['tx_uuid'] = uuid = uuid4().hex + self.transaction_data['tx_uuid'] = uuid = unicode(uuid4().hex) self.repo.system_source.start_undoable_transaction(self, uuid) return uuid diff -r 7c4e090bc25f -r d5403de0792b server/sources/native.py --- a/server/sources/native.py Mon Mar 09 18:02:49 2015 +0100 +++ b/server/sources/native.py Tue Feb 17 12:43:42 2015 +0100 @@ -614,8 +614,8 @@ sql = self.sqlgen.insert(SQL_PREFIX + entity.cw_etype, attrs) self.doexec(cnx, sql, attrs) if cnx.ertype_supports_undo(entity.cw_etype): - self._record_tx_action(cnx, 'tx_entity_actions', 'C', - etype=entity.cw_etype, eid=entity.eid) + self._record_tx_action(cnx, 'tx_entity_actions', u'C', + etype=unicode(entity.cw_etype), eid=entity.eid) def update_entity(self, cnx, entity): """replace an entity in the source""" @@ -623,8 +623,8 @@ attrs = self.preprocess_entity(entity) if cnx.ertype_supports_undo(entity.cw_etype): changes = self._save_attrs(cnx, entity, attrs) - self._record_tx_action(cnx, 'tx_entity_actions', 'U', - etype=entity.cw_etype, eid=entity.eid, + self._record_tx_action(cnx, 'tx_entity_actions', u'U', + etype=unicode(entity.cw_etype), eid=entity.eid, changes=self._binary(dumps(changes))) sql = self.sqlgen.update(SQL_PREFIX + entity.cw_etype, attrs, ['cw_eid']) @@ -638,8 +638,8 @@ for r in entity.e_schema.subject_relations() if (r.final or r.inlined) and not r in VIRTUAL_RTYPES] changes = self._save_attrs(cnx, entity, attrs) - self._record_tx_action(cnx, 'tx_entity_actions', 'D', - etype=entity.cw_etype, eid=entity.eid, + self._record_tx_action(cnx, 'tx_entity_actions', u'D', + etype=unicode(entity.cw_etype), eid=entity.eid, changes=self._binary(dumps(changes))) attrs = {'cw_eid': entity.eid} sql = self.sqlgen.delete(SQL_PREFIX + entity.cw_etype, attrs) @@ -649,16 +649,16 @@ """add a relation to the source""" self._add_relations(cnx, rtype, [(subject, object)], inlined) if cnx.ertype_supports_undo(rtype): - self._record_tx_action(cnx, 'tx_relation_actions', 'A', - eid_from=subject, rtype=rtype, eid_to=object) + self._record_tx_action(cnx, 'tx_relation_actions', u'A', + eid_from=subject, rtype=unicode(rtype), eid_to=object) def add_relations(self, cnx, rtype, subj_obj_list, inlined=False): """add a relations to the source""" self._add_relations(cnx, rtype, subj_obj_list, inlined) if cnx.ertype_supports_undo(rtype): for subject, object in subj_obj_list: - self._record_tx_action(cnx, 'tx_relation_actions', 'A', - eid_from=subject, rtype=rtype, eid_to=object) + self._record_tx_action(cnx, 'tx_relation_actions', u'A', + eid_from=subject, rtype=unicode(rtype), eid_to=object) def _add_relations(self, cnx, rtype, subj_obj_list, inlined=False): """add a relation to the source""" @@ -689,8 +689,8 @@ rschema = self.schema.rschema(rtype) self._delete_relation(cnx, subject, rtype, object, rschema.inlined) if cnx.ertype_supports_undo(rtype): - self._record_tx_action(cnx, 'tx_relation_actions', 'R', - eid_from=subject, rtype=rtype, eid_to=object) + self._record_tx_action(cnx, 'tx_relation_actions', u'R', + eid_from=subject, rtype=unicode(rtype), eid_to=object) def _delete_relation(self, cnx, subject, rtype, object, inlined=False): """delete a relation from the source""" @@ -977,7 +977,7 @@ # only, and with no eid specified assert actionfilters.get('action', 'C') in 'CUD' assert not 'eid' in actionfilters - tearestr['etype'] = val + tearestr['etype'] = unicode(val) elif key == 'eid': # eid filter may apply to 'eid' of tx_entity_actions or to # 'eid_from' OR 'eid_to' of tx_relation_actions @@ -988,10 +988,10 @@ trarestr['eid_to'] = val elif key == 'action': if val in 'CUD': - tearestr['txa_action'] = val + tearestr['txa_action'] = unicode(val) else: assert val in 'AR' - trarestr['txa_action'] = val + trarestr['txa_action'] = unicode(val) else: raise AssertionError('unknow filter %s' % key) assert trarestr or tearestr, "can't only filter on 'public'" @@ -1026,10 +1026,11 @@ def tx_info(self, cnx, txuuid): """See :class:`cubicweb.repoapi.ClientConnection.transaction_info`""" - return tx.Transaction(txuuid, *self._tx_info(cnx, txuuid)) + return tx.Transaction(txuuid, *self._tx_info(cnx, unicode(txuuid))) def tx_actions(self, cnx, txuuid, public): """See :class:`cubicweb.repoapi.ClientConnection.transaction_actions`""" + txuuid = unicode(txuuid) self._tx_info(cnx, txuuid) restr = {'tx_uuid': txuuid} if public: