Index: shared/scripts/names.py =================================================================== diff -u -r08e394d6afe01356f9ab4da613180112ff86f32d -r3b227c80563721d348a1bc80701c5cfab938d469 --- shared/scripts/names.py (.../names.py) (revision 08e394d6afe01356f9ab4da613180112ff86f32d) +++ shared/scripts/names.py (.../names.py) (revision 3b227c80563721d348a1bc80701c5cfab938d469) @@ -357,7 +357,7 @@ o_create_treatment_button = {"container": o_treatmentHome, "text": "CREATE TREATMENT", "type": "Text", "unnamed": 1 } o_create_treatment_container = {"container": o_qquickview_alarm, "objectName": "TreatmentCreate", "type": "TreatmentCreate" } -o_create_treatment_flickable = {"container": o_create_treatment_container, "id": "_flickable", "type": "Flickable", "unnamed": 1 } +o_create_treatment_flickable = {"container": o_create_treatment_container, "objectName": "TreatmentCreateFlickable", "type": "Flickable"} o_create_treatment_saline_bolus_0 = {"container": o_create_treatment_container, "objectName": "_salineBolusRect0", "type": "TouchRect"} o_create_treatment_saline_bolus_1 = {"container": o_create_treatment_container, "objectName": "_salineBolusRect1", "type": "TouchRect"} o_create_treatment_saline_bolus_2 = {"container": o_create_treatment_container, "objectName": "_salineBolusRect2", "type": "TouchRect"} Index: tools/create_dialin_link.sh =================================================================== diff -u --- tools/create_dialin_link.sh (revision 0) +++ tools/create_dialin_link.sh (revision 3b227c80563721d348a1bc80701c5cfab938d469) @@ -0,0 +1,35 @@ +#!/bin/bash +########################################################################### +# +# Copyright (c) 2019-2019 Diality Inc. - All Rights Reserved. +# +# THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN +# WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. +# +# @file run_tests.sh +# +# @date 16-Oct-2020 +# @author Peter Lucia +# +# @brief This script toggles whether the testsuites virtual environment +# uses a local copy of dialin or one pulled from a remote +# +############################################################################ + +cd ../ +LOCAL_DIALIN=~/Projects/dialin/dialin +read -p "Do you want to restore the remote dialin package? (y/n) " resp +if [ "$resp" == "y" ]; then + if [ -d "venv/lib/python3.6/site-packages/dialin.bak" ]; then + rm -rf venv/lib/python3.6/site-packages/dialin + mv venv/lib/python3.6/site-packages/dialin.bak venv/lib/python3.6/site-packages/dialin + else + echo "venv/lib/python3.6/site-packages/dialin.bak not found." + fi +else + echo "Ok, let's link to a local dialin repository then." + read -p "Enter the path to your local dialin: " -e -i "$LOCAL_DIALIN" LOCAL_DIALIN + mv venv/lib/python3.6/site-packages/dialin venv/lib/python3.6/site-packages/dialin.bak + ln -s $LOCAL_DIALIN venv/lib/python3.6/site-packages/dialin +fi +echo "Done." Index: tst_CreateTreatment/test.py =================================================================== diff -u -r2eadee44ce8be006bae5ae6692b54e33e64c5086 -r3b227c80563721d348a1bc80701c5cfab938d469 --- tst_CreateTreatment/test.py (.../test.py) (revision 2eadee44ce8be006bae5ae6692b54e33e64c5086) +++ tst_CreateTreatment/test.py (.../test.py) (revision 3b227c80563721d348a1bc80701c5cfab938d469) @@ -3,29 +3,26 @@ import names from dialin.squish import utils -from dialin.ui.hd_proxy import HDSimulator +from dialin.ui.hd_simulator import HDSimulator from dialin.common.msg_defs import RequestRejectReasons +from dialin import HDSimulator from time import sleep - slider_ranges = { "bloodFlowRateMin": 100, "bloodFlowRateMax": 500, "dialysateFlowRateMin": 100, "dialysateFlowRateMax": 600, "durationMin": 60, "durationMax": 480, - "heparinDispensingRateMin": 0, - "heparinDispensingRateMax": 1000, - "heparinBolusVolumeMin": 100, - "heparinBolusVolumeMax": 2000, - "heparinStopTimeMin": 1000, - "heparinStopTimeMax": 2000, - "salineBolusOptions": [ - "100 mL", - "200 mL", - "300 mL" - ], + "heparinDispensingRateMin": 0.1, + "heparinDispensingRateMax": 1, + "heparinBolusVolumeMin": 0.1, + "heparinBolusVolumeMax": 2, + "heparinStopTimeMin": 0, + "heparinStopTimeMax": 480, + "salineBolusMin": 100, + "salineBolusMax": 300, "acidConcentrateOptions": [ "08-1251-1", "08-2251-0", @@ -41,17 +38,17 @@ "Fresenius Optiflux F180NRe" ], "dialysateTempMin": 35, - "dialysateTempMax": 39, + "dialysateTempMax": 38, "arterialPressureLimitLowMin": -300, "arterialPressureLimitLowMax": 200, "arterialPressureLimitHighMin": -300, "arterialPressureLimitHighMax": 200, "venousPressureLimitLowMin": -100, "venousPressureLimitLowMax": 600, - "venousPressureLimitHighMin": 0, + "venousPressureLimitHighMin": 100, "venousPressureLimitHighMax": 600, - "bloodPressureMeasureIntervalMin": 0, - "bloodPressureMeasureIntervalMax": 30, + "bloodPressureMeasureIntervalMin": 15, + "bloodPressureMeasureIntervalMax": 60, "rinsebackFlowRateMin": 50, "rinsebackFlowRateMax": 150 } @@ -64,7 +61,9 @@ @return: None """ + mouseClick(waitForObject(names.o_create_treatment_button)) + sleep(0.1) test.compare(waitForObjectExists(names.o_create_treatment_flickable).visible, True, "Create treatment page loads") def test_parameters_exist(): @@ -81,11 +80,11 @@ "_heparinDispensingRate": "SliderCreateTreatment", "_heparinBolusVolume": "SliderCreateTreatment", "_heparinStopTime": "SliderCreateTreatment", + "_salineBolus": "SliderCreateTreatment", - "_salineBolusRect": "RectSelectCreateTreatment", - "_acidConcentrateRect": "RectSelectCreateTreatment", - "_bicarbonateConcentrateRect": "RectSelectCreateTreatment", - "_dialyzerTypeRect": "RectSelectCreateTreatment", + "_acidConcentrateRect": "GridSelection", + "_bicarbonateConcentrateRect": "GridSelection", + "_dialyzerTypeRect": "GridSelection", "_dialysateTemperature": "SliderCreateTreatment", "_arterialPressureLimits": "SliderDoubleCreateTreatment", @@ -113,44 +112,51 @@ sliders = { - "_bloodFlowRate": {"min": slider_ranges["bloodFlowRateMin"], "max": slider_ranges["bloodFlowRateMax"], "units": " mL/min" }, - "_dialysateFlowRate": {"min": slider_ranges["dialysateFlowRateMin"], "max": slider_ranges["dialysateFlowRateMax"], "units": " mL/min" }, - "_duration": {"min": slider_ranges["durationMin"], "max": slider_ranges["durationMax"], "units": " min" }, - "_heparinDispensingRate": {"min": slider_ranges["heparinDispensingRateMin"], "max": slider_ranges["heparinDispensingRateMax"], "units": " mL/hr" }, - "_heparinBolusVolume": {"min": slider_ranges["heparinBolusVolumeMin"], "max": slider_ranges["heparinBolusVolumeMax"], "units": " mL" }, - "_heparinStopTime": {"min": slider_ranges["heparinStopTimeMin"], "max": slider_ranges["heparinStopTimeMax"], "units": " min" }, - "_dialysateTemperature": {"min": slider_ranges["dialysateTempMin"], "max": slider_ranges["dialysateTempMax"], "units": " C" }, - "_arterialPressureLimitsLow": {"min": slider_ranges["arterialPressureLimitLowMin"], "max": slider_ranges["arterialPressureLimitLowMax"], "units": " mmHg" }, - "_arterialPressureLimitsHigh": {"min": slider_ranges["arterialPressureLimitHighMin"], "max": slider_ranges["arterialPressureLimitHighMax"], "units": " mmHg" }, - "_venousPressureLimitsLow": {"min": slider_ranges["venousPressureLimitLowMin"], "max": slider_ranges["venousPressureLimitLowMax"], "units": " mmHg" }, - "_venousPressureLimitsHigh": {"min": slider_ranges["venousPressureLimitHighMin"], "max": slider_ranges["venousPressureLimitHighMax"], "units": " mmHg" }, - "_bloodPressureMeasurementInterval": {"min": slider_ranges["bloodPressureMeasureIntervalMin"], "max": slider_ranges["bloodPressureMeasureIntervalMax"], "units": " min" }, - "_rinsebackFlowRate": {"min": slider_ranges["rinsebackFlowRateMin"], "max": slider_ranges["rinsebackFlowRateMax"], "units": " mL/min" }, + "_bloodFlowRate": {"min": slider_ranges["bloodFlowRateMin"], "max": slider_ranges["bloodFlowRateMax"], "units": "mL/min" }, + "_dialysateFlowRate": {"min": slider_ranges["dialysateFlowRateMin"], "max": slider_ranges["dialysateFlowRateMax"], "units": "mL/min" }, + "_duration": {"min": slider_ranges["durationMin"], "max": slider_ranges["durationMax"], "units": "min" }, + "_heparinDispensingRate": {"min": slider_ranges["heparinDispensingRateMin"], "max": slider_ranges["heparinDispensingRateMax"], "units": "mL/hr" }, + "_heparinBolusVolume": {"min": slider_ranges["heparinBolusVolumeMin"], "max": slider_ranges["heparinBolusVolumeMax"], "units": "mL" }, + "_heparinStopTime": {"min": slider_ranges["heparinStopTimeMin"], "max": slider_ranges["heparinStopTimeMax"], "units": "min" }, + "_salineBolus": {"min": slider_ranges["salineBolusMin"], "max": slider_ranges["salineBolusMax"], "units": "mL" }, + "_dialysateTemperature": {"min": slider_ranges["dialysateTempMin"], "max": slider_ranges["dialysateTempMax"], "units": "C" }, + "_arterialPressureLimitsLow": {"min": slider_ranges["arterialPressureLimitLowMin"], "max": slider_ranges["arterialPressureLimitLowMax"], "units": "mmHg" }, + "_arterialPressureLimitsHigh": {"min": slider_ranges["arterialPressureLimitHighMin"], "max": slider_ranges["arterialPressureLimitHighMax"], "units": "mmHg" }, + "_venousPressureLimitsLow": {"min": slider_ranges["venousPressureLimitLowMin"], "max": slider_ranges["venousPressureLimitLowMax"], "units": "mmHg" }, + "_venousPressureLimitsHigh": {"min": slider_ranges["venousPressureLimitHighMin"], "max": slider_ranges["venousPressureLimitHighMax"], "units": "mmHg" }, + "_bloodPressureMeasurementInterval": {"min": slider_ranges["bloodPressureMeasureIntervalMin"], "max": slider_ranges["bloodPressureMeasureIntervalMax"], "units": "min" }, + "_rinsebackFlowRate": {"min": slider_ranges["rinsebackFlowRateMin"], "max": slider_ranges["rinsebackFlowRateMax"], "units": "mL/min" }, } for slider_name, slider_info in sliders.items(): - if slider_name == "_heparinStopTime": + if slider_name == "_salineBolus": flick(waitForObject(names.o_create_treatment_flickable), 0, 700) sleep(1) if slider_name == "_dialysateTemperature": flick(waitForObject(names.o_create_treatment_flickable), 0, 700) sleep(1) - if slider_name == "_arterialPressureLimitsHigh": - flick(waitForObject(names.o_create_treatment_flickable), 0, 400) + if slider_name == "_venousPressureLimitsHigh": + flick(waitForObject(names.o_create_treatment_flickable), 0, 300) sleep(2) - - - + + slider_object_name = slider_name + "Slider" + test.log("Slider Under Test", slider_object_name) slider_selected_value_object_name = slider_name + "Value" slider_object = {"container": names.o_create_treatment_container, "objectName": slider_object_name, "type": "Slider" } test.compare(waitForObjectExists(slider_object).visible, True, "Found " + slider_object_name) mouseClick(waitForObject(slider_object), waitForObjectExists(slider_object).width / 2, 5, Qt.LeftButton) + sleep(0.1) - mouseClick(waitForObject(slider_object), 1, 0, Qt.LeftButton) + mouseDrag(waitForObject(slider_object), + waitForObjectExists(slider_object).width / 2, 5.0, + -15 - waitForObjectExists(slider_object).width / 2, 0, + Qt.NoModifier, + Qt.LeftButton) + sleep(0.1) selected_value_object = { @@ -160,12 +166,13 @@ } test.compare(waitForObjectExists(selected_value_object).visible, True) - test.compare(waitForObjectExists(selected_value_object).text, "{0}{1}".format(slider_info["min"], slider_info["units"])) + test.compare(waitForObjectExists(selected_value_object).text, "{0} {1}".format(slider_info["min"], slider_info["units"])) mouseClick(waitForObject(slider_object), waitForObjectExists(slider_object).width, 0, Qt.LeftButton) - + sleep(0.1) + test.compare(waitForObjectExists(selected_value_object).visible, True) - test.compare(waitForObjectExists(selected_value_object).text, "{0}{1}".format(slider_info["max"], slider_info["units"])) + test.compare(waitForObjectExists(selected_value_object).text, "{0} {1}".format(slider_info["max"], slider_info["units"])) def check_button_group(buttons, slider_ranges_key): @@ -185,20 +192,8 @@ @return: None """ - flick(waitForObject(names.o_create_treatment_flickable), 0, -1400) - # saline bolus + flick(waitForObject(names.o_create_treatment_flickable), 0, -1100) - saline_bolus_buttons = [ - names.o_create_treatment_saline_bolus_0, - names.o_create_treatment_saline_bolus_1, - names.o_create_treatment_saline_bolus_2 - ] - - check_button_group(saline_bolus_buttons, "salineBolusOptions") - sleep(2) - - flick(waitForObject(names.o_create_treatment_flickable), 0, 300) - # acid concentrate acid_options = [ names.o_create_treatment_acid_0, @@ -254,10 +249,7 @@ True, "Simulate HD treatment param response") - flick(waitForObject(names.o_create_treatment_flickable), 0, -1800) - - -def test_continue_success(): +def test_continue_success(hd_simulator: HDSimulator): """ Tests that selecting the continue button moves to the treatment confirm page Assumes all treatment parameters have already been selected @@ -271,9 +263,7 @@ sleep(0.05) - # simulate FW response that all parameters are valid - hd_simulator = HDSimulator() - + # simulate FW response that all parameters are valid reject_reasons = [ RequestRejectReasons.REQUEST_REJECT_REASON_NONE, # overall response RequestRejectReasons.REQUEST_REJECT_REASON_NONE, # blood flow @@ -305,6 +295,7 @@ def main(): utils.tstStart(__file__) startApplication(names.AUT_NAME + " -q") + hd_simulator = HDSimulator() sleep(1) test_load_create_treatment() sleep(1) @@ -315,7 +306,7 @@ test_sliders() test_rects() - test_continue_success() + test_continue_success(hd_simulator) utils.tstDone()