import sys sys.path.append('src/') from nameHandling.base import ComponentName from protocol_components.protocolFactory import FactoryProtocolDefition from protocol_components.enumeration import FactoryEnumeration, Enumeration from protocol_components.bitfields import FactoryBitfield, Bitfield from protocol_components.dtypes import BprotoFieldBaseType from protocol_components.field import FactoryField from protocol_components.message import FactoryMessage, Message from nameHandling.style.pythonNameStyle import NameStylePython def test_style_python_fromStr(): try: NameStylePython.fromStr("") assert False except Exception as e: assert isinstance(e, NotImplementedError) def test_style_python_toStr_enum(): assert NameStylePython.toStr(ComponentName(["my", "custom", "enum"]), "enum_name") == "MyCustomEnum" assert NameStylePython.toStr(ComponentName(["my", "custom", "enum", "value"]), "enum_item") == "MY_CUSTOM_ENUM_VALUE" assert NameStylePython.toStr(ComponentName(["my", "custom", "class"]), "class_name") == "MyCustomClass" assert NameStylePython.toStr(ComponentName(["my", "custom", "class", "member"]), "class_member") == "my_custom_class_member" def test_style_python_preprocessor(): protocol_factory = FactoryProtocolDefition() enum_factory = FactoryEnumeration() enum_factory.add_value("first-Value", 1) enum_factory.add_value("second-Important-Value", 2) protocol_factory.add_enum(enum_factory.assemble("mode")) bitfield_factory = FactoryBitfield() bitfield_factory.add_bit("FirstBit", 0) bitfield_factory.add_bit("SecondBit", 1) protocol_factory.add_bitfield(bitfield_factory.assemble("bitfield1")) message_factory = FactoryMessage() message_factory.add_field(FactoryField().assemble("x", 1, BprotoFieldBaseType.FLOAT32, 2, None)) message_factory.add_field(FactoryField().assemble("y", 2, BprotoFieldBaseType.FLOAT32, 2, None)) protocol_factory.add_message(message_factory.assemble("cordUpdate", 1)) protocol = protocol_factory.assemble("HCPT", 5) protocol = NameStylePython.preprocess(protocol) enum: Enumeration = list(protocol.enums.values())[0] bitfield: Bitfield = list(protocol.bitfields.values())[0] message: Message = list(protocol.messages.values())[0] assert isinstance(enum, Enumeration) assert isinstance(bitfield, Bitfield) assert NameStylePython.toStr(enum.name, "enum_name") == "HcptEnumMode" assert NameStylePython.toStr(bitfield.name, "class_name") == "HcptBitfieldBitfield1" assert NameStylePython.toStr(message.name, "class_name") == "HcptMessageCordUpdate"