Esempio n. 1
0
    def setUp(self):
        # Add a dummy extensions that modifies the marks
        server_extension_registry['dummy'] = DummyExtension()

        # Some mock objects to use
        self.dummy_handler = DeepCopyMagicMock(spec=Handler)
        unicast_me_filter = MarkedWithFilter(
            filter_condition='unicast-me',
            sub_handlers=[
                ServerUnicastOptionHandler(address=IPv6Address('2001:db8::1'))
            ])
        ignore_me_filter = MarkedWithFilter(
            filter_condition='ignore-me',
            sub_handlers=[IgnoreRequestHandler()])
        reject_me_filter = MarkedWithFilter(
            filter_condition='reject-me', sub_handlers=[BadExceptionHandler()])

        # Prove to PyCharm that this is really a handler
        self.assertIsInstance(self.dummy_handler, Handler)

        # This is the DUID that is used in the message fixtures
        self.duid = LinkLayerTimeDUID(
            hardware_type=1,
            time=488458703,
            link_layer_address=bytes.fromhex('00137265ca42'))

        # Create some message handlers
        self.message_handler = MessageHandler(
            server_id=self.duid,
            sub_filters=[
                unicast_me_filter, ignore_me_filter, reject_me_filter
            ],
            sub_handlers=[self.dummy_handler],
            allow_rapid_commit=False,
            rapid_commit_rejections=False)
        self.rapid_message_handler = MessageHandler(
            server_id=self.duid,
            sub_handlers=[self.dummy_handler],
            allow_rapid_commit=True,
            rapid_commit_rejections=False)
        self.very_rapid_message_handler = MessageHandler(
            server_id=self.duid,
            sub_handlers=[self.dummy_handler],
            allow_rapid_commit=True,
            rapid_commit_rejections=True)
Esempio n. 2
0
    def create_message_handler(self) -> MessageHandler:
        """
        Create a message handler based on this configuration.

        :return: The message handler
        """
        sub_filters = []
        for filter_factory in self.section.filter_factories:
            sub_filters.append(filter_factory())

        sub_handlers = []
        for handler_factory in self.section.handler_factories:
            sub_handlers.append(handler_factory())

        return MessageHandler(self.section.server_id, sub_filters,
                              sub_handlers, self.section.allow_rapid_commit)
    def setUp(self):
        # This is the DUID that is used in the message fixtures
        self.duid = LinkLayerTimeDUID(hardware_type=1, time=488458703, link_layer_address=bytes.fromhex('00137265ca42'))

        # Create a message handler
        self.message_handler = MessageHandler(server_id=self.duid)