# Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
# For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
import pytest
from harness.interface.defs import status
from test_send_message import get_message_by_text, test_send_message as send_message
import time
@pytest.mark.rt1051
@pytest.mark.two_sim_cards
@pytest.mark.usefixtures("phone_unlocked")
def test_change_sim(harness, phone_number, sms_text):
simCard = {
"SIM1": 0,
"SIM2": 1,
}
# change sim to SIM1
body = {"changeSim": simCard["SIM1"]}
ret = harness.endpoint_request("developerMode", "put", body)
assert ret["status"] == status["NoContent"]
# time to change sim card in pure phone, value is experimentally chosen, no idea how to do it right
time.sleep(2)
# retrieve sim info
body = {"getInfo": "simState"}
ret = harness.endpoint_request("developerMode", "get", body)
assert ret["status"] == status["OK"]
assert ret["body"]["selectedSim"] == str(simCard["SIM1"])
assert ret["body"]["sim"] == str(simCard["SIM1"])
# send text message using SIM1
send_message(harness, phone_number, sms_text)
# change sim to SIM2
body = {"changeSim": simCard["SIM2"]}
ret = harness.endpoint_request("developerMode", "put", body)
assert ret["status"] == status["NoContent"]
# time to change sim card in pure phone, value is experimentally chosen, no idea how to do it right
time.sleep(2)
# retrieve sim info
body = {"getInfo": "simState"}
ret = harness.endpoint_request("developerMode", "get", body)
assert ret["status"] == status["OK"]
assert ret["body"]["selectedSim"] == str(simCard["SIM2"])
assert ret["body"]["sim"] == str(simCard["SIM2"])
# send text message using SIM2
send_message(harness, phone_number, sms_text)