test: propagate ensure_ascii through RPC proxies #36165

pull cuishuang wants to merge 1 commits into bitcoin:master from cuishuang:master changing 3 files +61 −3
  1. cuishuang commented at 2:56 AM on September 4, 2026: none

    <!-- *** Please remove the following help text before submitting: *** Pull requests may be closed immediately if they: - do not have a rationale and clear improvement - do not adhere to doc/AI_POLICY.md GUI-related pull requests should be opened against https://github.com/bitcoin-core/gui first. See CONTRIBUTING.md -->

    <!-- Please provide clear motivation for your patch and explain how it improves Bitcoin Core user experience or Bitcoin Core developer experience significantly: * Any test improvements or new tests that improve coverage are always welcome. * All other changes should have accompanying unit tests (see `src/test/`) or functional tests (see `test/`). Contributors should note which tests cover modified code. If no tests exist for a region of modified code, new tests should accompany the change. * Bug fixes are most welcome when they come with steps to reproduce or an explanation of the potential issue as well as reasoning for the way the bug was fixed. * Features are welcome, but might be rejected due to design or scope issues. If a feature is based on a lot of dependencies, contributors should first consider building the system outside of Bitcoin Core, if possible. * Refactoring changes are only accepted if they are required for a feature or bug fix or otherwise improve developer experience significantly. For example, most "code style" refactoring changes require a thorough explanation why they are useful, what downsides they have and why they *significantly* improve developer experience or avoid serious programming bugs. Note that code style is often a subjective matter. Unless they are explicitly mentioned to be preferred in the [developer notes](/doc/developer-notes.md), stylistic code changes are usually rejected. -->

    <!-- Bitcoin Core has a thorough review process and even the most trivial change needs to pass a lot of eyes and requires non-zero or even substantial time effort to review. There is a huge lack of active reviewers on the project, so patches often sit for a long time. -->

    The Unicode checks in wallet_basic.py toggle ensure_ascii on the RPC coverage wrapper. Previously, this assignment did not update the wrapped AuthServiceProxy.

    Additionally, method proxies created by AuthServiceProxy.__getattr__() and wallet URI proxies created by AuthServiceProxy.__truediv__() did not preserve the setting. As a result, both iterations of the test serialized Unicode using the default ensure_ascii=True behavior.

    Forward ensure_ascii through AuthServiceProxyWrapper and preserve it when creating method and wallet URI proxies.

    Add a framework unit test that captures the actual HTTP request body and checks escaped JSON and direct UTF-8 serialization for both BMP and supplementary-plane characters.

    Tested by:

    python3 test/functional/feature_framework_unit_tests.py
    pipx run --spec 'ruff==0.16.0' ruff check \
      test/functional/test_framework/authproxy.py \
      test/functional/test_framework/coverage.py \
      test/functional/feature_framework_unit_tests.py
    
  2. test: propagate ensure_ascii through RPC proxies
    Signed-off-by: cuishuang <imcusg@gmail.com>
    6d2bd98d1f
  3. DrahtBot added the label Tests on Sep 4, 2026
  4. DrahtBot commented at 2:56 AM on September 4, 2026: contributor

    <!--e57a25ab6845829454e8d69fc972939a-->

    The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

    <!--006a51241073e994b41acfe9ec718e94-->

    Code Coverage & Benchmarks

    For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/36165.

    <!--021abf342d371248e50ceaed478a90ca-->

    Reviews

    See the guideline and AI policy for information on the review process. A summary of reviews will appear here.

    <!--5faf32d7da4f0f540f40219e4f7537a3-->

  5. pinheadmz commented at 1:18 PM on September 4, 2026: member

    What is the motivation for this change? How did you find the bug? What problem does it solve? Why should contributors review this submission?

    Does this submission conform to our AI policy?

  6. sedited commented at 11:43 AM on September 5, 2026: contributor

    I'm getting the impression that the author does not understand this change, so closing this again.

  7. sedited closed this on Sep 5, 2026


github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-09-09 07:56 UTC