jenkins-bot has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/377283 )
Change subject: Limit constraint checks on most types to statements ...................................................................... Limit constraint checks on most types to statements Some constraint types should never be checked on non-statement contexts; others (those with a TODO comment) require some more work, which will be done separately. Some of those constraint types were already ignored on non-statement contexts, so for those types the change just adjusts the check result status and, where appropriate, adds a TODO comment. This also changes the reported type of FakeSnakContext so that constraints are still checked on those contexts. Bug: T175570 Change-Id: Ia82a80aeb3118075ba4fa7e1b8a127cc103446df --- M includes/ConstraintCheck/Checker/ConflictsWithChecker.php M includes/ConstraintCheck/Checker/DiffWithinRangeChecker.php M includes/ConstraintCheck/Checker/InverseChecker.php M includes/ConstraintCheck/Checker/ItemChecker.php M includes/ConstraintCheck/Checker/MandatoryQualifiersChecker.php M includes/ConstraintCheck/Checker/MultiValueChecker.php M includes/ConstraintCheck/Checker/QualifiersChecker.php M includes/ConstraintCheck/Checker/SingleValueChecker.php M includes/ConstraintCheck/Checker/SymmetricChecker.php M includes/ConstraintCheck/Checker/TypeChecker.php M includes/ConstraintCheck/Checker/UniqueValueChecker.php M includes/ConstraintCheck/Result/CheckResult.php M tests/phpunit/Fake/FakeSnakContext.php 13 files changed, 40 insertions(+), 4 deletions(-) Approvals: jenkins-bot: Verified Thiemo Mättig (WMDE): Looks good to me, approved diff --git a/includes/ConstraintCheck/Checker/ConflictsWithChecker.php b/includes/ConstraintCheck/Checker/ConflictsWithChecker.php index b151b36..3957a7d 100644 --- a/includes/ConstraintCheck/Checker/ConflictsWithChecker.php +++ b/includes/ConstraintCheck/Checker/ConflictsWithChecker.php @@ -74,6 +74,10 @@ if ( $context->getSnakRank() === Statement::RANK_DEPRECATED ) { return new CheckResult( $context, $constraint, [], CheckResult::STATUS_DEPRECATED ); } + if ( $context->getType() !== Context::TYPE_STATEMENT ) { + // TODO T175562 + return new CheckResult( $context, $constraint, [], CheckResult::STATUS_NOSTATEMENT ); + } $parameters = []; $constraintParameters = $constraint->getConstraintParameters(); diff --git a/includes/ConstraintCheck/Checker/DiffWithinRangeChecker.php b/includes/ConstraintCheck/Checker/DiffWithinRangeChecker.php index 1de84e7..ed88f83 100644 --- a/includes/ConstraintCheck/Checker/DiffWithinRangeChecker.php +++ b/includes/ConstraintCheck/Checker/DiffWithinRangeChecker.php @@ -87,6 +87,10 @@ if ( $context->getSnakRank() === Statement::RANK_DEPRECATED ) { return new CheckResult( $context, $constraint, [], CheckResult::STATUS_DEPRECATED ); } + if ( $context->getType() !== Context::TYPE_STATEMENT ) { + // TODO T175565 + return new CheckResult( $context, $constraint, [], CheckResult::STATUS_NOSTATEMENT ); + } $parameters = []; $constraintParameters = $constraint->getConstraintParameters(); diff --git a/includes/ConstraintCheck/Checker/InverseChecker.php b/includes/ConstraintCheck/Checker/InverseChecker.php index aafb1c3..954e9b6 100644 --- a/includes/ConstraintCheck/Checker/InverseChecker.php +++ b/includes/ConstraintCheck/Checker/InverseChecker.php @@ -75,6 +75,9 @@ if ( $context->getSnakRank() === Statement::RANK_DEPRECATED ) { return new CheckResult( $context, $constraint, [], CheckResult::STATUS_DEPRECATED ); } + if ( $context->getType() !== Context::TYPE_STATEMENT ) { + return new CheckResult( $context, $constraint, [], CheckResult::STATUS_NOSTATEMENT ); + } $parameters = []; $constraintParameters = $constraint->getConstraintParameters(); diff --git a/includes/ConstraintCheck/Checker/ItemChecker.php b/includes/ConstraintCheck/Checker/ItemChecker.php index 44a30cc..1eaa65e 100644 --- a/includes/ConstraintCheck/Checker/ItemChecker.php +++ b/includes/ConstraintCheck/Checker/ItemChecker.php @@ -73,6 +73,10 @@ if ( $context->getSnakRank() === Statement::RANK_DEPRECATED ) { return new CheckResult( $context, $constraint, [], CheckResult::STATUS_DEPRECATED ); } + if ( $context->getType() !== Context::TYPE_STATEMENT ) { + // TODO T175562 + return new CheckResult( $context, $constraint, [], CheckResult::STATUS_NOSTATEMENT ); + } $parameters = []; $constraintParameters = $constraint->getConstraintParameters(); diff --git a/includes/ConstraintCheck/Checker/MandatoryQualifiersChecker.php b/includes/ConstraintCheck/Checker/MandatoryQualifiersChecker.php index f08b6b6..f5805cc 100644 --- a/includes/ConstraintCheck/Checker/MandatoryQualifiersChecker.php +++ b/includes/ConstraintCheck/Checker/MandatoryQualifiersChecker.php @@ -57,7 +57,7 @@ return new CheckResult( $context, $constraint, [], CheckResult::STATUS_DEPRECATED ); } if ( $context->getType() !== Context::TYPE_STATEMENT ) { - return new CheckResult( $context, $constraint, [], CheckResult::STATUS_TODO ); + return new CheckResult( $context, $constraint, [], CheckResult::STATUS_NOSTATEMENT ); } $parameters = []; diff --git a/includes/ConstraintCheck/Checker/MultiValueChecker.php b/includes/ConstraintCheck/Checker/MultiValueChecker.php index a845b88..bdb00b8 100644 --- a/includes/ConstraintCheck/Checker/MultiValueChecker.php +++ b/includes/ConstraintCheck/Checker/MultiValueChecker.php @@ -39,6 +39,10 @@ if ( $context->getSnakRank() === Statement::RANK_DEPRECATED ) { return new CheckResult( $context, $constraint, [], CheckResult::STATUS_DEPRECATED ); } + if ( $context->getType() !== Context::TYPE_STATEMENT ) { + // TODO T175566 + return new CheckResult( $context, $constraint, [], CheckResult::STATUS_NOSTATEMENT ); + } $propertyId = $context->getSnak()->getPropertyId(); diff --git a/includes/ConstraintCheck/Checker/QualifiersChecker.php b/includes/ConstraintCheck/Checker/QualifiersChecker.php index df6b6a9..b91cabe 100644 --- a/includes/ConstraintCheck/Checker/QualifiersChecker.php +++ b/includes/ConstraintCheck/Checker/QualifiersChecker.php @@ -57,7 +57,7 @@ return new CheckResult( $context, $constraint, [], CheckResult::STATUS_DEPRECATED ); } if ( $context->getType() !== Context::TYPE_STATEMENT ) { - return new CheckResult( $context, $constraint, [], CheckResult::STATUS_TODO ); + return new CheckResult( $context, $constraint, [], CheckResult::STATUS_NOSTATEMENT ); } $parameters = []; diff --git a/includes/ConstraintCheck/Checker/SingleValueChecker.php b/includes/ConstraintCheck/Checker/SingleValueChecker.php index 32e6833..02d6fbc 100644 --- a/includes/ConstraintCheck/Checker/SingleValueChecker.php +++ b/includes/ConstraintCheck/Checker/SingleValueChecker.php @@ -39,6 +39,10 @@ if ( $context->getSnakRank() === Statement::RANK_DEPRECATED ) { return new CheckResult( $context, $constraint, [], CheckResult::STATUS_DEPRECATED ); } + if ( $context->getType() !== Context::TYPE_STATEMENT ) { + // TODO T175566 + return new CheckResult( $context, $constraint, [], CheckResult::STATUS_NOSTATEMENT ); + } $propertyId = $context->getSnak()->getPropertyId(); diff --git a/includes/ConstraintCheck/Checker/SymmetricChecker.php b/includes/ConstraintCheck/Checker/SymmetricChecker.php index b5e8e45..4ad3829 100644 --- a/includes/ConstraintCheck/Checker/SymmetricChecker.php +++ b/includes/ConstraintCheck/Checker/SymmetricChecker.php @@ -65,6 +65,9 @@ if ( $context->getSnakRank() === Statement::RANK_DEPRECATED ) { return new CheckResult( $context, $constraint, [], CheckResult::STATUS_DEPRECATED ); } + if ( $context->getType() !== Context::TYPE_STATEMENT ) { + return new CheckResult( $context, $constraint, [], CheckResult::STATUS_NOSTATEMENT ); + } $parameters = []; diff --git a/includes/ConstraintCheck/Checker/TypeChecker.php b/includes/ConstraintCheck/Checker/TypeChecker.php index b4aa162..245649f 100644 --- a/includes/ConstraintCheck/Checker/TypeChecker.php +++ b/includes/ConstraintCheck/Checker/TypeChecker.php @@ -76,6 +76,9 @@ if ( $context->getSnakRank() === Statement::RANK_DEPRECATED ) { return new CheckResult( $context, $constraint, [], CheckResult::STATUS_DEPRECATED ); } + if ( $context->getType() !== Context::TYPE_STATEMENT ) { + return new CheckResult( $context, $constraint, [], CheckResult::STATUS_NOSTATEMENT ); + } $parameters = []; $constraintParameters = $constraint->getConstraintParameters(); diff --git a/includes/ConstraintCheck/Checker/UniqueValueChecker.php b/includes/ConstraintCheck/Checker/UniqueValueChecker.php index f552d8a..ac5ee30 100644 --- a/includes/ConstraintCheck/Checker/UniqueValueChecker.php +++ b/includes/ConstraintCheck/Checker/UniqueValueChecker.php @@ -58,7 +58,8 @@ return new CheckResult( $context, $constraint, [], CheckResult::STATUS_DEPRECATED ); } if ( $context->getType() !== Context::TYPE_STATEMENT ) { - return new CheckResult( $context, $constraint, [], CheckResult::STATUS_TODO ); + // TODO T175561 + return new CheckResult( $context, $constraint, [], CheckResult::STATUS_NOSTATEMENT ); } $parameters = []; diff --git a/includes/ConstraintCheck/Result/CheckResult.php b/includes/ConstraintCheck/Result/CheckResult.php index b8ec2b5..5fc3bc7 100644 --- a/includes/ConstraintCheck/Result/CheckResult.php +++ b/includes/ConstraintCheck/Result/CheckResult.php @@ -51,6 +51,12 @@ * constraint checkers should not assign this status directly. */ const STATUS_WARNING = 'warning'; + /** + * The constraint type is only checked on statements, + * but the current context is not a statement context, + * so the constraint check is skipped. + */ + const STATUS_NOSTATEMENT = 'no-statement'; /** * @var Constraint diff --git a/tests/phpunit/Fake/FakeSnakContext.php b/tests/phpunit/Fake/FakeSnakContext.php index daaf355..76eed30 100644 --- a/tests/phpunit/Fake/FakeSnakContext.php +++ b/tests/phpunit/Fake/FakeSnakContext.php @@ -29,7 +29,7 @@ } public function getType() { - return 'test'; + return 'statement'; } public function storeCheckResultInArray( array $result, array &$container ) { -- To view, visit https://gerrit.wikimedia.org/r/377283 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: Ia82a80aeb3118075ba4fa7e1b8a127cc103446df Gerrit-PatchSet: 2 Gerrit-Project: mediawiki/extensions/WikibaseQualityConstraints Gerrit-Branch: master Gerrit-Owner: Lucas Werkmeister (WMDE) <lucas.werkmeis...@wikimedia.de> Gerrit-Reviewer: Lucas Werkmeister (WMDE) <lucas.werkmeis...@wikimedia.de> Gerrit-Reviewer: Thiemo Mättig (WMDE) <thiemo.maet...@wikimedia.de> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits