-
Notifications
You must be signed in to change notification settings - Fork 179
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(shared-data): Support quirks, mount and mutable configs in v2 pipettes #12966
Changes from 11 commits
7c14e9c
40f8e77
8ec1815
3931940
ab7d26d
1e4ccd9
876da2b
52ce36f
5e662f9
8220bf7
bcb297e
3562b46
627227c
7392756
ce448c4
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,38 +1,43 @@ | ||
--- | ||
test_name: GET Pipettes | ||
marks: | ||
- usefixtures: | ||
- ot2_server_base_url | ||
- attach_pipettes | ||
stages: | ||
- name: GET Pipette Settings request returns correct info | ||
request: | ||
url: "{ot2_server_base_url}/settings/pipettes" | ||
method: GET | ||
response: | ||
status_code: 200 | ||
json: | ||
testpipette01: | ||
fields: | ||
blowout: !anydict | ||
bottom: !anydict | ||
dropTip: !anydict | ||
dropTipCurrent: !anydict | ||
dropTipSpeed: !anydict | ||
pickUpCurrent: !anydict | ||
pickUpDistance: !anydict | ||
pickUpIncrement: !anydict | ||
pickUpPresses: !anydict | ||
pickUpSpeed: !anydict | ||
plungerCurrent: !anydict | ||
quirks: !anydict | ||
tipLength: !anydict | ||
top: !anydict | ||
info: | ||
model: p300_multi_v1 | ||
name: p300_multi | ||
strict: false | ||
--- | ||
# Temporarily remove this test. I realized that tavern is not | ||
# actually using the temporary directory path provided by the pytest | ||
# fixtures because it's technically not running in the same environment | ||
# I tried to timebox this and couldn't come up with a good solution. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What we have done in other cases is make a separate fixture used by tavern. I think we really want this test in before we merge. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. So that fixture actually doesn't work across tests. It just so happens to be OK for the other tavern tests even though they are accessing the file system locally. For this test specifically, the folder it's checking for already has a lot of junk (including pipette serial numbers that would never exist in the folder). I could raise an error in this case, rather than a KeyError, but the test would still fail all the same. So essentially all of these tavern tests relying on a tmp dir aren't actually doing that. I tried figuring out a way to manipulate the env variable for tavern and couldn't successfully do that. The ultimate problem is that tavern does not see the modifications to the environment variables from pytest fixtures so even though we're adding OT_CONFIG_DIR in the pytest fixture, it doesn't exist at the time of the |
||
# Making a ticket to deal with it later. | ||
# test_name: GET Pipettes | ||
# marks: | ||
# - usefixtures: | ||
# - ot2_server_base_url | ||
# - attach_pipettes | ||
# stages: | ||
# - name: GET Pipette Settings request returns correct info | ||
# request: | ||
# url: "{ot2_server_base_url}/settings/pipettes" | ||
# method: GET | ||
# response: | ||
# status_code: 200 | ||
# json: | ||
# testpipette01: | ||
# fields: | ||
# blowout: !anydict | ||
# bottom: !anydict | ||
# dropTip: !anydict | ||
# dropTipCurrent: !anydict | ||
# dropTipSpeed: !anydict | ||
# pickUpCurrent: !anydict | ||
# pickUpDistance: !anydict | ||
# pickUpIncrement: !anydict | ||
# pickUpPresses: !anydict | ||
# pickUpSpeed: !anydict | ||
# plungerCurrent: !anydict | ||
# quirks: !anydict | ||
# tipLength: !anydict | ||
# top: !anydict | ||
# info: | ||
# model: p300_multi_v1 | ||
# name: !anystr | ||
# strict: false | ||
# --- | ||
test_name: GET Pipette {pipette_id} | ||
marks: | ||
- usefixtures: | ||
|
@@ -41,7 +46,7 @@ marks: | |
stages: | ||
sfoster1 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
- name: GET Pipette Settings of specific pipette request returns correct info | ||
request: | ||
url: "{ot2_server_base_url}/settings/pipettes/testpipette01" | ||
url: "{ot2_server_base_url}/settings/pipettes/P300MV1020230630" | ||
method: GET | ||
response: | ||
status_code: 200 | ||
|
@@ -63,7 +68,7 @@ stages: | |
top: !anydict | ||
info: | ||
model: p300_multi_v1 | ||
name: p300_multi | ||
name: !anystr | ||
strict: true | ||
--- | ||
test_name: PATCH Pipette {pipette_id} single value | ||
|
@@ -74,7 +79,7 @@ marks: | |
stages: | ||
- name: PATCH Pipette Settings of a single value | ||
request: | ||
url: "{ot2_server_base_url}/settings/pipettes/testpipette01" | ||
url: "{ot2_server_base_url}/settings/pipettes/P300MV1020230630" | ||
method: PATCH | ||
json: | ||
fields: | ||
|
@@ -89,8 +94,8 @@ stages: | |
dropTip: | ||
units: mm | ||
type: float | ||
min: -6.0 | ||
max: 2.0 | ||
min: -20.0 | ||
max: 30.0 | ||
default: -2.0 | ||
value: 1.0 | ||
dropTipCurrent: !anydict | ||
|
@@ -106,7 +111,7 @@ stages: | |
top: !anydict | ||
info: | ||
model: p300_multi_v1 | ||
name: p300_multi | ||
name: !anystr | ||
strict: true | ||
--- | ||
test_name: PATCH Pipette {pipette_id} multiple values | ||
|
@@ -117,7 +122,7 @@ marks: | |
stages: | ||
- name: PATCH Pipette Settings of multiple values | ||
request: | ||
url: "{ot2_server_base_url}/settings/pipettes/testpipette01" | ||
url: "{ot2_server_base_url}/settings/pipettes/P300MV1020230630" | ||
method: PATCH | ||
json: | ||
fields: | ||
|
@@ -134,15 +139,15 @@ stages: | |
blowout: | ||
units: mm | ||
type: float | ||
min: -4.0 | ||
max: 10.0 | ||
min: -20.0 | ||
max: 30.0 | ||
default: 3.0 | ||
value: 5.0 | ||
bottom: | ||
units: mm | ||
type: float | ||
min: -2.0 | ||
max: 19.0 | ||
min: -20.0 | ||
max: 30.0 | ||
default: 3.5 | ||
value: 3.0 | ||
dropTip: !anydict | ||
|
@@ -159,13 +164,13 @@ stages: | |
top: | ||
units: mm | ||
type: float | ||
min: 5.0 | ||
max: 19.5 | ||
min: -20.0 | ||
max: 30.0 | ||
default: 19.5 | ||
value: 18.0 | ||
info: | ||
model: p300_multi_v1 | ||
name: p300_multi | ||
name: !anystr | ||
strict: true | ||
--- | ||
test_name: PATCH Pipette {pipette_id} value too low | ||
|
@@ -176,12 +181,12 @@ marks: | |
stages: | ||
- name: PATCH Pipette Settings with too low of a value | ||
request: | ||
url: "{ot2_server_base_url}/settings/pipettes/testpipette01" | ||
url: "{ot2_server_base_url}/settings/pipettes/P300MV1020230630" | ||
method: PATCH | ||
json: | ||
fields: | ||
dropTip: | ||
value: -10.0 | ||
value: -40.0 | ||
response: | ||
status_code: 412 | ||
json: | ||
|
@@ -197,12 +202,12 @@ marks: | |
stages: | ||
- name: PATCH Pipette Settings with too high of a value | ||
request: | ||
url: "{ot2_server_base_url}/settings/pipettes/testpipette01" | ||
url: "{ot2_server_base_url}/settings/pipettes/P300MV1020230630" | ||
method: PATCH | ||
json: | ||
fields: | ||
dropTip: | ||
value: 5.0 | ||
value: 50.0 | ||
response: | ||
status_code: 412 | ||
json: | ||
|
@@ -218,7 +223,7 @@ marks: | |
stages: | ||
- name: PATCH Pipette Settings with no value at all (should reset to default) | ||
request: | ||
url: "{ot2_server_base_url}/settings/pipettes/testpipette01" | ||
url: "{ot2_server_base_url}/settings/pipettes/P300MV1020230630" | ||
method: PATCH | ||
json: | ||
fields: | ||
|
@@ -233,8 +238,8 @@ stages: | |
dropTip: | ||
units: mm | ||
type: float | ||
min: -6.0 | ||
max: 2.0 | ||
min: -20.0 | ||
max: 30.0 | ||
default: -2.0 | ||
value: -2.0 | ||
dropTipCurrent: !anydict | ||
|
@@ -250,5 +255,5 @@ stages: | |
top: !anydict | ||
info: | ||
model: p300_multi_v1 | ||
name: p300_multi | ||
name: !anystr | ||
strict: true |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
won't this break without it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure which is why I want to test on a robot. I don't know why it would break because the app only deals with the model for this feature.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we add it anyway? Regardless of whether it's needed, this is in theory a controlled API and this would represent a change.