diff --git a/.github/workflows/check-blocking-labels.yml b/.github/workflows/check-blocking-labels.yml new file mode 100644 index 000000000..09f5c65b2 --- /dev/null +++ b/.github/workflows/check-blocking-labels.yml @@ -0,0 +1,46 @@ +# SPDX-FileCopyrightText: Contributors to the Power Grid Model project +# +# SPDX-License-Identifier: MPL-2.0 + + +name: Check Blocking Labels + +on: + # run pipeline on pull request + pull_request: + types: + - opened + - synchronize + - labeled + - unlabeled + # run pipeline on merge queue + merge_group: + # run this workflow manually from the Actions tab + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }}-blocking-labels + cancel-in-progress: true + +jobs: + check-blocking-labels: + runs-on: ubuntu-latest + steps: + + - name: do-not-merge + if: contains(github.event.pull_request.labels.*.name, 'do-not-merge') + run: | + echo "This pull request should not be merged (do-not-merge)" + exit 1 + + - name: merge-target-first + if: contains(github.event.pull_request.labels.*.name, 'merge-target-first') + run: | + echo "The target branch of this PR should be merged first (merge-target-first)" + exit 2 + + - name: needs-unit-tests + if: contains(github.event.pull_request.labels.*.name, 'needs-unit-tests') + run: | + echo "This pull request needs (more) unit tests before it may be merged (needs-unit-tests)" + exit 3 diff --git a/src/power_grid_model/validation/validation.py b/src/power_grid_model/validation/validation.py index 10dba4a2e..6013294fd 100644 --- a/src/power_grid_model/validation/validation.py +++ b/src/power_grid_model/validation/validation.py @@ -978,6 +978,7 @@ def validate_regulator(data: SingleDataset, component: ComponentType) -> list[Va def validate_transformer_tap_regulator(data: SingleDataset) -> list[ValidationError]: errors = validate_regulator(data, ComponentType.transformer_tap_regulator) errors += _all_boolean(data, ComponentType.transformer_tap_regulator, "status") + errors += _all_unique(data, ComponentType.transformer_tap_regulator, "regulated_object") errors += _all_valid_enum_values( data, ComponentType.transformer_tap_regulator, "control_side", [BranchSide, Branch3Side] ) diff --git a/tests/unit/validation/test_input_validation.py b/tests/unit/validation/test_input_validation.py index eab6d2ceb..8091a90ca 100644 --- a/tests/unit/validation/test_input_validation.py +++ b/tests/unit/validation/test_input_validation.py @@ -643,6 +643,7 @@ def test_validate_input_data_transformer_tap_regulator(input_data): UnsupportedTransformerRegulationError("transformer_tap_regulator", ["control_side", "regulated_object"], [54]) in validation_errors ) + assert NotUniqueError("transformer_tap_regulator", "regulated_object", [51, 54]) in validation_errors def test_fault(input_data):