From 4791208720cee54a76e92431a92bc81937d1f46a Mon Sep 17 00:00:00 2001
From: Campbell Barton <ideasman42@gmail.com>
Date: Tue, 9 Feb 2021 21:28:09 +1100
Subject: [PATCH] Fix mesh_snap_utilities_line running without key-maps
 available

This caused script_load_addons test to fail in some cases.
---
 mesh_snap_utilities_line/__init__.py | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/mesh_snap_utilities_line/__init__.py b/mesh_snap_utilities_line/__init__.py
index 623b03550..5e4d2f969 100644
--- a/mesh_snap_utilities_line/__init__.py
+++ b/mesh_snap_utilities_line/__init__.py
@@ -118,6 +118,9 @@ def register_keymaps():
     keyconfigs = bpy.context.window_manager.keyconfigs
     kc_defaultconf = keyconfigs.default
     kc_addonconf = keyconfigs.addon
+    # In background mode.
+    if kc_defaultconf is None or kc_addonconf is None:
+        return
 
     # TODO: find the user defined tool_mouse.
     from bl_keymap_utils.io import keyconfig_init_from_data
@@ -128,8 +131,11 @@ def register_keymaps():
     #snap_modalkeymap.assign("MESH_OT_snap_utilities_line")
 def unregister_keymaps():
     keyconfigs = bpy.context.window_manager.keyconfigs
-    defaultmap = keyconfigs.get("Blender").keymaps
-    addonmap   = keyconfigs.get("Blender addon").keymaps
+    defaultmap = getattr(keyconfigs.get("Blender"), "keymaps", None)
+    addonmap = getattr(keyconfigs.get("Blender addon"), "keymaps", None)
+    # In background mode.
+    if defaultmap is None or addonmap is None:
+        return
 
     for keyconfig_data in keys.generate_snap_utilities_global_keymaps():
         km_name, km_args, km_content = keyconfig_data
-- 
GitLab