Исключение выдает Цербер при использовании добавленного набора правил - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть следующий фрагмент схемы Cerberus 1.3.2 (который я храню в виде файла YAML):

members:
    dependencies:
      res_type: gsuite_group
    type: dict
    keysrules:
      allowed:
        - gsuite
        - csod
    schema: gsuite_group_schema

Поскольку правила, которые я использую для members, повторно используются в другие части схемы, я пытался выделить их в их собственный набор правил:

rules_set_registry.add('gsuite_group_ruleset', {
    'dependencies': {'res_type': 'gsuite_group'},
    'type': 'dict',
    'keysrules': {'allowed': ['gsuite', 'csod']},
    'schema': 'gsuite_group_schema'}
)

Затем я изменяю бит members на:

members: gsuite_group_ruleset

Делая все это и вызов validator.validate() приводит к следующему исключению:

File "C:\Users\goncalo.lourenco\.virtualenvs\User_Sync-Zf6-tVvH\lib\site-packages\cerberus\validator.py", line 1440, in __validate_schema_mapping
  allow_unknown = self.schema[field].get('allow_unknown', self.allow_unknown)
AttributeError: 'str' object has no attribute 'get'

Любые идеи относительно того, почему это может происходить?

...