Browse Source

Better error for read-only properties

Previously, the Admin API caller would bet a misleading error message
indicating that the property did not exist.
Demi Marie Obenour 3 years ago
parent
commit
93b8c34053
1 changed files with 4 additions and 3 deletions
  1. 4 3
      qubes/__init__.py

+ 4 - 3
qubes/__init__.py

@@ -409,11 +409,12 @@ class property:  # pylint: disable=redefined-builtin,invalid-name
         This is used to effectively disable property in classes which inherit
         This is used to effectively disable property in classes which inherit
         unwanted property. When someone attempts to load such a property, it
         unwanted property. When someone attempts to load such a property, it
 
 
-        :throws AttributeError: always
+        :throws qubes.exc.QubesPropertyValueError: always
         ''' # pylint: disable=bad-staticmethod-argument,unused-argument
         ''' # pylint: disable=bad-staticmethod-argument,unused-argument
 
 
-        raise AttributeError(
-            'setting {} property on {} instance is forbidden'.format(
+        raise qubes.exc.QubesPropertyValueError(
+            self, self.property_get_def(prop), value,
+            'property {!r} on {} instance cannot be set'.format(
                 prop.__name__, self.__class__.__name__))
                 prop.__name__, self.__class__.__name__))