1. 08 Apr, 2019 1 commit
    • Denis Laxalde's avatar
      Account for new psycopg2 exception classes mapping · afafc8fd9a45
      Denis Laxalde authored
      From psycopg2 >= 2.8, specific exceptions are raised corresponding to
      postgresql errors. E.g. a CheckViolation exception is raised instead of
      a generic IntegrityError previously when a constraint violation occurs.
      The way we intercept database errors, especially for constraint
      violation, is not compliant with that because we do not catch subclasses
      of IntegrityError in native source's doexec() method.
      We fix this by checking for the presence of IntegrityError error in
      exception class's mro. This is still overcomplicated and clumsy, because
      we still use string comparison, but this is the best we can do as far as
      I know. (A better fix would be 'isinstance(ex, IntegrityError)' but we
      have no engine-independent error classes, so this is not possible.
      Something like sqlalchemy's DBAPI Errors [1] might help:
      branch : 3.26
  2. 16 Apr, 2019 1 commit
    • Philippe Pepiot's avatar
      [devtools/testlib] avoid hidding AttributeError in create_user() · 2508ba96fad2
      Philippe Pepiot authored
      commit() might raise a AttributeError too.
      Use getattr(req, 'cnx', req) instead, which is a form already used to get the real cnx
      in some code:
      cubicweb/rset.py:577:        cnx = getattr(self.req, 'cnx', self.req)
      cubicweb/schema.py:353:                with getattr(_cw, 'cnx', _cw).security_enabled(read=False):
      We could use if hasattr(req, 'commit') here too but it lead to 3 additionals lines.
      Maybe we should have commit() and rollback() on
      cubicweb.web.request.ConnectionCubicWebRequestBase too ?
      branch : 3.26
  3. 05 Apr, 2019 3 commits
  4. 12 Feb, 2019 1 commit
  5. 14 Mar, 2019 3 commits
  6. 13 Mar, 2019 1 commit
  7. 08 Mar, 2019 6 commits
  8. 07 Mar, 2019 1 commit
  9. 26 Feb, 2019 14 commits
  10. 27 Feb, 2019 1 commit
  11. 21 Feb, 2019 8 commits