• 
      

    Fix regressions in running Mercurial unit tests.

    Review Request #10994 — Created April 9, 2020 and submitted

    Information

    RBTools
    release-1.0.x
    b21364c...

    Reviewers

    The recent Mercurial SkipTest change broke running the Mercurial
    Subversion tests, and any test suite that followed them. There were a
    few causes:

    1. The setUpClass() for the Mercurial Subversion tests changed the
      current directory to a temp directory, which was then removed in
      tearDownClass(), leaving the current working directory set to
      a location that didn't exist (and breaking future os.getcwd()
      calls).

    2. The code shuffle resulted in a setUp() attempting to reference a
      variable that no longer existed.

    3. The .hgrc loading no longer worked, as setUpClass() created a
      temporary directory for it, set the path in the environment for all
      future calls, and then that directory was deleted after the first
      test's tearDown().

    This change fixes each of these issues.

    The base RBTestBase class now performs the same current directory
    preservation/restoration in setUpClass()/tearDownClass() that it
    does for individual test runs, ensuring we never end up in this
    situation between test suite runs.

    The initial .hgrc creation and environment population in
    setUpClass() has been removed, instead passing the necessary arguments
    directly on the command line to activate the extension, preventing any
    test pollution. The old code for working with the class-level hg_env
    map has also been removed, since it's dangerous and not used for
    anything anymore.

    The code to set up a $HOME/.hgrc for each test run was restored, which
    also fixed the bad environment variable reference.

    This fixes the full test suite, with and without hgsubversion installed,
    on all versions of Python.

    All RBTools unit tests pass (with and without Mercurial and hgsubversion)
    on all supported versions of Python.

    Tested with Mercurial 4.4.x and 5.0.x (though this version isn't
    yet compatible with hgsubversion, and will still break even though
    hg svn returns a suitable result).

    david
    1. Ship It!
    2. 
        
    chipx86
    Review request changed
    Status:
    Completed
    Change Summary:
    Pushed to release-1.0.x (f183501)