• 
      

    Move the assertQueries comparison code into a dedicated module.

    Review Request #13396 — Created Nov. 2, 2023 and submitted — Latest diff uploaded

    Information

    Djblets
    release-3.x

    Reviewers

    This introduces djblets.db.query_comparator, which contains the query
    comparison code from assertQueries(). This was moved out in order to
    help make the code more maintainable, as it will soon need to grow in
    size in order to handle ORM sub-expressions, and it was already pretty
    large to begin with.

    Since we're starting fresh, some renames were made. Instead of
    "failures", we now describe results in terms of "mismatches", to help
    differentiate from a query that fails to execute.

    The inner functions have been made outer functions, avoiding the need to
    redefine them when asserting.

    Otherwise, nothing has really changed about the assertion logic. This
    merely lays the groundwork for upcoming work on comparisons.

    assertQueries() has been updated to use this, and has reduced in size
    considerably.

    Given some of the renames, this does break typing compatibility with
    newer code, but not with anything that has been released. The affected
    code will be updated to use the new type imports.

    Unit tests pass.

    Commits

    Files