Skip to main content
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

Testwizard licensing

Metadata

Release files for testwizard.smart-tv 3.4.4b1054

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for testwizard.smart-tv 3.4.4b1054
File Size Uploaded
testwizard.smart-tv-3.4.4b1054.tar.gz 7.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for testwizard.smart-tv 3.4.4b1054
File Interpreter ABI Platform
testwizard.smart_tv-3.4.4b1054-py3-none-any.whl Python 3 none any Details

Total release size: 14.0 kB

Release files / testwizard.smart-tv-3.4.4b1054.tar.gz

Download URL testwizard.smart-tv-3.4.4b1054.tar.gz
Size 7.7 kB
Tags Source
SHA-256 checksum
How to use checksums
4ba97dfaa206fd0b0215c1562aa36986eef8bedd127def2deae587a79e425ed0
BLAKE2b-256 checksum
How to use checksums
9a81c121ecb803943c95aa412f18a653be99ffe919cc4ba36278d791e8b28b6f
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.4b1054-py3-none-any.whl

Download URL testwizard.smart_tv-3.4.4b1054-py3-none-any.whl
Size 6.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ba20acc61f98bec0b6836c8dbcd32a6d0914c5fe2106a3b392f71580d3655f42
BLAKE2b-256 checksum
How to use checksums
cede8b76fbca8d1dcf1409ec12b2a908c8b1decad7e15315ee077da1779b7eda
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 history Release notifications | RSS feed

3.8.1

2 release files

3.8.0

2 release files

3.7.0

2 release files

3.6.0

2 release files

3.5.0

2 release files

3.4.4

2 release files

This release

3.4.4b1054 This release

2 release files

3.4.2

2 release files

3.4.1

2 release files

3.4.0

2 release files

3.3.6

2 release files

3.3.5

2 release files

3.3.4

2 release files

3.3.3

2 release files

3.3.2

2 release files

3.3.1

2 release files

3.3.0

2 release files

3.2.10

2 release files

3.2.9

2 release files

3.2.8

2 release files

3.2.7

2 release files

3.2.6

2 release files

3.2.5

2 release files

3.2.3

2 release files

3.2.1

2 release files

3.2.0

2 release files

3.1.19

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page