mirror of
https://github.com/mudita/MuditaOS.git
synced 2026-05-01 20:35:42 -04:00
Add pytest test and functional tests, update documentation [EGD-4510] rewritten service-desktop tests into pytest manner [EGD-4510] updated docs, rewritten FT to pytest manner Co-authored-by: SP2FET <bartosz.cichocki@mudita.com>
84 lines
2.7 KiB
Python
Executable File
84 lines
2.7 KiB
Python
Executable File
#!/usr/bin/env python
|
|
# Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
|
|
# For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
|
|
|
|
import sys
|
|
import time
|
|
|
|
from harness import log
|
|
from harness.harness import Harness
|
|
from harness.interface.defs import key_codes, endpoint, method
|
|
from harness.interface.error import TestError, Error
|
|
|
|
|
|
def send_message(harness, phone_number: str, message: str):
|
|
@harness.with_phone_unlocked
|
|
def send(connection):
|
|
# enter menu
|
|
connection.send_key(key_codes["enter"])
|
|
harness.open_application("messages")
|
|
if harness.connection.get_window_name() != "ApplicationMessages":
|
|
time.sleep(2)
|
|
if harness.connection.get_window_name() != "ApplicationMessages":
|
|
print("Application didn't switch, exiting...")
|
|
exit(1)
|
|
|
|
# create new message
|
|
connection.send_key(key_codes["left"])
|
|
# enter phone number
|
|
harness.send_number(phone_number)
|
|
# move down to message body
|
|
connection.send_key(key_codes["down"])
|
|
# write a message
|
|
harness.send_text(message)
|
|
# send
|
|
connection.send_key(key_codes["enter"])
|
|
|
|
|
|
def get_message_by_text(harness, message: str):
|
|
body = {"messageBody": message}
|
|
return harness.endpoint_request("messages", "get", body)["body"]
|
|
|
|
|
|
def main():
|
|
if len(sys.argv) == 1 or "/dev" not in sys.argv[1]:
|
|
log.warning("Port name not passed, trying port name filename from simulator...")
|
|
try:
|
|
file = open("/tmp/purephone_pts_name", "r")
|
|
except FileNotFoundError as err:
|
|
raise TestError(Error.PORT_FILE_NOT_FOUND)
|
|
|
|
|
|
port_name = file.readline()
|
|
if port_name.isascii():
|
|
log.debug("found {} entry!".format(port_name))
|
|
else:
|
|
print(f'Please pass port name as the parameter: python {sys.argv[0]} /dev/ttyACM0 number text ')
|
|
raise TestError(Error.PORT_NOT_FOUND)
|
|
else:
|
|
port_name = sys.argv[1]
|
|
|
|
harness = Harness(port_name)
|
|
message = str(sys.argv[3])
|
|
messages = get_message_by_text(harness, message.upper())
|
|
|
|
send_message(harness, str(sys.argv[2]), message)
|
|
time.sleep(2)
|
|
new_messages = get_message_by_text(harness, message.upper())
|
|
|
|
diff = [i for i in messages + new_messages if i not in messages or i not in new_messages]
|
|
if len(diff) != 1 or diff[0]["type"] != 0x08: # 0x08 - SMSType::OUTBOX
|
|
log.error("sending error!")
|
|
raise TestError(Error.TEST_FAILED)
|
|
else:
|
|
log.info("sending success!")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
try:
|
|
main()
|
|
except TestError as err:
|
|
log.error(err)
|
|
exit(err.get_error_code())
|
|
|