diff tests/schemata/test1.schema.yml @ 5:84dfd1a94926

Add the existing implementation. All tests work. The documentation as text file is included also.
author Franz Glasner <fzglas.hg@dom66.de>
date Thu, 06 Jul 2023 23:41:41 +0200
parents
children 41efa38a39b1
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/schemata/test1.schema.yml	Thu Jul 06 23:41:41 2023 +0200
@@ -0,0 +1,128 @@
+# -*- coding: utf-8; mode: yaml; indent-tabs-mode: nil; -*-
+#
+# This is an sample schema definition file with most feature
+#
+%YAML 1.1
+---
+
+type: dict
+keys:
+  string-value:
+    type: string
+    minLength: 1
+    maxLength: 255
+    pattern:
+      anyOf:
+        - &NAMERE !!python/object/apply:re.compile ['\A[A-Za-z_][A-Za-z0-9_]*\Z']
+        - &CALLABLE !!python/name:test_schema._test_generic_validator_for_yaml
+
+  binary-value:
+    type: binary
+    minLength: 20
+    maxLength: 256
+    value: *CALLABLE
+
+  int-value:
+    type: int
+    minValue: 0
+    maxValue: 100
+    value: *CALLABLE
+
+  float-value:
+    type: float
+    minValue: 0.0
+    maxValue: 50.0
+    value: *CALLABLE
+
+  numeric-value:
+    type: number
+    minValue: 0
+    maxValue: 1000
+    value: *CALLABLE
+
+  scalar-value:
+    type: scalar
+
+  bool-value:
+    type: bool
+    value: *CALLABLE
+
+  timestamp-value:
+    type: timestamp
+    value: *CALLABLE
+
+  null-value:
+    type: null
+
+  empty-value:
+    type: empty
+
+  any-value:
+    type: accept
+
+  not-any-value-allowed:
+    type: deny
+
+  custom-value:
+    type: *CALLABLE
+
+  dict-value:
+    type: dict
+    keys:
+      key1:
+        type: accept
+      0:
+        type: accept
+      1:
+        type: accept
+    keyNames:
+      oneOf:
+        - type: string
+        - type: integer
+          minValue: 0
+    additionalKeys:
+      type: accept         # equivalent to the simpler: additionalKeys: true
+    required:
+      - key1
+      - 0
+
+  list-value:
+    type: list
+    minLength: 1
+    maxLength: 10
+    items:
+      anyOf:
+        - type: scalar
+        - type: *CALLABLE
+
+  record-value:
+    type: record
+    items:
+      - type: string
+      - type: number
+    minLength: 2
+    maxLength: 2
+    additionalItems: false
+
+  combinator-oneOf:
+    oneOf:
+      - type: int
+      - type: float
+      - type: null
+
+  combinator-allOf:
+    allOf:
+      - &NAME 
+        type:      string
+        maxLength: 255
+        pattern: *NAMERE
+      - type: *CALLABLE
+
+  combinator-anyOf:
+    anyOf:
+      - *NAME
+      - type: *CALLABLE
+      - null
+
+additionalKeys: false
+required: []