Update action extension hooks and unit tests.

Review Request #12775 — Created Jan. 9, 2023 and updated

david
Review Board
release-6.x
reviewboard

This is the final change for the new actions framework, covering the
extension hooks and unit tests.

I've repurposed the old ActionHook (which was just used as a generic
base class) to be the new entry point for actions. This simply takes a
list of BaseAction instances and handles registering and unregistering
as appropriate.

The old legacy action hooks have been updated to translate the
dictionary definitions into BaseAction instances, which are then passed
upward to the ActionHook base class. These are all now treated as
deprecated, and will warn appropriately.

This also fixes up a variety of issues discovered with the unit tests.

  • Built an extension that used all of the hooks, both the modern and
    legacy. Saw that everything worked appropriately.
  • Ran python unit tests.
  • Ran js-tests.
  • Built codebase and manual documentation and checked all related
    pages for content and spelling.
Summary
Update action extension hooks and unit tests.
Description From Last Updated

This will only be emitted once per process per text, so if we could put in an identifier like the …

chipx86chipx86

Same as above.

chipx86chipx86

Same as above.

chipx86chipx86

Same as above.

chipx86chipx86

Same as above.

chipx86chipx86

Can the docs be updated here to show these are deprecated and will be removed? We should also just make …

chipx86chipx86

JS naming slipped it. This should be deprecation_message (or really, just message would be fine). Same below.

chipx86chipx86

Blank line between statements/blocks.

chipx86chipx86

Can this be alphabetized?

chipx86chipx86
david
david
chipx86
  1. 
      
  2. reviewboard/extensions/hooks.py (Diff revision 3)
     
     
     
     
     
     

    This will only be emitted once per process per text, so if we could put in an identifier like the ID, that could do a lot to help people porting extensions.

  3. reviewboard/extensions/hooks.py (Diff revision 3)
     
     
     
     
     
     

    Same as above.

  4. reviewboard/extensions/hooks.py (Diff revision 3)
     
     
     
     
     
     

    Same as above.

  5. reviewboard/extensions/hooks.py (Diff revision 3)
     
     
     
     
     

    Same as above.

  6. reviewboard/extensions/hooks.py (Diff revision 3)
     
     
     
     
     
     

    Same as above.

  7. reviewboard/extensions/templatetags/rb_extensions.py (Diff revision 3)
     
     
     
     
     
     
     
     
     
     
     

    Can the docs be updated here to show these are deprecated and will be removed? We should also just make these emit a warning (which will help us find and remove these later).

    1. I think we can actually just remove these now. They're only used in our main templates.

  8. JS naming slipped it. This should be deprecation_message (or really, just message would be fine).

    Same below.

  9. Blank line between statements/blocks.

  10. reviewboard/extensions/tests/test_action_hooks.py (Diff revision 3)
     
     
     
     
     
     
     

    Can this be alphabetized?

  11. 
      
david
Review request changed

Change Summary:

  • Move all extension-related changes into this commit.
  • Made requested changes.

Commits:

Summary
-
Update action extension hooks and unit tests.
+
Update action extension hooks and unit tests.

Diff:

Revision 4 (+1894 -1246)

Show changes

Checks run (2 succeeded)

flake8 passed.
JSHint passed.
chipx86
  1. Ship It!
  2. 
      
Loading...