Pre-release
This release is a pre-release and may not be stable for production use.
Testwizard - Smart-Tv
Python language support for testing Smart-Tv devices using testwizard
Usage
- Import the testwizard.test and the testwizard.smart_tv packages
- Get a session and use it to create a Smart TV testobject.
- Use this object to execute commands.
- You can use the session to add results that will be reported to the robot when the script finishes or set results that will be posted immediately.
Sample script
Python (smart-tv.py)
from sys import path
path.append("../packages/test")
path.append("../packages/testobjects/core")
path.append("../packages/testobjects/smartTv")
path.append("../packages/commands/core")
path.append("../packages/commands/audio")
path.append("../packages/commands/powerswitch")
path.append("../packages/commands/remotecontrol")
path.append("../packages/commands/video")
path.append("../packages/commands/camera")
from testwizard.test import TestWizard
from testwizard.test import ResultCodes
from testwizard.smart_tv import SmartTv
with TestWizard() as TW:
session = TW.session
print("-- Parameter usage ---")
print(" Param1 = " + session.parameters["param1"])
print(" Param2 = " + session.parameters["param2"])
print("-- Session info ---")
print(" scriptFilePath = " + session.info["scriptFilePath"])
print(" scriptFileName = " + session.info["scriptFileName"])
print(" storagePath = " + session.info["storagePath"])
print(" tester = " + session.info["tester"])
print(" environment.scriptsBasePath = " + session.info["environment"]["scriptsBasePath"])
print(" environment.storageBasePath = " + session.info["environment"]["storageBasePath"])
print(" environment.ocrEngine = " + session.info["environment"]["ocrEngine"])
print(" environment.testWizardVersion = " + session.info["environment"]["testWizardVersion"])
if session.info["session"] is not None:
print("Script was started by the Manager:")
print(" session.id = " + session.info["session"]["id"])
print(" session.name = " + session.info["session"]["name"])
print(" session.scriptIndex = " + session.info["session"]["scriptIndex"])
else:
print("Script was started from the IDE")
print("-- Create Smart TV test object ---")
smartTv = SmartTv(session, "SmartTv")
print("-- Smart TV test object info ---")
print(" id = " + smartTv.info.id)
print(" name = " + smartTv.info.name)
print(" category = " + smartTv.info.category)
print(" device.serialNo = " + smartTv.info.device.serialNo)
print(" device.hardwareVersion = " + smartTv.info.device.hardwareVersion)
print(" device.softwareVersion = " + smartTv.info.device.softwareVersion)
print(" device.description = " + smartTv.info.device.description)
print(" device.vendor.name = " + smartTv.info.device.vendor.name)
print(" device.vendor.modelName = " + smartTv.info.device.vendor.modelName)
print(" device.vendor.serialNo = " + smartTv.info.device.vendor.serialNo)
print("-- Commands ---")
basePath = session.info["environment"]["scriptsBasePath"]
print("smartTV: cameraInitializeNetwork")
result = smartTv.cameraInitializeNetwork()
print(result.message)
if result.success is False:
print("Fail")
session.addFail(result.message)
snapShotFilePath = basePath + "smart-tv-py-test.jpg"
print("smartTV: cameraSnapShot")
result = smartTv.cameraSnapShot(snapShotFilePath)
print(result.message)
if result.success is False:
print("Fail")
session.addFail(result.message)
motionX = 347
motionY = 2
motionWidth = 64
motionHeight = 30
motionDuration = 5
motionDistanceThreshold = 10
print("smartTV: cameraDetectMotion with motion - custom distanceThreshold")
result = smartTv.cameraDetectMotion(motionX, motionY, motionWidth, motionHeight, motionDuration, motionDistanceThreshold)
print(result.message)
if result.success is False or not result.hasMotion:
print("Fail")
session.addFail(result.message)
print("smartTV: cameraDetectMotion with motion - default distanceThreshold")
result = smartTv.cameraDetectMotion(motionX, motionY, motionWidth, motionHeight, motionDuration)
print(result.message)
if result.success is False or result.hasMotion:
print("Fail")
session.addFail(result.message)
print("smartTV: cameraDetectMotion with no motion - custom distanceThreshold")
result = smartTv.cameraDetectMotion(motionX + 64, motionY, motionWidth, motionHeight, motionDuration, motionDistanceThreshold)
print(result.message)
if result.success is False or result.hasMotion:
print("Fail")
session.addFail(result.message)
matchingReference = basePath + "Mibox_Home.bmp"
nonMatchingReference = basePath + "Mibox_NotHome.bmp"
roiX = 146
roiY = 257
roiWidth = 150
roiHeight = 145
sampleMatchDuration = 5
sampleMatchDistanceThreshold = 21
print("smartTV: cameraWaitForSampleNoMatch with no match - custom distanceThreshold")
result = smartTv.loadReferenceBitmap(nonMatchingReference)
print(result.message)
if result.success is False:
print("Fail")
session.addFail(result.message)
result = smartTv.cameraWaitForSampleNoMatch(roiX, roiY, roiWidth, roiHeight, sampleMatchDuration, sampleMatchDistanceThreshold)
print(result.message)
if result.success is False or result.hasMatch is True:
print("Fail")
session.addFail(result.message)
print("smartTV: cameraWaitForSample with match - default distanceThreshold")
result = smartTv.loadReferenceBitmap(matchingReference)
print(result.message)
if result.success is False:
print("Fail")
session.addFail(result.message)
result = smartTv.cameraWaitForSample(roiX, roiY, roiWidth, roiHeight, sampleMatchDuration)
print(result.message)
if result.success is False or result.hasMatch is False:
print("Fail")
session.addFail(result.message)
matchingPattern = basePath + "Mibox_Home_Pattern.bmp"
patternX = 180
patternY = 96
patternWidth = 81
patternHeight = 81
patternMatchDuration = 5
patternMatchDistanceThreshold = 21
print("smartTV: cameraWaitForPattern with match - custom distanceThreshold")
result = smartTv.cameraWaitForPattern(matchingPattern, patternX, patternY, patternWidth, patternHeight, patternMatchDuration, patternMatchDistanceThreshold)
print(result.message)
if result.success is False or result.hasMatch is False:
print("Fail")
session.addFail(result.message)
nonMatchingPattern = basePath + "Mibox_NotHome_Pattern.bmp"
print("smartTV: cameraWaitForPatternNoMatch with no match - default distanceThreshold")
result = smartTv.cameraWaitForPatternNoMatch(nonMatchingPattern, patternX, patternY, patternWidth, patternHeight, patternMatchDuration)
print(result.message)
if result.success is False or result.hasMatch is True:
print("Fail")
session.addFail(result.message)
if not (session.hasFails or session.hasErrors):
session.setResult(ResultCodes.PASS, "Test was successful")
sidecar file (smart-tv.json)
{
"tester": "John Smith",
"parameters": [
{ "name": "param1", "value": "value1"},
{ "name": "param2", "value": "value2"}
],
"resources": [
{ "category": "SMART_TV", "name": "SmartTv", "id": "TV Model 1"}
],
"outputFolder": "c:\\temp"
}
License
Metadata
Release files for testwizard.smart-tv 3.4.4b1056
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| testwizard.smart-tv-3.4.4b1056.tar.gz | 7.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| testwizard.smart_tv-3.4.4b1056-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.0 kB
Release files / testwizard.smart-tv-3.4.4b1056.tar.gz
| Download URL | testwizard.smart-tv-3.4.4b1056.tar.gz |
|---|---|
| Size | 7.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1eb2f62981c63768daf47bcc32b2fbfa7b5656fbb05570fa903b0dd032db1198
|
|
BLAKE2b-256 checksum How to use checksums |
45445d3eaa7ba2656ce0a87f58fe673c9f1f34eee643f9d9472bfc7fe8f35892
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.9
|
Release files / testwizard.smart_tv-3.4.4b1056-py3-none-any.whl
| Download URL | testwizard.smart_tv-3.4.4b1056-py3-none-any.whl |
|---|---|
| Size | 6.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f3338f724640b4555c6a554a71f5fd37326081f5d228a5555c8e38f8a4fcca36
|
|
BLAKE2b-256 checksum How to use checksums |
2ef017b90e0c939dc74db32ec783b7d0b96cecceb6cbe328da94da1d394a506e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.9
|