Tests written for weakspots and fixes

OLD, NEEDS REVISION for 2.0

Needs:
  • Lots of stuff removed

  • Rewrite tests for current functionality

fred.op15 - (BOTH button)

Button that changes active layer, unlocks layer, locks other layers, brush changes to Draw and Material switches to 1 I Line.

Preparation:
  • Open your Fred-prepared scene (with the Fox rig).

  • Ensure you are in Object Mode with the Grease Pencil object selected.

  • Open the System Console (Window > Toggle System Console) to see any error popups.

  • Keep the Outliner visible so you can see layer visibility (Eye icon) and Lock status.

Regular functionality

Revision 5.0: Passes

Goal: Verify the operator works when layers are already visible.

Setup:
  • Ensure Mouth Lines, Mouth Mask, Teeth, and Head layers are Visible (Eye On) and Unlocked.

Action:
  • Run fred.op15.

Expected Result:
  • Layers remain Visible and Unlocked.

  • Active Layer switches to Mouth Lines.

  • Brush switches to Draw.

  • Material switches to 1 I LINE.

Conclusion:
  • The operator works correctly when visibility is already set.

If layers were invisible when BOTH is selected, layers do not become visible

Revision 5.0: Fails

Goal: Verify that fred.op15 currently fails to make hidden layers visible.

Setup:
  • In the Outliner, find the Mouth Lines layer ([MOUTH] Lines).

  • Click the Eye icon to hide it (make it invisible).

  • Ensure the layer is Unlocked (padlock open).

  • Ensure Head Lines is also Hidden.

Action:
  • Click the “BOTH” button for Mouth (or press your bound key for fred.op15).

Expected Result (BUG):
  • The operator runs (no error message).

  • The Lock icon in the Outliner changes to Unlocked.

  • BUT: The Eye icon remains Off (Hidden).

  • Viewport: You see nothing (no strokes, no layer active).

Conclusion:
  • The code unlocks layer but does not unhide it.

Locked & Hidden

Revision 5.0: Fails

Goal: Verify behavior when layers are both locked and hidden.

Setup:
  • In the Outliner, find Mouth Mask ([MOUTH] Mask).

  • Lock it (Padlock Closed).

  • Hide it (Eye Off).

Action:
  • Run fred.op15.

Expected Result (BUG):
  • The Lock icon becomes Unlocked.

  • The Eye icon remains Off.

  • Viewport: Still invisible.

Conclusion:
  • The bug persists even if the layer was locked.

The “Missing Tag” Scenario (Safety Check)

Revision 5.0: Known Issue

Goal: Verify the code handles missing layers gracefully (if you add the safety check later).

Setup:
  • In the Outliner, rename the Mouth Lines layer to something that does not contain ML (e.g., “Custom Mouth”).

  • Ensure other layers are visible.

Action:
  • Run fred.op15.

Expected Result (Current Code):
  • Crash/Error: The code tries to access blorp (which is still “[MOUTH] Lines”) but the layer name is different.

  • Console: KeyError: ‘[MOUTH] Lines’ or similar.

Conclusion:
  • The current code is fragile and will crash if layer names are slightly off.

Workaround:
  • Leave all layers named the way they are. Scenes are already set up so this is not an issue on AFIS.

Undo Verification

Revision 5.0: Weak Area

Goal: Verify the undo message is correct.

Setup:
  • Ensure ‘Mouth Lines’ is Visible.

Action:
  • Run fred.op15.

  • Immediately press Ctrl+Z.

Expected Result:
  • The Undo Stack message should say something like “Unlock Mouth + Head” or “[MOUTH] Lines”.

  • Current Code: Likely says “[MOUTH] Lines” (because blorp is used in undo_push).

Conclusion:
  • The undo message is dynamic but depends on the blorp variable.

  • Blorp is not descriptive so this is a weakspot message & code-reading-wise.