changeset 2065:1b78d0d4b13d

data validation: use output metadata of meta validation, so we aways have some contenttype, fixes KeyError
author Thomas Waldmann <tw AT waldmann-edv DOT de>
date Sun, 31 Mar 2013 23:00:14 +0200
parents d126d94d7858
children 9cf6a6b474c5
files MoinMoin/storage/middleware/indexing.py
diffstat 1 files changed, 5 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/MoinMoin/storage/middleware/indexing.py	Sun Mar 31 22:14:40 2013 +0200
+++ b/MoinMoin/storage/middleware/indexing.py	Sun Mar 31 23:00:14 2013 +0200
@@ -1063,10 +1063,6 @@
             logging.warning("data validation skipped as we have no valid metadata")
             if VALIDATION_HANDLING == VALIDATION_HANDLING_STRICT:
                 raise ValueError('metadata validation failed and strict handling requested, see the log for details')
-        elif not validate_data(meta, data):  # need valid metadata to validate data
-            logging.warning("data validation failed")
-            if VALIDATION_HANDLING == VALIDATION_HANDLING_STRICT:
-                raise ValueError('data validation failed and strict handling requested, see the log for details')
 
         # we do not have anything in m that is not defined in the schema,
         # e.g. userdefined meta keys or stuff we do not validate. thus, we
@@ -1076,6 +1072,11 @@
         # XXX do not kick out empty lists before fixing NAME processing:
         meta = dict([(k, v) for k, v in meta.items() if v not in [None, ]])
 
+        if valid and not validate_data(meta, data):  # need valid metadata to validate data
+            logging.warning("data validation failed")
+            if VALIDATION_HANDLING == VALIDATION_HANDLING_STRICT:
+                raise ValueError('data validation failed and strict handling requested, see the log for details')
+
         if self.itemid is None:
             self.itemid = meta[ITEMID]
         backend = self.backend