Add dependency checks for Bazaar.

Review Request #12544 — Created Aug. 18, 2022 and submitted

Information

RBTools
release-4.x

Reviewers

This updates BazaarClient to add formal support for dependency checks.
BazaarClient.check_dependencies() now determines if Breezy or Bazaar
is installed, and sets appropriate flags for the tool to use.

The bzr and is_breezy attributes have become properties, which will
trigger a dependency check if one is not performed. Similarly,
get_local_path() will also perform a dependency check if needed. This
is all in case of legacy usage where these are accessed before calling
setup() or has_dependencies(). In RBTools 5, these will instead
raise an exception.

Unit tests have been updated to include new dependency-related tests.
They also now leverage the dependency checks, rather than duplicating
checks or working around the different names of the tool. Tests that
require a working client will be skipped if missing a dependency.

Unit tests pass on Python 3.7 through 3.11.

Tested with Breezy installed, with Bazaar installed, and with neither
installed.

Summary ID
Add dependency checks for Bazaar.
This updates `BazaarClient` to add formal support for dependency checks. `BazaarClient.check_dependencies()` now determines if Breezy or Bazaar is installed, and sets appropriate flags for the tool to use. The `bzr` and `is_breezy` attributes have become properties, which will trigger a dependency check if one is not performed. Similarly, `get_local_path()` will also perform a dependency check if needed. This is all in case of legacy usage where these are accessed before calling `setup()` or `has_dependencies()`. In RBTools 5, these will instead raise an exception. Unit tests have been updated to include new dependency-related tests. They also now leverage the dependency checks, rather than duplicating checks or working around the different names of the tool. Tests that require a working client will be skipped if missing a dependency.
51cbcffc36de098dd18395ab5c80e8353d92a9e8
Description From Last Updated

Want to add str while you're in here?

daviddavid

Docs don't match up with type annotations and implementation.

daviddavid
There are no open issues
david
  1. 
      
  2. rbtools/clients/bazaar.py (Diff revision 1)
     
     
    Show all issues

    Want to add str while you're in here?

    1. Yeah I'll do that. It's apparently inferred if assigned to a string initially, but better to be explicit.

  3. rbtools/clients/bazaar.py (Diff revision 1)
     
     
     
     
     
     
     
     
     
     
     
     
    Show all issues

    Docs don't match up with type annotations and implementation.

  4. 
      
chipx86
david
  1. Ship It!
  2. 
      
chipx86
Review request changed
Status:
Completed
Change Summary:
Pushed to release-4.x (8931f0e)
Loading...