• 
      

    Update the custom models tests mixin to support Django 1.6, 1.8+.

    Review Request #8682 — Created Jan. 30, 2017 and submitted

    Information

    Djblets
    release-0.10.x
    8b642f7...

    Reviewers

    Our TestModelsLoaderMixin, while working fine on Django 1.6, had some
    problems on modern versions of Django. Models weren't gaining their
    correct app labels and were appearing in two apps at once. We also were
    attempting to register models that were imported from other modules
    (like User, Site, etc.). Along with this, not all state was properly
    cleared.
    
    This change fixes the mixin for Django 1.8 and higher. This gives us
    compatibility with Django 1.6 and 1.8 through 1.10. It does not support
    Django 1.7 (which Djblets will not officially support anyway), due to
    issues in Django 1.7 that were fixed in 1.8 involving ManyToManyFields
    not being properly created in the database under these conditions.

    Unit tests pass on 1.6, 1.8, 1.9, 1.10.

    Description From Last Updated

    These definitions aren't needed because they're only used when apps is None.

    daviddavid

    Do we want to call apps.clear_cache()?

    daviddavid

    This could be a generator expression instead of a list comprehension.

    daviddavid
    reviewbot
    1. Tool: Pyflakes
      Processed Files:
          djblets/testing/testcases.py
      
      
      
      Tool: PEP8 Style Checker
      Processed Files:
          djblets/testing/testcases.py
      
      
    2. 
        
    david
    1. 
        
    2. djblets/testing/testcases.py (Diff revision 1)
       
       
       
      Show all issues

      These definitions aren't needed because they're only used when apps is None.

      1. What I was aiming for (in this and other changes) is to always have a version of each of these imports we can check for, and to keep lintian checkers from complaining. Pyflakes doesn't seem to care, though.

    3. djblets/testing/testcases.py (Diff revision 1)
       
       
      Show all issues

      Do we want to call apps.clear_cache()?

      1. unset_installed_apps calls this for us.

    4. djblets/testing/testcases.py (Diff revision 1)
       
       
       
       
       
      Show all issues

      This could be a generator expression instead of a list comprehension.

      1. Aiming to keep the return types the same between both versions. get_apps() returns a list.

    5. 
        
    chipx86
    reviewbot
    1. Tool: Pyflakes
      Processed Files:
          djblets/testing/testcases.py
      
      
      
      Tool: PEP8 Style Checker
      Processed Files:
          djblets/testing/testcases.py
      
      
    2. 
        
    david
    1. Ship It!
    2. 
        
    chipx86
    Review request changed
    Status:
    Completed
    Change Summary:
    Pushed to release-0.10.x (3ebacf7)