"""Unit tests for scad_analyze module."""
from app.scad_analyze import _lint_scad_source
def test_lint_clean_source():
source = "cube([10, 10, 10]);\n"
errors, warnings = _lint_scad_source(source)
assert not errors
assert not warnings
def test_lint_undefined_identifier():
source = "cube([foo, 10, 10]);\n"
errors, warnings = _lint_scad_source(source)
assert errors
assert "Unknown identifier(s): foo" in errors[0]
def test_lint_noisy_source():
source = "// Actually, let's fix this\ncube([10,10,10]);\n"
errors, warnings = _lint_scad_source(source)
assert errors
assert "draft/self-correction language" in errors[0]
def test_lint_abandoned_module():
source = "module unused() { cube([1,1,1]); }\n"
errors, warnings = _lint_scad_source(source)
assert not errors
assert warnings
assert "unused` is defined but never called" in warnings[0]