Skip to content

MINIFICPP-2756 Rename minifi_test_framework to minifi_behave#2146

Open
martinzink wants to merge 2 commits intoapache:MINIFICPP-2718from
martinzink:rename_behave
Open

MINIFICPP-2756 Rename minifi_test_framework to minifi_behave#2146
martinzink wants to merge 2 commits intoapache:MINIFICPP-2718from
martinzink:rename_behave

Conversation

@martinzink
Copy link
Member

Imho this is a more appropriate name(i named it originally so I'll take the blame), and if we were to release this with the C API we might as well keep it nice and tidy.

Depends on

Thank you for submitting a contribution to Apache NiFi - MiNiFi C++.

In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:

For all changes:

  • Is there a JIRA ticket associated with this PR? Is it referenced
    in the commit message?

  • Does your PR title start with MINIFICPP-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

  • Has your PR been rebased against the latest commit within the target branch (typically main)?

  • Is your initial contribution a single, squashed commit?

For code changes:

  • If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
  • If applicable, have you updated the LICENSE file?
  • If applicable, have you updated the NOTICE file?

For documentation related changes:

  • Have you ensured that format looks appropriate for the output in which it is rendered?

Note:

Please ensure that once the PR is submitted, you check GitHub Actions CI results for build issues and submit an update to your PR as soon as possible.

@martinzink martinzink added depends-on-another-PR low-impact Test only or trivial change that's most likely not gonna introduce any new bugs minifi-behave labels Mar 25, 2026
@martinzink martinzink requested a review from Copilot March 25, 2026 17:44
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR renames the Behave-based MiNiFi testing framework package from minifi_test_framework to minifi_behave across the repository, updating extension test suites accordingly and introducing the renamed framework’s Python modules/resources under the new package namespace.

Changes:

  • Updated Behave step/environment/container imports in extension test suites to use minifi_behave instead of minifi_test_framework.
  • Renamed the Python package metadata (pyproject.toml, egg-info ignore) to publish/install as minifi-behave.
  • Added/ported core framework modules under behave_framework/src/minifi_behave (flow definition model + container/core utilities + resources).

Reviewed changes

Copilot reviewed 76 out of 100 changed files in this pull request and generated no comments.

Show a summary per file
File Description
extensions/standard-processors/tests/features/steps/steps.py Switch test-step imports to minifi_behave.
extensions/standard-processors/tests/features/steps/minifi_controller_steps.py Switch helper/context imports to minifi_behave.
extensions/standard-processors/tests/features/steps/minifi_c2_server_container.py Switch container/core/ssl_utils imports to minifi_behave.
extensions/standard-processors/tests/features/environment.py Switch common hooks imports to minifi_behave.
extensions/standard-processors/tests/features/containers/tcp_client_container.py Switch container/context imports to minifi_behave.
extensions/standard-processors/tests/features/containers/syslog_container.py Switch base container import to minifi_behave.
extensions/standard-processors/tests/features/containers/diag_slave_container.py Switch container/builder/context imports to minifi_behave.
extensions/sql/tests/features/steps/steps.py Switch step imports to minifi_behave.
extensions/sql/tests/features/environment.py Switch hooks/builder imports to minifi_behave.
extensions/sql/tests/features/containers/postgress_server_container.py Switch container/builder/context imports to minifi_behave.
extensions/splunk/tests/features/steps/steps.py Switch step/context imports to minifi_behave.
extensions/splunk/tests/features/environment.py Switch hooks imports to minifi_behave.
extensions/splunk/tests/features/containers/splunk_container.py Switch container/context/ssl_utils imports to minifi_behave.
extensions/python/tests/features/steps/steps.py Switch step/builder/context imports to minifi_behave.
extensions/python/tests/features/environment.py Switch hooks/builder imports to minifi_behave.
extensions/prometheus/tests/features/steps/steps.py Switch step/context imports to minifi_behave.
extensions/prometheus/tests/features/environment.py Switch hooks/builder imports to minifi_behave.
extensions/prometheus/tests/features/containers/prometheus_container.py Switch container/context/ssl_utils imports to minifi_behave.
extensions/opc/tests/features/steps/steps.py Switch step/context imports to minifi_behave.
extensions/opc/tests/features/environment.py Switch hooks imports to minifi_behave.
extensions/opc/tests/features/containers/opc_ua_server_container.py Switch container/context imports to minifi_behave.
extensions/mqtt/tests/features/steps/steps.py Switch step/context/processor imports to minifi_behave.
extensions/mqtt/tests/features/environment.py Switch hooks/builder imports to minifi_behave.
extensions/mqtt/tests/features/containers/mqtt_broker_container.py Switch container/builder/context imports to minifi_behave.
extensions/lua/tests/features/steps/steps.py Switch step imports to minifi_behave.
extensions/lua/tests/features/environment.py Switch hooks imports to minifi_behave.
extensions/llamacpp/tests/features/steps/steps.py Switch step imports to minifi_behave.
extensions/llamacpp/tests/features/environment.py Switch hooks/builder/context imports to minifi_behave.
extensions/kubernetes/tests/features/steps/steps.py Switch step/context/processor/controller_service imports to minifi_behave.
extensions/kubernetes/tests/features/steps/minifi_as_pod_in_kubernetes_cluster.py Switch container/context imports to minifi_behave.
extensions/kubernetes/tests/features/environment.py Switch hooks imports to minifi_behave.
extensions/kafka/tests/features/steps/steps.py Switch step/context/processor imports to minifi_behave.
extensions/kafka/tests/features/environment.py Switch hooks/builder imports to minifi_behave.
extensions/kafka/tests/features/containers/kafka_server_container.py Switch container/context/ssl_utils imports to minifi_behave.
extensions/grafana-loki/tests/features/steps/steps.py Switch step/context imports to minifi_behave.
extensions/grafana-loki/tests/features/environment.py Switch hooks/builder imports to minifi_behave.
extensions/grafana-loki/tests/features/containers/reverse_proxy_container.py Switch container/context imports to minifi_behave.
extensions/grafana-loki/tests/features/containers/grafana_loki_container.py Switch container/context/ssl_utils imports to minifi_behave.
extensions/gcp/tests/features/steps/steps.py Switch step/context imports to minifi_behave.
extensions/gcp/tests/features/environment.py Switch hooks imports to minifi_behave.
extensions/gcp/tests/features/containers/fake_gcs_server_container.py Switch container/context imports to minifi_behave.
extensions/elasticsearch/tests/features/steps/steps.py Switch step/context/controller_service imports to minifi_behave.
extensions/elasticsearch/tests/features/environment.py Switch hooks imports to minifi_behave.
extensions/elasticsearch/tests/features/containers/opensearch_container.py Switch container/context/ssl_utils imports to minifi_behave.
extensions/elasticsearch/tests/features/containers/elasticsearch_container.py Switch container/context/ssl_utils imports to minifi_behave.
extensions/elasticsearch/tests/features/containers/elastic_base_container.py Switch container/context/helper imports to minifi_behave.
extensions/couchbase/tests/features/steps/steps.py Switch step/context/controller_service imports to minifi_behave.
extensions/couchbase/tests/features/environment.py Switch hooks/builder imports to minifi_behave.
extensions/couchbase/tests/features/containers/couchbase_server_container.py Switch container/context/ssl_utils imports to minifi_behave.
extensions/civetweb/tests/features/steps/steps.py Switch step imports to minifi_behave.
extensions/civetweb/tests/features/environment.py Switch hooks imports to minifi_behave.
extensions/azure/tests/features/steps/steps.py Switch step/context/processor imports to minifi_behave.
extensions/azure/tests/features/environment.py Switch hooks imports to minifi_behave.
extensions/azure/tests/features/containers/azure_server_container.py Switch container/context/helper imports to minifi_behave.
extensions/aws/tests/features/steps/steps.py Switch step/context/processor imports to minifi_behave.
extensions/aws/tests/features/environment.py Switch hooks imports to minifi_behave.
extensions/aws/tests/features/containers/s3_server_container.py Switch container/context imports to minifi_behave.
extensions/aws/tests/features/containers/kinesis_server_container.py Switch container/builder/context imports to minifi_behave.
behave_framework/src/minifi_behave/steps/flow_building_steps.py Switch internal framework imports to minifi_behave.
behave_framework/src/minifi_behave/steps/core_steps.py Switch internal framework imports to minifi_behave.
behave_framework/src/minifi_behave/steps/configuration_steps.py Switch internal framework imports to minifi_behave.
behave_framework/src/minifi_behave/steps/checking_steps.py Switch internal framework imports to minifi_behave.
behave_framework/src/minifi_behave/minifi/remote_process_group.py Add RPG model under minifi_behave.
behave_framework/src/minifi_behave/minifi/remote_port.py Add remote port model under minifi_behave.
behave_framework/src/minifi_behave/minifi/processor.py Add processor model under minifi_behave.
behave_framework/src/minifi_behave/minifi/parameter_context.py Update import path to minifi_behave.
behave_framework/src/minifi_behave/minifi/parameter.py Add parameter model under minifi_behave.
behave_framework/src/minifi_behave/minifi/output_port.py Add output-port model under minifi_behave.
behave_framework/src/minifi_behave/minifi/nifi_flow_definition.py Add NiFi flow JSON serializer under minifi_behave.
behave_framework/src/minifi_behave/minifi/minifi_flow_definition.py Add MiNiFi YAML serializer under minifi_behave.
behave_framework/src/minifi_behave/minifi/input_port.py Add input-port model under minifi_behave.
behave_framework/src/minifi_behave/minifi/funnel.py Add funnel model under minifi_behave.
behave_framework/src/minifi_behave/minifi/flow_definition.py Add shared flow model base under minifi_behave.
behave_framework/src/minifi_behave/minifi/controller_service.py Add controller-service model under minifi_behave.
behave_framework/src/minifi_behave/minifi/connection.py Add connection model under minifi_behave.
behave_framework/src/minifi_behave/core/ssl_utils.py Add SSL/cert helper utilities under minifi_behave.
behave_framework/src/minifi_behave/core/minifi_test_context.py Switch container protocol imports to minifi_behave.
behave_framework/src/minifi_behave/core/hooks.py Switch cert/context imports to minifi_behave.
behave_framework/src/minifi_behave/core/helpers.py Switch context import to minifi_behave.
behave_framework/src/minifi_behave/containers/resources/nifi/convert_cert_to_jks.sh Add NiFi cert conversion helper script under minifi_behave.
behave_framework/src/minifi_behave/containers/resources/minifi-controller/config.yml Add MiNiFi controller config resource under minifi_behave.
behave_framework/src/minifi_behave/containers/nifi_container.py Switch framework imports to minifi_behave.
behave_framework/src/minifi_behave/containers/minifi_win_container.py Switch framework imports to minifi_behave.
behave_framework/src/minifi_behave/containers/minifi_protocol.py Add protocol helper interface under minifi_behave.
behave_framework/src/minifi_behave/containers/minifi_linux_container.py Switch framework imports to minifi_behave.
behave_framework/src/minifi_behave/containers/minifi_controller.py Switch helper import to minifi_behave.
behave_framework/src/minifi_behave/containers/http_proxy_container.py Switch framework imports to minifi_behave.
behave_framework/src/minifi_behave/containers/host_file.py Add host-file mapping helper under minifi_behave.
behave_framework/src/minifi_behave/containers/file.py Add file helper under minifi_behave.
behave_framework/src/minifi_behave/containers/docker_image_builder.py Add docker image build helper under minifi_behave.
behave_framework/src/minifi_behave/containers/directory.py Add directory helper under minifi_behave.
behave_framework/src/minifi_behave/containers/container_windows.py Switch framework imports to minifi_behave.
behave_framework/src/minifi_behave/containers/container_protocol.py Switch framework imports to minifi_behave.
behave_framework/src/minifi_behave/containers/container_linux.py Switch framework imports to minifi_behave.
behave_framework/pyproject.toml Rename published package and included module prefix to minifi_behave.
behave_framework/.gitignore Update ignored egg-info directory name for the renamed package.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@szaszm
Copy link
Member

szaszm commented Mar 25, 2026

I think adding a readme for the package would help more, but the new name is better.

@martinzink
Copy link
Member Author

I think adding a readme for the package would help more, but the new name is better.
added README.md

Comment on lines +42 to +55
Feature: File system operations are handled by the GetFile, PutFile, ListFile, and FetchFile processors
In order to store and access data on the local file system
As a user of MiNiFi
I need to have GetFile, PutFile, ListFile, and FetchFile processors

Scenario: Get and put operations run in a simple flow
Given a GetFile processor with the "Input Directory" property set to "/tmp/input"
And a directory at "/tmp/input" has a file with the content "test"
And a PutFile processor with the "Directory" property set to "/tmp/output"
And PutFile is EVENT_DRIVEN
And the "success" relationship of the GetFile processor is connected to the PutFile
And PutFile's success relationship is auto-terminated
When the MiNiFi instance starts up
Then a single file with the content "test" is placed in the "/tmp/output" directory in less than 10 seconds
Copy link
Contributor

@fgerlits fgerlits Mar 26, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the title of this sample feature says it tests ListFile and FetchFile, but it doesn't

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

depends-on-another-PR low-impact Test only or trivial change that's most likely not gonna introduce any new bugs minifi-behave

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants