Mercurial > hgrepos > Python > libs > data-schema
comparison tests/test_schema.py @ 41:d2b43423fa4c
Some new test cases with ref-false, when-ref-false, ref-not-existss, when-ref-not-exists
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Thu, 20 Jul 2023 02:04:17 +0200 |
| parents | 5a2fba996773 |
| children | 0e7acd426e3a |
comparison
equal
deleted
inserted
replaced
| 40:2376224a9717 | 41:d2b43423fa4c |
|---|---|
| 805 self.assertEqual(["r1", "r2", "r3"], r["require"]) | 805 self.assertEqual(["r1", "r2", "r3"], r["require"]) |
| 806 self.assertTrue("new-key" in r) | 806 self.assertTrue("new-key" in r) |
| 807 self.assertIsNone(r["new-key"]) | 807 self.assertIsNone(r["new-key"]) |
| 808 self.assertFalse("cond" in r) | 808 self.assertFalse("cond" in r) |
| 809 | 809 |
| 810 def test_simple_replace_when_ref_false(self): | |
| 811 schema = data_schema._Schema( | |
| 812 None, True, {"$type": None, | |
| 813 "require": ["huhu", "haha"], | |
| 814 "cond": [ | |
| 815 {"when-ref-false": '#foo2', | |
| 816 "then": { | |
| 817 "require": ["r1", "r2", "r3"], | |
| 818 "new-key": None, | |
| 819 }} | |
| 820 ]}) | |
| 821 r = data_schema.process_schema_conditionals(schema, self._ctx) | |
| 822 self.assertIsNot(r, schema) | |
| 823 self.assertEqual(["r1", "r2", "r3"], r["require"]) | |
| 824 self.assertTrue("new-key" in r) | |
| 825 self.assertIsNone(r["new-key"]) | |
| 826 self.assertFalse("cond" in r) | |
| 827 | |
| 810 def test_simple_replace_when_ref_true_2(self): | 828 def test_simple_replace_when_ref_true_2(self): |
| 811 schema = data_schema._Schema( | 829 schema = data_schema._Schema( |
| 812 None, True, {"$type": None, | 830 None, True, {"$type": None, |
| 813 "require": ["huhu", "haha"], | 831 "require": ["huhu", "haha"], |
| 814 "cond": [ | 832 "cond": [ |
| 879 self.assertTrue("new-key" in r) | 897 self.assertTrue("new-key" in r) |
| 880 self.assertIsNone(r["new-key"]) | 898 self.assertIsNone(r["new-key"]) |
| 881 self.assertFalse("new-key3" in r) | 899 self.assertFalse("new-key3" in r) |
| 882 self.assertFalse("cond" in r) | 900 self.assertFalse("cond" in r) |
| 883 | 901 |
| 902 def test_simple_replace_when_ref_not_exists(self): | |
| 903 schema = data_schema._Schema( | |
| 904 None, True, {"$type": None, | |
| 905 "require": ["huhu", "haha"], | |
| 906 "cond": [ | |
| 907 {"when-ref-not-exists": '#foo3-non-existing', | |
| 908 "then": { | |
| 909 "require": ["r1", "r2", "r3"], | |
| 910 "new-key": None, | |
| 911 }}, | |
| 912 {"when": True, | |
| 913 "then": { | |
| 914 "new-key3": "val"}} | |
| 915 ]}) | |
| 916 r = data_schema.process_schema_conditionals(schema, self._ctx) | |
| 917 self.assertIsNot(r, schema) | |
| 918 self.assertEqual(["r1", "r2", "r3"], r["require"]) | |
| 919 self.assertTrue("new-key" in r) | |
| 920 self.assertIsNone(r["new-key"]) | |
| 921 self.assertFalse("new-key3" in r) | |
| 922 self.assertFalse("cond" in r) | |
| 923 | |
| 884 def test_simple_replace_when_ref_exists_2(self): | 924 def test_simple_replace_when_ref_exists_2(self): |
| 885 schema = data_schema._Schema( | 925 schema = data_schema._Schema( |
| 886 None, True, {"$type": None, | 926 None, True, {"$type": None, |
| 887 "require": ["huhu", "haha"], | 927 "require": ["huhu", "haha"], |
| 888 "cond": [ | 928 "cond": [ |
| 901 self.assertTrue("new-key" in r) | 941 self.assertTrue("new-key" in r) |
| 902 self.assertIsNone(r["new-key"]) | 942 self.assertIsNone(r["new-key"]) |
| 903 self.assertFalse("new-key3" in r) | 943 self.assertFalse("new-key3" in r) |
| 904 self.assertFalse("cond" in r) | 944 self.assertFalse("cond" in r) |
| 905 | 945 |
| 946 def test_simple_replace_when_ref_not_exists_2(self): | |
| 947 schema = data_schema._Schema( | |
| 948 None, True, {"$type": None, | |
| 949 "require": ["huhu", "haha"], | |
| 950 "cond": [ | |
| 951 {"when": {"ref-not-exists": '#foo3-non-existing'}, | |
| 952 "then": { | |
| 953 "require": ["r1", "r2", "r3"], | |
| 954 "new-key": None, | |
| 955 }}, | |
| 956 {"when": True, | |
| 957 "then": { | |
| 958 "new-key3": "val"}} | |
| 959 ]}) | |
| 960 r = data_schema.process_schema_conditionals(schema, self._ctx) | |
| 961 self.assertIsNot(r, schema) | |
| 962 self.assertEqual(["r1", "r2", "r3"], r["require"]) | |
| 963 self.assertTrue("new-key" in r) | |
| 964 self.assertIsNone(r["new-key"]) | |
| 965 self.assertFalse("new-key3" in r) | |
| 966 self.assertFalse("cond" in r) | |
| 967 | |
| 906 def test_simple_replace_when_ref_exists_is_false(self): | 968 def test_simple_replace_when_ref_exists_is_false(self): |
| 907 schema = data_schema._Schema( | 969 schema = data_schema._Schema( |
| 908 None, True, {"$type": None, | 970 None, True, {"$type": None, |
| 909 "cond": [ | 971 "cond": [ |
| 910 {"when-ref-exists": '#foo-not-existing', | 972 {"when-ref-exists": '#foo-not-existing', |
| 956 ]}) | 1018 ]}) |
| 957 r = data_schema.process_schema_conditionals(schema, self._ctx) | 1019 r = data_schema.process_schema_conditionals(schema, self._ctx) |
| 958 self.assertIsNot(r, schema) | 1020 self.assertIsNot(r, schema) |
| 959 self.assertEqual("string", r["$type"]) | 1021 self.assertEqual("string", r["$type"]) |
| 960 | 1022 |
| 1023 def test_allOf_true_2(self): | |
| 1024 schema = data_schema._Schema( | |
| 1025 None, True, {"cond": [ | |
| 1026 {"when": {"all-of": [ | |
| 1027 True, | |
| 1028 {"ref-not-exists": '#foo3-not-existing'}, | |
| 1029 {"ref-true": '#foo'}]}, | |
| 1030 "then": {"$type": "string"}}, | |
| 1031 {"when": True, | |
| 1032 "then": {"$type": None}} | |
| 1033 ]}) | |
| 1034 r = data_schema.process_schema_conditionals(schema, self._ctx) | |
| 1035 self.assertIsNot(r, schema) | |
| 1036 self.assertEqual("string", r["$type"]) | |
| 1037 | |
| 961 def test_allOf_false(self): | 1038 def test_allOf_false(self): |
| 962 schema = data_schema._Schema( | 1039 schema = data_schema._Schema( |
| 963 None, True, {"cond": [ | 1040 None, True, {"cond": [ |
| 964 {"when": {"all-of": [ | 1041 {"when": {"all-of": [ |
| 965 True, | 1042 True, |
| 971 ]}) | 1048 ]}) |
| 972 r = data_schema.process_schema_conditionals(schema, self._ctx) | 1049 r = data_schema.process_schema_conditionals(schema, self._ctx) |
| 973 self.assertIsNot(r, schema) | 1050 self.assertIsNot(r, schema) |
| 974 self.assertIsNone(r["$type"]) | 1051 self.assertIsNone(r["$type"]) |
| 975 | 1052 |
| 1053 def test_allOf_false_2(self): | |
| 1054 schema = data_schema._Schema( | |
| 1055 None, True, {"cond": [ | |
| 1056 {"when": {"all-of": [ | |
| 1057 True, | |
| 1058 {"ref-not-exists": '#foo2'}, | |
| 1059 {"ref-true": '#foo'}]}, | |
| 1060 "then": {"$type": "string"}}, | |
| 1061 {"when": True, | |
| 1062 "then": {"$type": None}} | |
| 1063 ]}) | |
| 1064 r = data_schema.process_schema_conditionals(schema, self._ctx) | |
| 1065 self.assertIsNot(r, schema) | |
| 1066 self.assertIsNone(r["$type"]) | |
| 1067 | |
| 976 def test_short_allOf_true(self): | 1068 def test_short_allOf_true(self): |
| 977 schema = data_schema._Schema( | 1069 schema = data_schema._Schema( |
| 978 None, True, {"cond": [ | 1070 None, True, {"cond": [ |
| 979 {"when": [ | 1071 {"when": [ |
| 980 True, | 1072 True, |
| 1016 ]}) | 1108 ]}) |
| 1017 r = data_schema.process_schema_conditionals(schema, self._ctx) | 1109 r = data_schema.process_schema_conditionals(schema, self._ctx) |
| 1018 self.assertIsNot(r, schema) | 1110 self.assertIsNot(r, schema) |
| 1019 self.assertEqual("string", r["$type"]) | 1111 self.assertEqual("string", r["$type"]) |
| 1020 | 1112 |
| 1113 def test_anyOf_true_2(self): | |
| 1114 schema = data_schema._Schema( | |
| 1115 None, True, {"cond": [ | |
| 1116 {"when": {"any-of": [ | |
| 1117 False, | |
| 1118 {"ref-not-exists": '#foo3-non'}, | |
| 1119 {"ref-false": '#foo2'}]}, | |
| 1120 "then": {"$type": "string"}}, | |
| 1121 {"when": True, | |
| 1122 "then": {"$type": None}} | |
| 1123 ]}) | |
| 1124 r = data_schema.process_schema_conditionals(schema, self._ctx) | |
| 1125 self.assertIsNot(r, schema) | |
| 1126 self.assertEqual("string", r["$type"]) | |
| 1127 | |
| 1021 def test_anyOf_false(self): | 1128 def test_anyOf_false(self): |
| 1022 schema = data_schema._Schema( | 1129 schema = data_schema._Schema( |
| 1023 None, True, {"cond": [ | 1130 None, True, {"cond": [ |
| 1024 {"when": {"any-of": [ | 1131 {"when": {"any-of": [ |
| 1025 False, | 1132 False, |
| 1038 None, True, {"cond": [ | 1145 None, True, {"cond": [ |
| 1039 {"when": {"one-of": [ | 1146 {"when": {"one-of": [ |
| 1040 False, | 1147 False, |
| 1041 {"ref-exists": '#foo2'}, | 1148 {"ref-exists": '#foo2'}, |
| 1042 {"not": {"ref-true": '#foo'}}]}, | 1149 {"not": {"ref-true": '#foo'}}]}, |
| 1150 "then": {"$type": "string"}}, | |
| 1151 {"when": True, | |
| 1152 "then": {"$type": None}} | |
| 1153 ]}) | |
| 1154 r = data_schema.process_schema_conditionals(schema, self._ctx) | |
| 1155 self.assertIsNot(r, schema) | |
| 1156 self.assertEqual("string", r["$type"]) | |
| 1157 | |
| 1158 def test_oneOf_true_2(self): | |
| 1159 schema = data_schema._Schema( | |
| 1160 None, True, {"cond": [ | |
| 1161 {"when": {"one-of": [ | |
| 1162 False, | |
| 1163 {"not": {"ref-false": '#foo'}}]}, | |
| 1043 "then": {"$type": "string"}}, | 1164 "then": {"$type": "string"}}, |
| 1044 {"when": True, | 1165 {"when": True, |
| 1045 "then": {"$type": None}} | 1166 "then": {"$type": None}} |
| 1046 ]}) | 1167 ]}) |
| 1047 r = data_schema.process_schema_conditionals(schema, self._ctx) | 1168 r = data_schema.process_schema_conditionals(schema, self._ctx) |
