示例#1
0
    def on_incoming_records(self, connection: ConnectionInterface) -> None:
        """Process records in batches."""
        input_df = connection.record_containers[0].build_dataframe()
        self.output_anchor.push_records(
            generate_records_from_df(input_df, self.output_anchor.record_info))

        connection.clear_records()
示例#2
0
def test_connection_interface_ii_close(
        connection_interface: ConnectionInterface):
    events = []
    connection_interface.subscribe(ConnectionEvents.CONNECTION_CLOSED,
                                   lambda **kwargs: events.append(kwargs))

    assert connection_interface.status == ConnectionStatus.CREATED
    connection_interface.ii_close()
    assert connection_interface.status == ConnectionStatus.CLOSED
    assert len(events) == 1
示例#3
0
    def on_incoming_records(self, connection: ConnectionInterface) -> None:
        """Process records in batches."""
        self.generate_metadata()

        df = connection.record_containers[0].build_dataframe()
        df["optional_value"] = self.workflow_config["Value"]

        self.output_anchor.push_records(
            generate_records_from_df(df, self.output_anchor.record_info))

        connection.clear_records()
示例#4
0
def test_connection_interface_ii_init(
        connection_interface: ConnectionInterface, record_collection):
    record_info = record_collection[0]

    assert connection_interface.record_info is None

    events = []
    connection_interface.subscribe(ConnectionEvents.CONNECTION_INITIALIZED,
                                   lambda **kwargs: events.append(kwargs))

    connection_interface.ii_init(record_info=record_info)
    assert connection_interface.record_info is record_info
    assert len(events) == 1
示例#5
0
def connection_interface() -> ConnectionInterface:
    connection_name = "#1"
    anchor = InputAnchor("Input", False)

    return ConnectionInterface(plugin=MockPlugin(),
                               connection_name=connection_name,
                               anchor=anchor)
示例#6
0
def test_plugin_initialization_callback():
    plugin = MockPlugin()
    connection_interface = ConnectionInterface(
        plugin=plugin,
        connection_name="Connection",
        anchor=InputAnchor(name="Input", optional=False),
    )

    assert not connection_interface.plugin_failed

    plugin.notify_topic(PluginEvents.PLUGIN_FAILURE)
    assert connection_interface.plugin_failed
示例#7
0
def test_connection_interface_record_handling(
        connection_interface: ConnectionInterface, record_collection):
    record_info, records = record_collection

    container = MockRecordContainer()
    connection_interface.add_record_container(container)

    events = []
    connection_interface.subscribe(ConnectionEvents.RECORD_RECEIVED,
                                   lambda **kwargs: events.append(kwargs))

    for record in records:
        connection_interface.ii_push_record(record)

    assert len(events) == len(records)
    assert len(container.records) == len(records)

    connection_interface.clear_records()
    assert len(container.records) == 0
示例#8
0
def test_connection_interface_ii_update_progress(
        connection_interface: ConnectionInterface):
    events = []
    connection_interface.subscribe(ConnectionEvents.PROGRESS_UPDATE,
                                   lambda **kwargs: events.append(kwargs))

    assert connection_interface.progress_percentage == 0

    connection_interface.ii_update_progress(60)
    assert len(events) == 1
    assert connection_interface.progress_percentage == 60

    connection_interface.ii_update_progress(70)
    assert len(events) == 2
    assert connection_interface.progress_percentage == 70

    connection_interface.ii_update_progress(-20)
    assert len(events) == 3
    assert connection_interface.progress_percentage == 0
示例#9
0
 def on_incoming_records(self, connection: ConnectionInterface) -> None:
     """Process records in batches."""
     # Do nothing with records for now, this is an output tool
     connection.clear_records()