Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the
📝 WalkthroughWalkthroughRefactoring of Adobe reseller transfer and change order validation flows, including removal of transfer-related constants, renaming of synchronization functions, consolidation of validation logic with enhanced error handling, and comprehensive test restructuring and fixture additions. Changes
Estimated code review effort🎯 4 (Complex) | ⏱️ ~75 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Comment |
3bc0ab2 to
aefd0c3
Compare
aefd0c3 to
591e1b4
Compare
b1675aa to
fc69437
Compare
1d130b7 to
0f9e1b7
Compare
fc69437 to
dac8547
Compare
0f9e1b7 to
760970d
Compare
dac8547 to
6d319e8
Compare
760970d to
1440f38
Compare
…assets in reseller transfer flow
1440f38 to
d45b9ac
Compare
6d319e8 to
4c60c9d
Compare
|
Bumps the python-development group with 3 updates: [pytest-cov](https://github.com/pytest-dev/pytest-cov), [ruff](https://github.com/astral-sh/ruff) and [types-openpyxl](https://github.com/typeshed-internal/stub_uploader). Updates `pytest-cov` from 7.0.0 to 7.1.0 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst">pytest-cov's changelog</a>.</em></p> <blockquote> <h2>7.1.0 (2026-03-21)</h2> <ul> <li> <p>Fixed total coverage computation to always be consistent, regardless of reporting settings. Previously some reports could produce different total counts, and consequently can make --cov-fail-under behave different depending on reporting options. See <code>[#641](pytest-dev/pytest-cov#641) <https://github.com/pytest-dev/pytest-cov/issues/641></code>_.</p> </li> <li> <p>Improve handling of ResourceWarning from sqlite3.</p> <p>The plugin adds warning filter for sqlite3 <code>ResourceWarning</code> unclosed database (since 6.2.0). It checks if there is already existing plugin for this message by comparing filter regular expression. When filter is specified on command line the message is escaped and does not match an expected message. A check for an escaped regular expression is added to handle this case.</p> <p>With this fix one can suppress <code>ResourceWarning</code> from sqlite3 from command line::</p> <p>pytest -W "ignore:unclosed database in <sqlite3.Connection object at:ResourceWarning" ...</p> </li> <li> <p>Various improvements to documentation. Contributed by Art Pelling in <code>[#718](pytest-dev/pytest-cov#718) <https://github.com/pytest-dev/pytest-cov/pull/718></code>_ and "vivodi" in <code>[#738](pytest-dev/pytest-cov#738) <https://github.com/pytest-dev/pytest-cov/pull/738></code><em>. Also closed <code>[#736](pytest-dev/pytest-cov#736) <https://github.com/pytest-dev/pytest-cov/issues/736></code></em>.</p> </li> <li> <p>Fixed some assertions in tests. Contributed by in Markéta Machová in <code>[#722](pytest-dev/pytest-cov#722) <https://github.com/pytest-dev/pytest-cov/pull/722></code>_.</p> </li> <li> <p>Removed unnecessary coverage configuration copying (meant as a backup because reporting commands had configuration side-effects before coverage 5.0).</p> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pytest-dev/pytest-cov/commit/66c8a526b1246b5eb8fb1bc218878131bc628622"><code>66c8a52</code></a> Bump version: 7.0.0 → 7.1.0</li> <li><a href="https://github.com/pytest-dev/pytest-cov/commit/f7076624784332594aa4cb3585d4757d295db15e"><code>f707662</code></a> Make the examples use pypy 3.11.</li> <li><a href="https://github.com/pytest-dev/pytest-cov/commit/6049a7847872e3139e6c82e93787123df5dc8672"><code>6049a78</code></a> Make context test use the old ctracer (seems the new sysmon tracer behaves di...</li> <li><a href="https://github.com/pytest-dev/pytest-cov/commit/8ebf20bbbc73478b3f8fd36d30237d9ea083f06b"><code>8ebf20b</code></a> Update changelog.</li> <li><a href="https://github.com/pytest-dev/pytest-cov/commit/861d30e60d571f97259c6b718b71c819d5dbc3b9"><code>861d30e</code></a> Remove the backup context manager - shouldn't be needed since coverage 5.0, ...</li> <li><a href="https://github.com/pytest-dev/pytest-cov/commit/fd4c956014035527f0c3c8d7faef3f8cfdadac7f"><code>fd4c956</code></a> Pass the precision on the nulled total (seems that there's some caching goion...</li> <li><a href="https://github.com/pytest-dev/pytest-cov/commit/78c9c4ecb005faf4962fd86ff7bf9c9cce9554d6"><code>78c9c4e</code></a> Only run the 3.9 on older deps.</li> <li><a href="https://github.com/pytest-dev/pytest-cov/commit/4849a922e8be725c662a3d9175da571ace6545dc"><code>4849a92</code></a> Punctuation.</li> <li><a href="https://github.com/pytest-dev/pytest-cov/commit/197c35e2f37031fd1927715307ab6eed7cb3d2b7"><code>197c35e</code></a> Update changelog and hopefully I don't forget to publish release again :))</li> <li><a href="https://github.com/pytest-dev/pytest-cov/commit/14dc1c92d44108384e39803888635fdbfc578b7f"><code>14dc1c9</code></a> Update examples to use 3.11 and make the adhoc layout example look a bit more...</li> <li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest-cov/compare/v7.0.0...v7.1.0">compare view</a></li> </ul> </details> <br /> Updates `ruff` from 0.15.6 to 0.15.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/astral-sh/ruff/releases">ruff's releases</a>.</em></p> <blockquote> <h2>0.15.7</h2> <h2>Release Notes</h2> <p>Released on 2026-03-19.</p> <h3>Preview features</h3> <ul> <li>Display output severity in preview (<a href="https://redirect.github.com/astral-sh/ruff/pull/23845">#23845</a>)</li> <li>Don't show <code>noqa</code> hover for non-Python documents (<a href="https://redirect.github.com/astral-sh/ruff/pull/24040">#24040</a>)</li> </ul> <h3>Rule changes</h3> <ul> <li>[<code>pycodestyle</code>] Recognize <code>pyrefly:</code> as a pragma comment (<code>E501</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/24019">#24019</a>)</li> </ul> <h3>Server</h3> <ul> <li>Don't return code actions for non-Python documents (<a href="https://redirect.github.com/astral-sh/ruff/pull/23905">#23905</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Add company AI policy to contributing guide (<a href="https://redirect.github.com/astral-sh/ruff/pull/24021">#24021</a>)</li> <li>Document editor features for Markdown code formatting (<a href="https://redirect.github.com/astral-sh/ruff/pull/23924">#23924</a>)</li> <li>[<code>pylint</code>] Improve phrasing (<code>PLC0208</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/24033">#24033</a>)</li> </ul> <h3>Other changes</h3> <ul> <li>Use PEP 639 license information (<a href="https://redirect.github.com/astral-sh/ruff/pull/19661">#19661</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/tmimmanuel"><code>@tmimmanuel</code></a></li> <li><a href="https://github.com/DimitriPapadopoulos"><code>@DimitriPapadopoulos</code></a></li> <li><a href="https://github.com/amyreese"><code>@amyreese</code></a></li> <li><a href="https://github.com/statxc"><code>@statxc</code></a></li> <li><a href="https://github.com/dylwil3"><code>@dylwil3</code></a></li> <li><a href="https://github.com/hunterhogan"><code>@hunterhogan</code></a></li> <li><a href="https://github.com/renovate"><code>@renovate</code></a></li> </ul> <h2>Install ruff 0.15.7</h2> <h3>Install prebuilt binaries via shell script</h3> <pre lang="sh"><code>curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.7/ruff-installer.sh | sh </code></pre> <h3>Install prebuilt binaries via powershell script</h3> <pre lang="sh"><code>powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/ruff/releases/download/0.15.7/ruff-installer.ps1 | iex" </tr></table> </code></pre> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md">ruff's changelog</a>.</em></p> <blockquote> <h2>0.15.7</h2> <p>Released on 2026-03-19.</p> <h3>Preview features</h3> <ul> <li>Display output severity in preview (<a href="https://redirect.github.com/astral-sh/ruff/pull/23845">#23845</a>)</li> <li>Don't show <code>noqa</code> hover for non-Python documents (<a href="https://redirect.github.com/astral-sh/ruff/pull/24040">#24040</a>)</li> </ul> <h3>Rule changes</h3> <ul> <li>[<code>pycodestyle</code>] Recognize <code>pyrefly:</code> as a pragma comment (<code>E501</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/24019">#24019</a>)</li> </ul> <h3>Server</h3> <ul> <li>Don't return code actions for non-Python documents (<a href="https://redirect.github.com/astral-sh/ruff/pull/23905">#23905</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Add company AI policy to contributing guide (<a href="https://redirect.github.com/astral-sh/ruff/pull/24021">#24021</a>)</li> <li>Document editor features for Markdown code formatting (<a href="https://redirect.github.com/astral-sh/ruff/pull/23924">#23924</a>)</li> <li>[<code>pylint</code>] Improve phrasing (<code>PLC0208</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/24033">#24033</a>)</li> </ul> <h3>Other changes</h3> <ul> <li>Use PEP 639 license information (<a href="https://redirect.github.com/astral-sh/ruff/pull/19661">#19661</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/tmimmanuel"><code>@tmimmanuel</code></a></li> <li><a href="https://github.com/DimitriPapadopoulos"><code>@DimitriPapadopoulos</code></a></li> <li><a href="https://github.com/amyreese"><code>@amyreese</code></a></li> <li><a href="https://github.com/statxc"><code>@statxc</code></a></li> <li><a href="https://github.com/dylwil3"><code>@dylwil3</code></a></li> <li><a href="https://github.com/hunterhogan"><code>@hunterhogan</code></a></li> <li><a href="https://github.com/renovate"><code>@renovate</code></a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/astral-sh/ruff/commit/0ef39de46c006994fb1e90f7bd4ba09c0b2c1f79"><code>0ef39de</code></a> Bump 0.15.7 (<a href="https://redirect.github.com/astral-sh/ruff/issues/24049">#24049</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/beb543b5c666be9fd3f13c88df818f202b63e9d0"><code>beb543b</code></a> [ty] ecosystem-analyzer: Fail on newly panicking projects (<a href="https://redirect.github.com/astral-sh/ruff/issues/24043">#24043</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/378fe730929ccd67a7f2426b3012093da814b31d"><code>378fe73</code></a> Don't show noqa hover for non-Python documents (<a href="https://redirect.github.com/astral-sh/ruff/issues/24040">#24040</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/b5665bd18eecab4d3b5ab1256b36904cd99a4c57"><code>b5665bd</code></a> [<code>pylint</code>] Improve phrasing (<code>PLC0208</code>) (<a href="https://redirect.github.com/astral-sh/ruff/issues/24033">#24033</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/6e20f2219020e61eeae29458013d2d3684f75a79"><code>6e20f22</code></a> test: migrate <code>show_settings</code> and <code>version</code> tests to use <code>CliTest</code> (<a href="https://redirect.github.com/astral-sh/ruff/issues/23702">#23702</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/f99b284c1fe1399a82da7f6669467488017d44a7"><code>f99b284</code></a> Drain file watcher events during test setup (<a href="https://redirect.github.com/astral-sh/ruff/issues/24030">#24030</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/744c996c35016a8c0e05aa2823f4f822ac7b842c"><code>744c996</code></a> [ty] Filter out unsatisfiable inference attempts during generic call narrowin...</li> <li><a href="https://github.com/astral-sh/ruff/commit/16160958bdafb6106b6fffc72ffe2e4db0c0ac33"><code>1616095</code></a> [ty] Avoid inferring intersection types for call arguments (<a href="https://redirect.github.com/astral-sh/ruff/issues/23933">#23933</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/7f275f431bf8c60d59601b74d441e9f4bef89f35"><code>7f275f4</code></a> [ty] Pin mypy_primer in <code>setup_primer_project.py</code> (<a href="https://redirect.github.com/astral-sh/ruff/issues/24020">#24020</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/7255e362e4b171a641222279cd28d2ca88a74fdc"><code>7255e36</code></a> [<code>pycodestyle</code>] Recognize <code>pyrefly:</code> as a pragma comment (<code>E501</code>) (<a href="https://redirect.github.com/astral-sh/ruff/issues/24019">#24019</a>)</li> <li>Additional commits viewable in <a href="https://github.com/astral-sh/ruff/compare/0.15.6...0.15.7">compare view</a></li> </ul> </details> <br /> Updates `types-openpyxl` from 3.1.5.20260316 to 3.1.5.20260322 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/typeshed-internal/stub_uploader/commits">compare view</a></li> </ul> </details> <br /> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details>



Closes MPT-17424
Release Notes
Transfer fulfillment workflow: Added new fulfillment steps (
CreateTransferSubscriptionsandCreateTransferAssets) to the reseller transfer order pipeline for handling transfer-related assets and subscriptions.Enhanced context tracking: Extended the
Contextdataclass with a newadobe_transferfield to track transfer-related data throughout the validation and fulfillment flows.Improved agreement line processing: Updated agreement sync to process all line items including those previously excluded with "adobe-reseller-transfer" vendor, enabling complete SKU resolution for all lines.
Refactored transfer validation logic: Significantly reworked the reseller change validation pipeline to derive order lines from transfer data, validate line matching, handle mismatches with proper error reporting, and integrate preview order retrieval with price updates.
Function rename for clarity: Renamed
sync_main_agreementtosync_airtable_main_agreementto better reflect the synchronization target across the transfer flow.Code cleanup: Removed legacy transfer product constants (
TRANSFER_RESELLER_PRODUCT_IDand related validation error) that are no longer needed.Comprehensive test updates: Added new test fixtures for transfer items, restructured reseller change tests into class-based format, and expanded test coverage for validation scenarios including error handling, line mismatches, and missing reseller items.
Linting configuration updates: Updated ruff configuration with improved formatting and added per-file lint rule suppressions for the transfer validation module.