• 
      

    Improve compatibility and usage of CursorDebugWrapper.

    Review Request #8685 — Created Jan. 31, 2017 and submitted

    Information

    Djblets
    release-0.10.x
    ca0ed92...

    Reviewers

    This improves CursorDebugWrapper to be compatible with modern versions
    of Django, and to implement missing functionality.

    Our CursorDebugWrapper was re-implementing logic from Django's, instead
    of just using the base logic, which didn't make sense and wasn't
    future-proof. We now heavily rely on the base functionality.

    We register CursorDebugWrapper in a better way. The old way of
    overriding the version on the module wasn't safe, and caused infinite
    loop issues on newer versions of Django. We now instead override the
    method on BaseDatabaseWrapper that creates and returns an instance of
    the CursorDebugWrapper, which is safer.

    Last but not least, we weren't adding stack traces for executemany()
    calls. While Django itself doesn't make use of this method, applications
    might. We now store the stack trace for these calls as well.

    Unit tests were added for both methods.

    Unit tests pass on Django 1.6, 1.7, 1.8, 1.9, and 1.10.

    Description From Last Updated

    'time' imported but unused

    reviewbotreviewbot

    redefinition of unused 'time' from line 11

    reviewbotreviewbot

    'User' imported but unused

    reviewbotreviewbot
    reviewbot
    1. Tool: Pyflakes
      Processed Files:
          djblets/log/tests/test_cursor_debug_wrapper.py
          djblets/log/middleware.py
      
      Ignored Files:
          djblets/log/tests/__init__.py
      
      
      
      Tool: PEP8 Style Checker
      Processed Files:
          djblets/log/tests/test_cursor_debug_wrapper.py
          djblets/log/middleware.py
      
      Ignored Files:
          djblets/log/tests/__init__.py
      
      
    2. djblets/log/middleware.py (Diff revision 1)
       
       
      Show all issues
       'time' imported but unused
      
    3. djblets/log/middleware.py (Diff revision 1)
       
       
      Show all issues
       redefinition of unused 'time' from line 11
      
    4. Show all issues
       'User' imported but unused
      
    5. 
        
    chipx86
    reviewbot
    1. Tool: PEP8 Style Checker
      Processed Files:
          djblets/log/tests/test_cursor_debug_wrapper.py
          djblets/log/middleware.py
      
      Ignored Files:
          djblets/log/tests/__init__.py
      
      
      
      Tool: Pyflakes
      Processed Files:
          djblets/log/tests/test_cursor_debug_wrapper.py
          djblets/log/middleware.py
      
      Ignored Files:
          djblets/log/tests/__init__.py
      
      
    2. 
        
    david
    1. Ship It!
    2. 
        
    chipx86
    Review request changed
    Status:
    Completed
    Change Summary:
    Pushed to release-0.10.x (0f64631)