97 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			97 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Python
		
	
	
	
#!/usr/bin/env python3
 | 
						|
"""Test for mcrfpy.automation.screenshot()"""
 | 
						|
import mcrfpy
 | 
						|
from mcrfpy import automation
 | 
						|
from datetime import datetime
 | 
						|
import os
 | 
						|
import sys
 | 
						|
import time
 | 
						|
 | 
						|
runs = 0
 | 
						|
def test_screenshot(*args):
 | 
						|
    """Test screenshot functionality"""
 | 
						|
    #global runs
 | 
						|
    #runs += 1
 | 
						|
    #if runs < 2:
 | 
						|
    #    print("tick")
 | 
						|
    #    return
 | 
						|
    #print("tock")
 | 
						|
    #mcrfpy.delTimer("timer1")
 | 
						|
    # Create a scene with some visual elements
 | 
						|
    mcrfpy.createScene("screenshot_test")
 | 
						|
    mcrfpy.setScene("screenshot_test")
 | 
						|
    ui = mcrfpy.sceneUI("screenshot_test")
 | 
						|
    
 | 
						|
    # Add some colorful elements
 | 
						|
    frame1 = mcrfpy.Frame(10, 10, 200, 150,
 | 
						|
                         fill_color=mcrfpy.Color(255, 0, 0),
 | 
						|
                         outline_color=mcrfpy.Color(255, 255, 255),
 | 
						|
                         outline=3.0)
 | 
						|
    ui.append(frame1)
 | 
						|
    
 | 
						|
    frame2 = mcrfpy.Frame(220, 10, 200, 150,
 | 
						|
                         fill_color=mcrfpy.Color(0, 255, 0),
 | 
						|
                         outline_color=mcrfpy.Color(0, 0, 0),
 | 
						|
                         outline=2.0)
 | 
						|
    ui.append(frame2)
 | 
						|
    
 | 
						|
    caption = mcrfpy.Caption(mcrfpy.Vector(10, 170),
 | 
						|
                            text="Screenshot Test Scene",
 | 
						|
                            fill_color=mcrfpy.Color(255, 255, 0))
 | 
						|
    caption.size = 24
 | 
						|
    ui.append(caption)
 | 
						|
    
 | 
						|
    # Test multiple screenshots
 | 
						|
    timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
 | 
						|
    filenames = []
 | 
						|
    
 | 
						|
    # Test 1: Basic screenshot
 | 
						|
    try:
 | 
						|
        filename1 = f"test_screenshot_basic_{timestamp}.png"
 | 
						|
        result = automation.screenshot(filename1)
 | 
						|
        filenames.append(filename1)
 | 
						|
        print(f"✓ Basic screenshot saved: {filename1} (result: {result})")
 | 
						|
    except Exception as e:
 | 
						|
        print(f"✗ Basic screenshot failed: {e}")
 | 
						|
        print("FAIL")
 | 
						|
        sys.exit(1)
 | 
						|
    
 | 
						|
    # Test 2: Screenshot with special characters in filename
 | 
						|
    try:
 | 
						|
        filename2 = f"test_screenshot_special_chars_{timestamp}_test.png"
 | 
						|
        result = automation.screenshot(filename2)
 | 
						|
        filenames.append(filename2)
 | 
						|
        print(f"✓ Screenshot with special filename saved: {filename2} (result: {result})")
 | 
						|
    except Exception as e:
 | 
						|
        print(f"✗ Special filename screenshot failed: {e}")
 | 
						|
    
 | 
						|
    # Test 3: Invalid filename (if applicable)
 | 
						|
    try:
 | 
						|
        result = automation.screenshot("")
 | 
						|
        print(f"✗ Empty filename should fail but returned: {result}")
 | 
						|
    except Exception as e:
 | 
						|
        print(f"✓ Empty filename correctly rejected: {e}")
 | 
						|
    
 | 
						|
    # Check files exist immediately
 | 
						|
    files_found = 0
 | 
						|
    for filename in filenames:
 | 
						|
        if os.path.exists(filename):
 | 
						|
            size = os.path.getsize(filename)
 | 
						|
            print(f"✓ File exists: {filename} ({size} bytes)")
 | 
						|
            files_found += 1
 | 
						|
        else:
 | 
						|
            print(f"✗ File not found: {filename}")
 | 
						|
    
 | 
						|
    if files_found == len(filenames):
 | 
						|
        print("PASS")
 | 
						|
        sys.exit(0)
 | 
						|
    else:
 | 
						|
        print("FAIL")
 | 
						|
        sys.exit(1)
 | 
						|
 | 
						|
print("Set callback")
 | 
						|
mcrfpy.setTimer("timer1", test_screenshot, 1000)
 | 
						|
# Run the test immediately
 | 
						|
#test_screenshot()
 | 
						|
 |