コード例 #1
0
    def _VerifyTestDerived(
        self,
        type_info,
        verify_derived_refs=True,
    ):
        self.assertTrue(isinstance(type_info, ClassTypeInfo))
        self.assertEqual(
            list(six.iterkeys(type_info.Items)),
            [
                "b",
                "c",
                "v1",
                "v2",
                "v3",
                "c_ref0",
                "c_ref1",
                "c_ref2",
                "c_ref25",
                "c_ref3",
                "c_ref4",
                "test_derived_ref1",
                "test_derived_ref2",
                "test_derived_ref3",
                "test_derived_ref4",
                "test_derived_ref5",
            ],
        )
        self.assertEqual(type_info.Items["b"], BoolTypeInfo())
        self.assertEqual(
            type_info.Items["c"],
            StringTypeInfo(
                min_length=12,
                arity="*",
            ),
        )
        self.assertEqual(
            type_info.Items["v1"],
            AnyOfTypeInfo([
                BoolTypeInfo(),
                StringTypeInfo(),
                IntTypeInfo(min=20, ),
            ], ),
        )
        self.assertEqual(
            type_info.Items["v2"],
            AnyOfTypeInfo([
                BoolTypeInfo(),
                BoolTypeInfo(),
                StringTypeInfo(),
                IntTypeInfo(min=20, ),
            ], ),
        )
        self.assertEqual(
            type_info.Items["v3"],
            AnyOfTypeInfo([
                UriTypeInfo(),
                BoolTypeInfo(),
                BoolTypeInfo(),
                StringTypeInfo(),
                IntTypeInfo(min=20, ),
                FilenameTypeInfo(ensure_exists=True, ),
            ], ),
        )
        self.assertEqual(
            type_info.Items["c_ref0"],
            StringTypeInfo(
                min_length=12,
                arity="*",
            ),
        )
        self.assertEqual(
            type_info.Items["c_ref1"],
            StringTypeInfo(
                min_length=12,
                max_length=20,
                arity="*",
            ),
        )
        self.assertEqual(
            type_info.Items["c_ref2"],
            StringTypeInfo(
                min_length=12,
                arity=Arity(20, 20),
            ),
        )
        self.assertEqual(
            type_info.Items["c_ref25"],
            StringTypeInfo(
                min_length=12,
                max_length=20,
                arity=Arity(20, 20),
            ),
        )
        self.assertEqual(
            type_info.Items["c_ref3"],
            ListTypeInfo(
                StringTypeInfo(
                    min_length=12,
                    arity="*",
                ),
                arity=Arity(5, 5),
            ),
        )
        self.assertEqual(
            type_info.Items["c_ref4"],
            ListTypeInfo(
                ListTypeInfo(
                    StringTypeInfo(
                        min_length=12,
                        arity="*",
                    ),
                    arity=Arity(5, 5),
                ),
                arity=Arity(10, 10),
            ),
        )

        self.assertTrue(
            isinstance(type_info.Items["test_derived_ref1"], ClassTypeInfo))
        self.assertTrue(
            isinstance(type_info.Items["test_derived_ref2"], ClassTypeInfo))
        self.assertTrue(
            isinstance(type_info.Items["test_derived_ref3"], ClassTypeInfo))
        self.assertTrue(
            isinstance(type_info.Items["test_derived_ref4"], ClassTypeInfo))
        self.assertTrue(
            isinstance(type_info.Items["test_derived_ref5"], ListTypeInfo))
        self.assertTrue(
            isinstance(type_info.Items["test_derived_ref5"].ElementTypeInfo,
                       ClassTypeInfo))

        if verify_derived_refs:
            self._VerifyTestDerived(
                type_info.Items["test_derived_ref1"],
                verify_derived_refs=False,
            )
            self._VerifyTestDerived(
                type_info.Items["test_derived_ref2"],
                verify_derived_refs=False,
            )
            self._VerifyTestDerived(
                type_info.Items["test_derived_ref3"],
                verify_derived_refs=False,
            )
            self._VerifyTestDerived(
                type_info.Items["test_derived_ref4"],
                verify_derived_refs=False,
            )
            self._VerifyTestDerived(
                type_info.Items["test_derived_ref5"].ElementTypeInfo,
                verify_derived_refs=False,
            )
コード例 #2
0
 def test_TypeInfo(self):
     self._VerifyTestDerived(self._element.TypeInfo)
     self.assertEqual(self._element.TypeInfo.Arity, Arity(1, 1))
コード例 #3
0
 def test_DerivedRef4(self):
     element = self._element.Children[14]
     self.assertEqual(element.Name, "test_derived_ref4")
     self._VerifyTestDerived(element.TypeInfo)
     self.assertEqual(element.TypeInfo.Arity, Arity(30, 30))
コード例 #4
0
 def test_DerivedRef3(self):
     element = self._element.Children[13]
     self.assertEqual(element.Name, "test_derived_ref3")
     self._VerifyTestDerived(element.TypeInfo)
     self.assertEqual(element.TypeInfo.Arity, Arity(10, 10))
            _DecorateActiveException("named_filters")
    except SerializationException:
        raise
    except Exception as ex:
        raise DeserializeException(ex)

    return items


# ----------------------------------------------------------------------
# |
# |  Type Infos
# |
# ----------------------------------------------------------------------
filter_TypeInfo = ClassTypeInfo(OrderedDict([
    ("includes", StringTypeInfo(min_length=1, arity=Arity.FromString('*'))),
    ("excludes", StringTypeInfo(min_length=1, arity=Arity.FromString('*'))),
    ("continue_processing", BoolTypeInfo(arity=Arity.FromString('?')))
]),
                                require_exact_match=True,
                                arity=Arity.FromString('?'))
named_filters_TypeInfo = ClassTypeInfo(OrderedDict([
    ("glob", StringTypeInfo(min_length=1))
]),
                                       require_exact_match=True,
                                       arity=Arity.FromString('*'))

_filter_TypeInfo_Contents = OrderedDict([
    ("includes", GenericTypeInfo(arity=Arity.FromString('*'))),
    ("excludes", GenericTypeInfo(arity=Arity.FromString('*'))),
    ("continue_processing", GenericTypeInfo(arity=Arity.FromString('?')))
コード例 #6
0
    parser = _FromParser()

    result = parser.Pushed_ItemFromJson(item, always_include_optional,
                                        process_additional_data)

    return result


# ----------------------------------------------------------------------
# |
# |  TypeInfo
# |
# ----------------------------------------------------------------------
ChangeInfo_TypeInfo = AnyOfTypeInfo(
    arity=Arity(min=1, max_or_none=1),
    type_info_list=[
        DictTypeInfo(arity=Arity(min=1, max_or_none=1),
                     items={
                         "id":
                         StringTypeInfo(arity=Arity(min=1, max_or_none=1),
                                        min_length=1),
                         "author":
                         StringTypeInfo(arity=Arity(min=1, max_or_none=1),
                                        min_length=1),
                         "date":
                         DateTimeTypeInfo(arity=Arity(min=1, max_or_none=1)),
                         "description":
                         StringTypeInfo(arity=Arity(min=1, max_or_none=1),
                                        min_length=0),
                         "branch":
コード例 #7
0
 def test_Standard(self):
     self.assertEqual(_Invoke("<foo ?>").items[0].arity, Arity.FromString("?"))
     self.assertEqual(_Invoke("<foo *>").items[0].arity, Arity.FromString("*"))
     self.assertEqual(_Invoke("<foo +>").items[0].arity, Arity.FromString("+"))
     self.assertEqual(_Invoke("<foo {10}>").items[0].arity, Arity(10, 10))
     self.assertEqual(_Invoke("<foo {5, 20}>").items[0].arity, Arity(5, 20))