test(04-02): add failing tests for render_uninstall and render_detect
- test_render_uninstall: asserts Remove-Printer/Driver/Port order + SilentlyContinue x3 - test_render_detect: asserts Get-Printer, Write-Output, exit 0, exit 1
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
"""Unit tests for script_generator.py — SCRPT-01, SCRPT-04, SCRPT-05."""
|
||||
"""Unit tests for script_generator.py — SCRPT-01, SCRPT-02, SCRPT-03, SCRPT-04, SCRPT-05."""
|
||||
import pytest
|
||||
from imptune.generators.script_generator import render_install
|
||||
from imptune.generators.script_generator import render_detect, render_install, render_uninstall
|
||||
|
||||
|
||||
SAMPLE_ARGS = dict(
|
||||
@@ -92,3 +92,29 @@ def test_render_install_booleans():
|
||||
|
||||
result_false = render_install(**{**SAMPLE_ARGS, "color_mode": False, "collate": False})
|
||||
assert "$false" in result_false
|
||||
|
||||
|
||||
def test_render_uninstall():
|
||||
"""SCRPT-02: render_uninstall produces correct removal order with SilentlyContinue."""
|
||||
result = render_uninstall("Test Printer", "HP Driver", "IP_10.0.0.1")
|
||||
# All three Remove-* commands must be present
|
||||
assert 'Remove-Printer -Name "Test Printer"' in result
|
||||
assert 'Remove-PrinterDriver -Name "HP Driver"' in result
|
||||
assert 'Remove-PrinterPort -Name "IP_10.0.0.1"' in result
|
||||
# All must have -ErrorAction SilentlyContinue
|
||||
assert result.count("-ErrorAction SilentlyContinue") >= 3
|
||||
# Order: Remove-Printer BEFORE Remove-PrinterDriver (driver removal fails if printer still active)
|
||||
printer_pos = result.find("Remove-Printer -Name")
|
||||
driver_pos = result.find("Remove-PrinterDriver -Name")
|
||||
port_pos = result.find("Remove-PrinterPort -Name")
|
||||
assert printer_pos < driver_pos, "Remove-Printer must appear before Remove-PrinterDriver"
|
||||
assert driver_pos < port_pos, "Remove-PrinterDriver must appear before Remove-PrinterPort"
|
||||
|
||||
|
||||
def test_render_detect():
|
||||
"""SCRPT-03: render_detect follows Intune detection contract (Write-Output + exit 0/1)."""
|
||||
result = render_detect("Test Printer")
|
||||
assert 'Get-Printer -Name "Test Printer"' in result
|
||||
assert "Write-Output" in result
|
||||
assert "exit 0" in result
|
||||
assert "exit 1" in result
|
||||
|
||||
Reference in New Issue
Block a user