Skip to content

Conversation

@alexjoel42
Copy link
Contributor

Overview

make test-pd-local has more instructions for how to resolve issues
make troubleshoot runs failed tests sequentially and will show you where they break in a paused state

It can be hard to read a stack trace, this adds make troubleshoot which you can run after

Test Plan and Hands on Testing

Hopefully this doesn't negatively impact our CI/CD

Changelog

  • Changed e2e-testing make file and added a "troubleshoot_and_pause" wrapper for failed headed pytest tests.

Review requests

I'd love some help on decision making for how to handle multiple failed tests gracefully

Risk assessment

Very low

sfoster1 and others added 9 commits January 15, 2026 09:23
The new buildroot docker container for updated buildroot requires you to
do python3 instead of python in shell calls to the python interpreter.
We need to use this new container because the old container can't be
built anymore - the debian buster apt repos have been taken down because
that distro release is out of support.
…ype changes (#20621)

Similar to how we delete labwares created by a stacker fill step if that
step is deleted, we should delete labwares created by a saved stacker
fill step if that step is changed to empty, store, or retrieve.
… presentation (#20584)

# Overview

Add an additional size to `RobotInfoLabel` to acomodate stacker slot
presentation and use .charAt() to only display stacker column
<img width="752" height="677" alt="Screenshot 2026-01-15 at 11 40 18 AM"
src="https://github.com/user-attachments/assets/c0d77f16-4dc9-489c-8aa3-a2dab9a7b54a"
/>

## Test Plan and Hands on Testing

<img width="297" height="324" alt="Screenshot 2026-01-14 at 4 16 45 PM"
src="https://github.com/user-attachments/assets/aedba2e6-8ea3-44db-a186-a9ea38b242db"
/>
<img width="679" height="667" alt="Screenshot 2026-01-14 at 4 16 51 PM"
src="https://github.com/user-attachments/assets/c8e8114e-3118-4772-a851-98850cbf8825"
/>

## Review requests

is using charAt() safe?

## Risk assessment

- I adjusted a widely used component so medium risk, but with an
additional case so everything else should be good

Closes RQA-5014 and RQA-5020
# Overview

Adding a user-facing description of this [known
issue](https://opentrons.atlassian.net/browse/RQA-5023) to PD 8.8
release notes, plus a solution.

## Test Plan and Hands on Testing



## Changelog



## Review requests

Does this make sense/cover this issue completely?

## Risk assessment

low.
…sh (#20628)

# Overview

When migrating protocols, PD calls `getDefaultBlowoutFlowRate()` to fill
in the blowout rate if it's not specified in the step.
`getDefaultBlowoutFlowRate()` tries to look up the default blowout rate
in the pipette specs' `supportedTips`, but sometimes the pipette specs
don't have an entry for the tip that the step is using.

In RQA-5047 in `multipleLiquids.json`, the protocol was trying to use
the `p300_single_gen2` pipette with a `opentrons_96_filtertiprack_20ul`
tip, but the pipette definition only has `supportedTips` entries for
`t200` and `t300`, so we were crashing.

It turns out that the code that calls `getDefaultBlowoutFlowRate()` is
fine with the function returning null, so this PR just changes the
function to return null if the blowout rate for the tip does not exist
in the pipette definition.

## Test Plan and Hands on Testing

Import `multipleLiquids.json` from RQA-5047.
PD would crash before, and no longer crashes after this change.

## Risk assessment

Low. The affected function is only used in migrations, for old protocols
that didn't specify a blowout rate.
…0631)

In starting deck state, we should set null both the stored labware
details as well as the labware in hopper properties of the stacker.
add more intuitive troubleshooting steps for running local tests and make troubleshoot to show where
failed tests  break

#20630
@alexjoel42
Copy link
Contributor Author

alexjoel42 commented Jan 17, 2026

Example of new output of make test-pd-local

Now when your tests finish, you get advice on troubleshooting steps

🧪 Tests Finished!
View /opentrons/e2e-testing/test-results/report.html for report
Use /opentrons/e2e-testing/test-result to see videos
Use 'make troubleshoot' to view and troubleshoot failed tests

Also, you now have two troubleshooting options:

New

make troubleshoot which will search your folder for failed tests and if it finds one it will run it until it fails. You then will have to fix the test.


🛑 Test 'test_full_onboarding_flow' failed due to: TimeoutError - Locator.click: Timeout 10000ms exceeded.
Call log:
  - waiting for get_by_test_id("Potato")

Pausing execution for debugging... 

And you will be able to see that clearly the deck slot should be D1 instead of "Potato" which is not a deck slot

Screenshot 2026-01-16 at 8 20 52 PM

What we had alreadymake test-pd-local-headed PYTEST_ARGS="-k test_pd_skeleton" which will now default to pausing where the test failed.

In addition to running through it

@codecov
Copy link

codecov bot commented Jan 18, 2026

Codecov Report

❌ Patch coverage is 76.56250% with 15 lines in your changes missing coverage. Please review.
✅ Project coverage is 56.92%. Comparing base (0e6c712) to head (d55b1f9).
⚠️ Report is 1 commits behind head on edge.

Files with missing lines Patch % Lines
...r/src/components/organisms/LabwareButton/index.tsx 61.11% 7 Missing ⚠️
components/src/molecules/RobotInfoLabel/index.tsx 90.90% 1 Missing ⚠️
...onents/organisms/AssignLiquidsModal/LiquidCard.tsx 0.00% 1 Missing ⚠️
...nts/organisms/AssignLiquidsModal/LiquidToolbox.tsx 0.00% 1 Missing ⚠️
...src/components/organisms/SlotInformation/index.tsx 0.00% 1 Missing ⚠️
.../src/pages/Designer/DeckSetup/DeckSetupToolbox.tsx 0.00% 1 Missing ⚠️
.../src/pages/Designer/DeckSetup/SlotOverflowMenu.tsx 0.00% 1 Missing ⚠️
...StepForm/PipetteFields/TipSelectionWizard/utils.ts 0.00% 1 Missing ⚠️
protocol-designer/src/utils/index.ts 0.00% 1 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             edge   #20632      +/-   ##
==========================================
+ Coverage   56.75%   56.92%   +0.17%     
==========================================
  Files        3911     3912       +1     
  Lines      322837   322991     +154     
  Branches    45739    45751      +12     
==========================================
+ Hits       183220   183857     +637     
+ Misses     139399   138911     -488     
- Partials      218      223       +5     
Flag Coverage Δ
app 46.26% <29.68%> (+0.22%) ⬆️
opentrons-ai-client 2.79% <0.00%> (-0.01%) ⬇️
protocol-designer 19.63% <76.56%> (+0.01%) ⬆️
step-generation 5.72% <14.06%> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
...nts/src/atoms/StyledText/PlaceholderStyledText.tsx 100.00% <100.00%> (ø)
protocol-designer/src/components/atoms/index.ts 100.00% <ø> (ø)
...components/molecules/LabwareButtonBasket/index.tsx 85.71% <ø> (ø)
.../components/organisms/AssignLiquidsModal/index.tsx 63.41% <100.00%> (+0.14%) ⬆️
...onents/organisms/LabwareCardOverflowMenu/index.tsx 76.19% <100.00%> (+1.61%) ⬆️
protocol-designer/src/labware-ingred/selectors.ts 50.28% <ø> (ø)
protocol-designer/src/pages/Liquids/index.tsx 60.86% <100.00%> (ø)
step-generation/src/utils/misc.ts 62.22% <100.00%> (+0.22%) ⬆️
components/src/molecules/RobotInfoLabel/index.tsx 98.18% <90.90%> (-1.82%) ⬇️
...onents/organisms/AssignLiquidsModal/LiquidCard.tsx 0.98% <0.00%> (ø)
... and 7 more

... and 21 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

alexjoel42 and others added 3 commits January 17, 2026 21:28
)

# Overview

Removes css width specifications to remove horizontal scroll bar and
left aligns text in labware button

## Test Plan and Hands on Testing

smoke tested:


https://github.com/user-attachments/assets/e6597bdf-cfbd-492f-8862-c47130163beb

## Changelog

- remove width specifics in css styling
- left align text to match design

## Risk assessment

low - cosmetic changes

Closes RQA-5019
#20624)

# Overview

Enables deletion of labware in liquid modal

## Test Plan and Hands on Testing

smoke tested deleting labware in deck and in a stack


https://github.com/user-attachments/assets/49b73c4c-97f4-467f-a8f8-4cfec7de6f6a

## Changelog

- added selected labware reassignment in `LabwareCardOverFlowMenu` to be
the next available labware in the same
stack
- if there is no labware left in the stack it navigates back to the
designer page

## Risk assessment

effects use of `LabwareCardOverFlowMenu` but upon smoke testing, things
seem fine
moved some components into organisms to avoid circular dependencies.

Closes RQA-5024 and created RQA-5050 to allow for multiple selection of
labware to delete all at once.
@alexjoel42 alexjoel42 marked this pull request as ready for review January 20, 2026 15:31
@alexjoel42 alexjoel42 changed the base branch from chore_release-pd-8.8.0 to edge January 20, 2026 16:08
@alexjoel42 alexjoel42 requested review from a team as code owners January 20, 2026 16:08
@alexjoel42 alexjoel42 requested review from TamarZanzouri and removed request for a team January 20, 2026 16:08
"Staging": ("TEST_ENV=staging uv run pytest -m pdE2E", "make test-pd-staging"),
"Format": ("uv run ruff format --check .", "make format", "make format"),
"Lint": ("uv run ruff check .", "make lint", "make lint"),
"Typecheck": ("uv run mypy automation tests conftest.py", "make typecheck", "make typecheck"),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just double check if Format, Lint, and Typecheck should all have the second instance of 'make ...'

Copy link
Contributor

@skowalski08 skowalski08 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants