• 
      

    Add a unit test utility function for building a SCMClient.

    Review Request #12501 — Created Aug. 5, 2022 and submitted

    Information

    RBTools
    release-4.x

    Reviewers

    This introduces a SCMClientTestCase.scmclient_cls attribute and
    SCMClientTestCase.build_client() method. Together, this enables unit
    tests to easily and consistently build a SCMClient instance for
    testing.

    Upcoming changes will begin migrating unit tests away from creating
    clients in setUp(), and instead move them into the individual tests.

    There are a couple of reasons for this:

    1) SCMClient setup is soon going to become a two-stage process. First,
    initialization, and then a call to setup(). Some tests will need to
    run with that second stage, and some will need to run without it. We
    don't want to have to construct these more than once per test.

    2) We already are constructing more than once per test in some cases,
    when we provide other arguments to the client constructor.

    Right now, build_client() supports taking parsed command line options
    and arbitrary SCMClient constructor parameters. Soon, it will be
    updated to take additional flags for controlling setup. Some test suites
    may also wrap build_client() to provide more specific setup.

    Unit tests pass, but this is currently not used.

    Tested this with some upcoming unit test work.

    Summary ID
    Add a unit test utility function for building a SCMClient.
    This introduces a `SCMClientTestCase.scmclient_cls` attribute and `SCMClientTestCase.build_client()` method. Together, this enables unit tests to easily and consistently build a `SCMClient` instance for testing. Upcoming changes will begin migrating unit tests away from creating clients in `setUp()`, and instead move them into the individual tests. There are a couple of reasons for this: 1) `SCMClient` setup is soon going to become a two-stage process. First, initialization, and then a call to `setup()`. Some tests will need to run with that second stage, and some will need to run without it. We don't want to have to construct these more than once per test. 2) We already are constructing more than once per test in some cases, when we provide other arguments to the client constructor. Right now, `build_client()` supports taking parsed command line options and arbitrary `SCMClient` constructor parameters. Soon, it will be updated to take additional flags for controlling setup. Some test suites may also wrap `build_client()` to provide more specific setup.
    7ede2bc7f9df52e3755b56dfc5903e234af9c825
    david
    1. Ship It!
    2. 
        
    chipx86
    david
    1. Ship It!
    2. 
        
    chipx86
    Review request changed
    Status:
    Completed
    Change Summary:
    Pushed to release-4.x (c15a8ff)