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
|
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(
|
SAMPLE_ARGS = dict(
|
||||||
@@ -92,3 +92,29 @@ def test_render_install_booleans():
|
|||||||
|
|
||||||
result_false = render_install(**{**SAMPLE_ARGS, "color_mode": False, "collate": False})
|
result_false = render_install(**{**SAMPLE_ARGS, "color_mode": False, "collate": False})
|
||||||
assert "$false" in result_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