Added sandboxing to ReviewRequestFieldset

Review Request #5738 — Created April 24, 2014 and submitted

edwinzg
Review Board
master
reviewboard, students

Added sandboxing to ReviewRequestFieldset

Wrote unit tests for tests

Unit testing for init function for BaseReviewRequestFieldSet and BaseReviewRequestField, is_empty for BaseReviewRequestFieldSet, and should_render for BaseReviewRequestField

Description From Last Updated

Because the fields are third-party, this should be wrapped too.

daviddavid

Should wrap this.

daviddavid

Can you put the dictionary items on their own lines?

daviddavid

This should indicate the class name: logging.error('Error instantiating ReviewRequestfieldSet %r: %s', field_cls, e, exc_info=1)

daviddavid

This should include the class name as above.

daviddavid

This should include the class name as above.

daviddavid

Almost. What I want looks more like this: context = Context({ 'review_request_details': review, 'request': request, })

daviddavid

The text here still isn't great-- "fieldset_cls" is just an implementation detail of this method. It should read something like …

daviddavid
david
  1. Like the auth backends, the registration step isn't something that needs to be sandboxed (especially since you added try/except blocks around the built-in fields). Look for code that calls get_review_request_fieldsets, get_review_request_fields, or any other methods of iterating over the registered fields and fieldsets. For instance, the for_review_request_fieldset template tag will iterate over all the registered fieldset classes and instantiate them. That instantiation could fail if an extension author had a bug, which would end up making all the review request pages unusable.

  2. 
      
ED
david
  1. 
      
  2. reviewboard/reviews/templatetags/reviewtags.py (Diff revision 2)
     
     
     
     
     
     

    Because the fields are third-party, this should be wrapped too.

  3. Should wrap this.

  4. 
      
ED
ED
ED
ED
david
  1. 
      
  2. reviewboard/extensions/tests.py (Diff revision 6)
     
     

    Can you put the dictionary items on their own lines?

  3. This should indicate the class name:

    logging.error('Error instantiating ReviewRequestfieldSet %r: %s',
                  field_cls, e, exc_info=1)
    
  4. This should include the class name as above.

  5. This should include the class name as above.

  6. 
      
ED
david
  1. 
      
  2. reviewboard/extensions/tests.py (Diff revision 7)
     
     
     

    Almost. What I want looks more like this:

    context = Context({
        'review_request_details': review,
        'request': request,
    })
    
  3. The text here still isn't great-- "fieldset_cls" is just an implementation detail of this method. It should read something like "Error instantiating ReviewRequestFieldset %r: %s"

  4. 
      
ED
david
  1. This looks good. I'm going to hold off on pushing it because we're frozen for release.

  2. 
      
ED
Review request changed

Status: Closed (submitted)

Change Summary:

Pushed to release-2.0.x (51d5807)
Loading...