• 
      

    Add an ExtensionTestCase to allow testing of the models of Review Board extensions

    Review Request #6821 — Created Jan. 22, 2015 and discarded

    Information

    Review Board
    master

    Reviewers

    The ExtensionTestCase class is a special test case base class for
    Review Board extensions. It exposes the models of the extension via
    the models attribute on instances of the sub-class.

    To run tests on the extension, execute
    ./reviewboard/manage.py test -- extension.tests
    where extensions.test is the module containing the tests.

    Created an extension with a model. Subclassed ExtensionTestCase
    and created test methods that passed on that subclass.

    Description From Last Updated

    The general import statements go before the from ... imports.

    chipx86chipx86

    Mixins should go before the parent classes.

    chipx86chipx86

    Missing period at the end.

    chipx86chipx86

    Django's ImproperlyConfigured exception would be a good one to use here.

    chipx86chipx86

    There's no guarantee that this lives in a module named "extension," I don't believe. Can we have the consumer just …

    chipx86chipx86

    We don't always want this enabled up-front. Often, you want to test what happens when enabling an extension, and need …

    chipx86chipx86

    These should also call the parent functions.

    chipx86chipx86

    Col: 9 E303 too many blank lines (2)

    reviewbotreviewbot
    reviewbot
    1. Tool: PEP8 Style Checker
      Processed Files:
          reviewboard/testing/extensions.py
      
      
      
      Tool: Pyflakes
      Processed Files:
          reviewboard/testing/extensions.py
      
      
    2. 
        
    chipx86
    1. Awesome to have real progress on this!

      It doesn't look like anything in here is RB-specific, aside from fetching the ExtensionManager. How about moving most of this into Djblets, and then having this subclass just provide the extension manager?

    2. reviewboard/testing/extensions.py (Diff revision 1)
       
       
       
       
      Show all issues

      The general import statements go before the from ... imports.

    3. reviewboard/testing/extensions.py (Diff revision 1)
       
       
      Show all issues

      Mixins should go before the parent classes.

    4. reviewboard/testing/extensions.py (Diff revision 1)
       
       
      Show all issues

      Missing period at the end.

    5. reviewboard/testing/extensions.py (Diff revision 1)
       
       
      Show all issues

      Django's ImproperlyConfigured exception would be a good one to use here.

    6. reviewboard/testing/extensions.py (Diff revision 1)
       
       
       
      Show all issues

      There's no guarantee that this lives in a module named "extension," I don't believe. Can we have the consumer just supply the extension class instance, and compute it from that, like:

      extension_id = '%s.%s' % (cls.extension.__module__, cls.extension.__name__)
      
    7. reviewboard/testing/extensions.py (Diff revision 1)
       
       
      Show all issues

      We don't always want this enabled up-front. Often, you want to test what happens when enabling an extension, and need to set things up up-front. I'd leave this out and just let the subclass decide whether to call this in setUp or in a test function.

    8. reviewboard/testing/extensions.py (Diff revision 1)
       
       
       
       
       
       
       
       
       
       
       
       
      Show all issues

      These should also call the parent functions.

    9. 
        
    brennie
    reviewbot
    1. Tool: PEP8 Style Checker
      Processed Files:
          reviewboard/testing/extensions.py
      
      
      
      Tool: Pyflakes
      Processed Files:
          reviewboard/testing/extensions.py
      
      
    2. reviewboard/testing/extensions.py (Diff revision 2)
       
       
      Show all issues
      Col: 9
       E303 too many blank lines (2)
      
    3. 
        
    brennie
    reviewbot
    1. Tool: Pyflakes
      Processed Files:
          reviewboard/testing/extensions.py
      
      
      
      Tool: PEP8 Style Checker
      Processed Files:
          reviewboard/testing/extensions.py
      
      
    2. 
        
    brennie
    mike_conley
    1. Was this going to get moved to Djblets?

    2. 
        
    brennie
    Review request changed
    Status:
    Discarded
    Change Summary:

    Student is working on this project.