CheckUser code currently doesn't support unit testing. This feature should be added, and alongside it a test data set should also be generated.
The test data set can be extended and repurposed, such that it can be used for creating any additional extensions (e.g. a JS code that uses CU tool via API). Having a relatively extensive set of test data can be extremely beneficial.
The task is created in reaction to notable support for this idea on the cu-l listserv. One of the users on the listserv also made suggestions about what the test data should contain, which is pasted below:
- Users
- Sample users and anons whose edits are to be checked
- Sample CU users whose names appear in log and who can run tests
- with admin rights
- without admin rights (different interface)
- special: oversight, steward -- is it neccessary?
- Sample non-CU users who fail to use the tool
- Users with constant or almost constant IP and UA for a simple case
- Useres who often change their data (both users with dynamic IP from an ISO with multiple domains and sofisticated vandals)
- Multiple users from same IP
- IPs
- IPv4
- IPv6
- Some similar from a same domain
- Some different
- Blocked, previously blocked and not blocked
- User agents
- Common from a few operating systems and browsers (useful to keep up-to-date)
- A few complicated ones
- Some known bots (AWB or Pywikibot)
- Fake
- Edits
- Logged-in
- IP
- From behind proxy / open proxy
- Newr than 3 months
- Older than 3 months
- Edit summaries and check reasons -- I am not sure if they are impoertant for testing and experimenting
- Pages of course that were edited -- I don't hink this needs extra considerations