From e59f2c3cffeef60be9c7a7f33cc8a32b7c9e6689 Mon Sep 17 00:00:00 2001 From: Brett McBride Date: Mon, 13 Feb 2023 18:43:57 +1100 Subject: [PATCH] fixing phpunit 9.6 deprecations (#922) phpunit v9.6 introduces a bunch of deprecations for things that will break in v10. This fixes the tests that are currently complaining. --- .phan/config.php | 1 - composer.json | 3 ++- .../API/Behavior/LogsMessagesTraitTest.php | 9 ++++---- tests/Unit/Context/DebugScopeTest.php | 17 ++++++++------- .../SDK/Common/Dev/Compatibility/UtilTest.php | 21 ++++++++++--------- tests/Unit/SDK/FactoryRegistryTest.php | 7 ++++--- .../SDK/Metrics/Stream/MetricStreamTest.php | 5 +++-- 7 files changed, 34 insertions(+), 29 deletions(-) diff --git a/.phan/config.php b/.phan/config.php index 8e65007f..f0e92471 100644 --- a/.phan/config.php +++ b/.phan/config.php @@ -376,7 +376,6 @@ return [ 'vendor/php-http', 'vendor/phan/phan/src/Phan', 'vendor/phpunit/phpunit/src', - 'vendor/promphp/prometheus_client_php/src', 'vendor/google/protobuf/src', ], diff --git a/composer.json b/composer.json index 612bd49e..286fc615 100644 --- a/composer.json +++ b/composer.json @@ -24,6 +24,7 @@ "sort-packages": true, "allow-plugins": { "composer/package-versions-deprecated": true, + "php-http/discovery": true, "symfony/runtime": true } }, @@ -90,7 +91,7 @@ "phpstan/phpstan": "^1.1", "phpstan/phpstan-mockery": "^1.0", "phpstan/phpstan-phpunit": "^1.0", - "phpunit/phpunit": "^9.3", + "phpunit/phpunit": "^9.6", "psalm/plugin-mockery": "^0.9", "psalm/plugin-phpunit": "^0.18", "psalm/psalm": "^4.0", diff --git a/tests/Unit/API/Behavior/LogsMessagesTraitTest.php b/tests/Unit/API/Behavior/LogsMessagesTraitTest.php index a517e427..142c8031 100644 --- a/tests/Unit/API/Behavior/LogsMessagesTraitTest.php +++ b/tests/Unit/API/Behavior/LogsMessagesTraitTest.php @@ -6,6 +6,7 @@ namespace OpenTelemetry\Tests\Unit\API\Behavior; use OpenTelemetry\API\Behavior\LogsMessagesTrait; use OpenTelemetry\API\Common\Log\LoggerHolder; +use PHPUnit\Framework\Exception as PHPUnitFrameworkException; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; use Psr\Log\LoggerInterface; @@ -37,8 +38,8 @@ class LogsMessagesTraitTest extends TestCase $this->assertFalse(LoggerHolder::isSet()); $instance = $this->createInstance(); - $this->expectWarning(); - $this->expectWarningMessageMatches(sprintf('/%s/', $message)); + $this->expectException(PHPUnitFrameworkException::class); + $this->expectExceptionMessageMatches(sprintf('/%s/', $message)); $instance->run('logWarning', 'foo', ['exception' => new \Exception($message)]); } @@ -49,8 +50,8 @@ class LogsMessagesTraitTest extends TestCase $this->assertFalse(LoggerHolder::isSet()); $instance = $this->createInstance(); - $this->expectError(); - $this->expectErrorMessageMatches(sprintf('/%s/', $message)); + $this->expectException(PHPUnitFrameworkException::class); + $this->expectExceptionMessageMatches(sprintf('/%s/', $message)); $instance->run('logError', 'foo', ['exception' => new \Exception($message)]); } diff --git a/tests/Unit/Context/DebugScopeTest.php b/tests/Unit/Context/DebugScopeTest.php index 2f26dddd..8e1e7c86 100644 --- a/tests/Unit/Context/DebugScopeTest.php +++ b/tests/Unit/Context/DebugScopeTest.php @@ -5,6 +5,7 @@ declare(strict_types=1); namespace OpenTelemetry\Tests\Unit\Context; use OpenTelemetry\Context\Context; +use PHPUnit\Framework\Exception as PHPUnitFrameworkException; use PHPUnit\Framework\TestCase; /** @@ -18,8 +19,8 @@ final class DebugScopeTest extends TestCase $scope1->detach(); - $this->expectNotice(); - $this->expectNoticeMessage('already detached'); + $this->expectException(PHPUnitFrameworkException::class); + $this->expectExceptionMessage('already detached'); $scope1->detach(); } @@ -29,8 +30,8 @@ final class DebugScopeTest extends TestCase $scope2 = Context::getCurrent()->activate(); try { - $this->expectNotice(); - $this->expectNoticeMessage('another scope'); + $this->expectException(PHPUnitFrameworkException::class); + $this->expectExceptionMessage('another scope'); $scope1->detach(); } finally { $scope2->detach(); @@ -45,8 +46,8 @@ final class DebugScopeTest extends TestCase Context::storage()->switch(1); try { - $this->expectNotice(); - $this->expectNoticeMessage('different execution context'); + $this->expectException(PHPUnitFrameworkException::class); + $this->expectExceptionMessage('different execution context'); $scope1->detach(); } finally { Context::storage()->switch(0); @@ -57,8 +58,8 @@ final class DebugScopeTest extends TestCase public function test_missing_scope_detach(): void { try { - $this->expectNotice(); - $this->expectNoticeMessage('missing call'); + $this->expectException(PHPUnitFrameworkException::class); + $this->expectExceptionMessage('missing call'); Context::getCurrent()->activate(); } finally { /** @psalm-suppress PossiblyNullReference */ diff --git a/tests/Unit/SDK/Common/Dev/Compatibility/UtilTest.php b/tests/Unit/SDK/Common/Dev/Compatibility/UtilTest.php index c0d9aacd..21f250c2 100644 --- a/tests/Unit/SDK/Common/Dev/Compatibility/UtilTest.php +++ b/tests/Unit/SDK/Common/Dev/Compatibility/UtilTest.php @@ -6,6 +6,7 @@ namespace OpenTelemetry\Tests\Unit\SDK\Common\Dev\Compatibility; use Generator; use OpenTelemetry\SDK\Common\Dev\Compatibility\Util; +use PHPUnit\Framework\Exception as PHPUnitFrameworkException; use PHPUnit\Framework\TestCase; /** @@ -41,11 +42,11 @@ class UtilTest extends TestCase /** * @dataProvider errorLevelProvider */ - public function test_trigger_class_deprecation_notice(int $level, string $expectedError): void + public function test_trigger_class_deprecation_notice(int $level): void { Util::setErrorLevel($level); - $this->{$expectedError}(); + $this->expectException(PHPUnitFrameworkException::class); Util::triggerClassDeprecationNotice(Util::class, self::class); } @@ -53,11 +54,11 @@ class UtilTest extends TestCase /** * @dataProvider errorLevelProvider */ - public function test_trigger_method_deprecation_notice_without_class(int $level, string $expectedError): void + public function test_trigger_method_deprecation_notice_without_class(int $level): void { Util::setErrorLevel($level); - $this->{$expectedError}(); + $this->expectException(PHPUnitFrameworkException::class); Util::triggerMethodDeprecationNotice(Util::class, __METHOD__); } @@ -65,21 +66,21 @@ class UtilTest extends TestCase /** * @dataProvider errorLevelProvider */ - public function test_trigger_method_deprecation_notice_with_class(int $level, string $expectedError): void + public function test_trigger_method_deprecation_notice_with_class(int $level): void { Util::setErrorLevel($level); - $this->{$expectedError}(); + $this->expectException(PHPUnitFrameworkException::class); Util::triggerMethodDeprecationNotice(Util::class, 'foo', self::class); } public function errorLevelProvider(): Generator { - yield [E_USER_DEPRECATED, 'expectDeprecation']; - yield [E_USER_NOTICE, 'expectNotice']; - yield [E_USER_WARNING, 'expectWarning']; - yield [E_USER_ERROR, 'expectError']; + yield [E_USER_DEPRECATED]; + yield [E_USER_NOTICE]; + yield [E_USER_WARNING]; + yield [E_USER_ERROR]; } public function test_turn_errors_off(): void diff --git a/tests/Unit/SDK/FactoryRegistryTest.php b/tests/Unit/SDK/FactoryRegistryTest.php index f5a28f73..9e8b1eb8 100644 --- a/tests/Unit/SDK/FactoryRegistryTest.php +++ b/tests/Unit/SDK/FactoryRegistryTest.php @@ -8,6 +8,7 @@ use OpenTelemetry\SDK\Common\Export\TransportFactoryInterface; use OpenTelemetry\SDK\Metrics\MetricExporterFactoryInterface; use OpenTelemetry\SDK\Registry; use OpenTelemetry\SDK\Trace\SpanExporter\SpanExporterFactoryInterface; +use PHPUnit\Framework\Exception as PHPUnitFrameworkException; use PHPUnit\Framework\TestCase; /** @@ -79,7 +80,7 @@ class FactoryRegistryTest extends TestCase */ public function test_register_invalid_transport_factory($factory): void { - $this->expectWarning(); + $this->expectException(PHPUnitFrameworkException::class); Registry::registerTransportFactory('http', $factory, true); } @@ -88,7 +89,7 @@ class FactoryRegistryTest extends TestCase */ public function test_register_invalid_span_exporter_factory($factory): void { - $this->expectWarning(); + $this->expectException(PHPUnitFrameworkException::class); Registry::registerSpanExporterFactory('foo', $factory, true); } @@ -97,7 +98,7 @@ class FactoryRegistryTest extends TestCase */ public function test_register_invalid_metric_exporter_factory($factory): void { - $this->expectWarning(); + $this->expectException(PHPUnitFrameworkException::class); Registry::registerMetricExporterFactory('foo', $factory, true); } diff --git a/tests/Unit/SDK/Metrics/Stream/MetricStreamTest.php b/tests/Unit/SDK/Metrics/Stream/MetricStreamTest.php index aba5c919..2b043ed4 100644 --- a/tests/Unit/SDK/Metrics/Stream/MetricStreamTest.php +++ b/tests/Unit/SDK/Metrics/Stream/MetricStreamTest.php @@ -19,6 +19,7 @@ use OpenTelemetry\SDK\Metrics\Stream\MetricAggregator; use OpenTelemetry\SDK\Metrics\Stream\StreamWriter; use OpenTelemetry\SDK\Metrics\Stream\SynchronousMetricStream; use const PHP_INT_SIZE; +use PHPUnit\Framework\Exception as PHPUnitFrameworkException; use PHPUnit\Framework\TestCase; /** @@ -337,8 +338,8 @@ final class MetricStreamTest extends TestCase $s->register(Temporality::DELTA); } - $this->expectWarning(); - $this->expectWarningMessageMatches('/^GMP extension required to register over \d++ readers$/'); + $this->expectException(PHPUnitFrameworkException::class); + $this->expectExceptionMessageMatches('/^GMP extension required to register over \d++ readers$/'); $s->register(Temporality::DELTA); }