twisted / twisted/twisted

Add some whitebox tests for win32eventreactor that directly exercise all of the paths through doWaitForMultipleEvents

Open
#5,202 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

core enhancement new priority-normal
Dominant language
Python
Stars
6k
Forks
1.2k
Avg merge
2d 10h
Merged PRs (30d)
10

Description

exarkun's avatar @exarkun reported
Trac ID trac#5202
Type enhancement
Created 2011-07-21 00:05:00Z

Win32Reactor changed in #3824 to eliminate an obscure long-delay case. The way the change was tested was manual observation that the delay disappeared. It would be nicer to have a red/green type test for this code and changes like it in the future.

One suggestion is to mock MsgWaitForMultipleObjects and PumpWaitingMessages so as to be able to see when they're called, with what arguments, and to be able to easily trigger various return values from them.

Searchable metadata
trac-id__5202 5202
type__enhancement enhancement
reporter__exarkun exarkun
priority__normal normal
milestone__ 
branch__ 
branch_author__ 
status__new new
resolution__None None
component__core core
keywords__ 
time__1311206700000000 1311206700000000
changetime__1311206700000000 1311206700000000
version__None None
owner__ 

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Locate Win32Reactor and its doWaitForMultipleEvents method, then read the change described in issue #3824. Add white-box coverage using mocks for MsgWaitForMultipleObjects and PumpWaitingMessages, exercising every path and checking calls, arguments, and return values.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
operating-systems, testing-qa
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.