Page MenuHomePhabricator

Make production extensions PHPUnit tests data providers real providers (and use static methods)
Open, Needs TriagePublic

Description

CodeSearch survey: https://codesearch.wmcloud.org/deployed/?q=public+function+provide*&files=tests%2F&excludeFiles=&repos=

In the spirit of T332865: PHPUnit data providers should be simple static functions that return plain data, we've mostly migrated our code to use pure data providers, but there are still some extensions (per code search) above that still don't follow this pattern.

It would be nice to migrate all of them to the new pattern. Not sure if it would be helpful to tag all extensions on the codesearch list.

Event Timeline

Change #1208326 had a related patch set uploaded (by D3r1ck01; author: Derick Alangi):

[mediawiki/extensions/OAuth@master] tests: Make ClaimStoreTest data providers static methods

https://gerrit.wikimedia.org/r/1208326

Change #1208327 had a related patch set uploaded (by D3r1ck01; author: Derick Alangi):

[mediawiki/extensions/OATHAuth@master] tests: Make KeySessionStorageTraitTest data providers static methods

https://gerrit.wikimedia.org/r/1208327

Change #1208328 had a related patch set uploaded (by D3r1ck01; author: Derick Alangi):

[operations/mediawiki-config@master] tests: Make data providers static methods

https://gerrit.wikimedia.org/r/1208328

Change #1208326 merged by jenkins-bot:

[mediawiki/extensions/OAuth@master] tests: Make ClaimStoreTest data providers static methods

https://gerrit.wikimedia.org/r/1208326

Change #1208327 merged by jenkins-bot:

[mediawiki/extensions/OATHAuth@master] tests: Make data providers methods static

https://gerrit.wikimedia.org/r/1208327

A_smart_kitten subscribed.

Not sure if it would be helpful to tag all extensions on the codesearch list.

IMO you could do if you want. What I personally do sometimes though, especially for tasks that apply to a large number of extensions, is tag MediaWiki-extensions-General (in lieu of figuring out & tagging all the individual extensions that a task applies to). I don't know if there are any guidelines about when to do that vs. tagging individual extensions, though - I'd guess that it's probably more of an art than a science :)

Change #1210178 had a related patch set uploaded (by Samwilson; author: Samwilson):

[mediawiki/extensions/CommunityRequests@master] tests: Make some data providers methods static

https://gerrit.wikimedia.org/r/1210178

Change #1210178 merged by jenkins-bot:

[mediawiki/extensions/CommunityRequests@master] tests: Make some data providers methods static

https://gerrit.wikimedia.org/r/1210178

Change #1208328 merged by jenkins-bot:

[operations/mediawiki-config@master] tests: Make data providers static methods

https://gerrit.wikimedia.org/r/1208328

Mentioned in SAL (#wikimedia-operations) [2025-11-24T15:21:00Z] <lucaswerkmeister-wmde@deploy2002> Started scap sync-world: Backport for [[gerrit:1208328|tests: Make data providers static methods (T410731)]]

Mentioned in SAL (#wikimedia-operations) [2025-11-24T15:25:57Z] <lucaswerkmeister-wmde@deploy2002> lucaswerkmeister-wmde, d3r1ck01: Backport for [[gerrit:1208328|tests: Make data providers static methods (T410731)]] synced to the testservers (see https://wikitech.wikimedia.org/wiki/Mwdebug). Changes can now be verified there.

Mentioned in SAL (#wikimedia-operations) [2025-11-24T15:30:15Z] <lucaswerkmeister-wmde@deploy2002> Finished scap sync-world: Backport for [[gerrit:1208328|tests: Make data providers static methods (T410731)]] (duration: 09m 15s)