{"action":"created","comment":{"url":"https://api.github.com/repos/pytest-dev/pytest-qt/pulls/comments/74840372","id":74840372,"diff_hunk":"@@ -54,11 +57,77 @@ def _quit_loop_by_timeout(self):\n             self._loop.quit()\n \n     def _cleanup(self):\n+        # store timeout message before the data to construct it is lost\n+        self._timeout_message = self.get_timeout_error_message()\n         if self._timer is not None:\n             _silent_disconnect(self._timer.timeout, self._quit_loop_by_timeout)\n             self._timer.stop()\n             self._timer = None\n \n+    def get_timeout_error_message(self):\n+        \"\"\"Subclasses have to implement this, returning an appropriate error message for a SignalTimeoutError.\"\"\"\n+        raise NotImplementedError\n+\n+    def _extract_pyqt_signal_name(self, potential_pyqt_signal):","path":"pytestqt/wait_signal.py","position":41,"original_position":41,"commit_id":"231626177c775dee3eb9eacbbc6d05c475bd86cd","original_commit_id":"231626177c775dee3eb9eacbbc6d05c475bd86cd","user":{"login":"nicoddemus","id":1085180,"avatar_url":"https://avatars.githubusercontent.com/u/1085180?v=3","gravatar_id":"","url":"https://api.github.com/users/nicoddemus","html_url":"https://github.com/nicoddemus","followers_url":"https://api.github.com/users/nicoddemus/followers","following_url":"https://api.github.com/users/nicoddemus/following{/other_user}","gists_url":"https://api.github.com/users/nicoddemus/gists{/gist_id}","starred_url":"https://api.github.com/users/nicoddemus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicoddemus/subscriptions","organizations_url":"https://api.github.com/users/nicoddemus/orgs","repos_url":"https://api.github.com/users/nicoddemus/repos","events_url":"https://api.github.com/users/nicoddemus/events{/privacy}","received_events_url":"https://api.github.com/users/nicoddemus/received_events","type":"User","site_admin":false},"body":"The functions below, which extract a string/name from signal objects, could all live in a `signals.py` module (or something like that) as normal functions instead of methods. It would make it simpler to test each one of them as unit-tests.","created_at":"2016-08-15T21:38:54Z","updated_at":"2016-08-15T21:38:54Z","html_url":"https://github.com/pytest-dev/pytest-qt/pull/153#discussion_r74840372","pull_request_url":"https://api.github.com/repos/pytest-dev/pytest-qt/pulls/153","_links":{"self":{"href":"https://api.github.com/repos/pytest-dev/pytest-qt/pulls/comments/74840372"},"html":{"href":"https://github.com/pytest-dev/pytest-qt/pull/153#discussion_r74840372"},"pull_request":{"href":"https://api.github.com/repos/pytest-dev/pytest-qt/pulls/153"}}},"pull_request":{"url":"https://api.github.com/repos/pytest-dev/pytest-qt/pulls/153","id":81083894,"html_url":"https://github.com/pytest-dev/pytest-qt/pull/153","diff_url":"https://github.com/pytest-dev/pytest-qt/pull/153.diff","patch_url":"https://github.com/pytest-dev/pytest-qt/pull/153.patch","issue_url":"https://api.github.com/repos/pytest-dev/pytest-qt/issues/153","number":153,"state":"open","locked":false,"title":"Support for capturing signals and args and improved SignalTimeoutError messages","user":{"login":"MShekow","id":10126618,"avatar_url":"https://avatars.githubusercontent.com/u/10126618?v=3","gravatar_id":"","url":"https://api.github.com/users/MShekow","html_url":"https://github.com/MShekow","followers_url":"https://api.github.com/users/MShekow/followers","following_url":"https://api.github.com/users/MShekow/following{/other_user}","gists_url":"https://api.github.com/users/MShekow/gists{/gist_id}","starred_url":"https://api.github.com/users/MShekow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MShekow/subscriptions","organizations_url":"https://api.github.com/users/MShekow/orgs","repos_url":"https://api.github.com/users/MShekow/repos","events_url":"https://api.github.com/users/MShekow/events{/privacy}","received_events_url":"https://api.github.com/users/MShekow/received_events","type":"User","site_admin":false},"body":"``waitSignal()``: added support for capturing arguments when callback was not satisfied (into ``blocker.all_args``) and improved the message of ``SignalTimeoutError`` to include the name of the signal, non-matching signal parameters and name of the callback.\r\n\r\n``waitSignals()``: Added capturing signals and their arguments (see ``all_signals_and_args``). Cleaned up large parts of the code of ``MultiSignalBlocker`` for better readability. Improved the message of ``SignalTimeoutError``. Updated documentation. Added tests. See #151 ","created_at":"2016-08-12T08:30:57Z","updated_at":"2016-08-15T21:38:54Z","closed_at":null,"merged_at":null,"merge_commit_sha":"695c0fb0008514d92a98ae8b1e6d4773bb4a77c1","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/pytest-dev/pytest-qt/pulls/153/commits","review_comments_url":"https://api.github.com/repos/pytest-dev/pytest-qt/pulls/153/comments","review_comment_url":"https://api.github.com/repos/pytest-dev/pytest-qt/pulls/comments{/number}","comments_url":"https://api.github.com/repos/pytest-dev/pytest-qt/issues/153/comments","statuses_url":"https://api.github.com/repos/pytest-dev/pytest-qt/statuses/231626177c775dee3eb9eacbbc6d05c475bd86cd","head":{"label":"MShekow:master","ref":"master","sha":"231626177c775dee3eb9eacbbc6d05c475bd86cd","user":{"login":"MShekow","id":10126618,"avatar_url":"https://avatars.githubusercontent.com/u/10126618?v=3","gravatar_id":"","url":"https://api.github.com/users/MShekow","html_url":"https://github.com/MShekow","followers_url":"https://api.github.com/users/MShekow/followers","following_url":"https://api.github.com/users/MShekow/following{/other_user}","gists_url":"https://api.github.com/users/MShekow/gists{/gist_id}","starred_url":"https://api.github.com/users/MShekow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MShekow/subscriptions","organizations_url":"https://api.github.com/users/MShekow/orgs","repos_url":"https://api.github.com/users/MShekow/repos","events_url":"https://api.github.com/users/MShekow/events{/privacy}","received_events_url":"https://api.github.com/users/MShekow/received_events","type":"User","site_admin":false},"repo":{"id":63258546,"name":"pytest-qt","full_name":"MShekow/pytest-qt","owner":{"login":"MShekow","id":10126618,"avatar_url":"https://avatars.githubusercontent.com/u/10126618?v=3","gravatar_id":"","url":"https://api.github.com/users/MShekow","html_url":"https://github.com/MShekow","followers_url":"https://api.github.com/users/MShekow/followers","following_url":"https://api.github.com/users/MShekow/following{/other_user}","gists_url":"https://api.github.com/users/MShekow/gists{/gist_id}","starred_url":"https://api.github.com/users/MShekow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MShekow/subscriptions","organizations_url":"https://api.github.com/users/MShekow/orgs","repos_url":"https://api.github.com/users/MShekow/repos","events_url":"https://api.github.com/users/MShekow/events{/privacy}","received_events_url":"https://api.github.com/users/MShekow/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/MShekow/pytest-qt","description":"pytest plugin for Qt (PyQt4, PyQt5 and PySide) application testing","fork":true,"url":"https://api.github.com/repos/MShekow/pytest-qt","forks_url":"https://api.github.com/repos/MShekow/pytest-qt/forks","keys_url":"https://api.github.com/repos/MShekow/pytest-qt/keys{/key_id}","collaborators_url":"https://api.github.com/repos/MShekow/pytest-qt/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/MShekow/pytest-qt/teams","hooks_url":"https://api.github.com/repos/MShekow/pytest-qt/hooks","issue_events_url":"https://api.github.com/repos/MShekow/pytest-qt/issues/events{/number}","events_url":"https://api.github.com/repos/MShekow/pytest-qt/events","assignees_url":"https://api.github.com/repos/MShekow/pytest-qt/assignees{/user}","branches_url":"https://api.github.com/repos/MShekow/pytest-qt/branches{/branch}","tags_url":"https://api.github.com/repos/MShekow/pytest-qt/tags","blobs_url":"https://api.github.com/repos/MShekow/pytest-qt/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/MShekow/pytest-qt/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/MShekow/pytest-qt/git/refs{/sha}","trees_url":"https://api.github.com/repos/MShekow/pytest-qt/git/trees{/sha}","statuses_url":"https://api.github.com/repos/MShekow/pytest-qt/statuses/{sha}","languages_url":"https://api.github.com/repos/MShekow/pytest-qt/languages","stargazers_url":"https://api.github.com/repos/MShekow/pytest-qt/stargazers","contributors_url":"https://api.github.com/repos/MShekow/pytest-qt/contributors","subscribers_url":"https://api.github.com/repos/MShekow/pytest-qt/subscribers","subscription_url":"https://api.github.com/repos/MShekow/pytest-qt/subscription","commits_url":"https://api.github.com/repos/MShekow/pytest-qt/commits{/sha}","git_commits_url":"https://api.github.com/repos/MShekow/pytest-qt/git/commits{/sha}","comments_url":"https://api.github.com/repos/MShekow/pytest-qt/comments{/number}","issue_comment_url":"https://api.github.com/repos/MShekow/pytest-qt/issues/comments{/number}","contents_url":"https://api.github.com/repos/MShekow/pytest-qt/contents/{+path}","compare_url":"https://api.github.com/repos/MShekow/pytest-qt/compare/{base}...{head}","merges_url":"https://api.github.com/repos/MShekow/pytest-qt/merges","archive_url":"https://api.github.com/repos/MShekow/pytest-qt/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/MShekow/pytest-qt/downloads","issues_url":"https://api.github.com/repos/MShekow/pytest-qt/issues{/number}","pulls_url":"https://api.github.com/repos/MShekow/pytest-qt/pulls{/number}","milestones_url":"https://api.github.com/repos/MShekow/pytest-qt/milestones{/number}","notifications_url":"https://api.github.com/repos/MShekow/pytest-qt/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/MShekow/pytest-qt/labels{/name}","releases_url":"https://api.github.com/repos/MShekow/pytest-qt/releases{/id}","deployments_url":"https://api.github.com/repos/MShekow/pytest-qt/deployments","created_at":"2016-07-13T15:37:08Z","updated_at":"2016-07-13T15:37:10Z","pushed_at":"2016-08-15T19:58:47Z","git_url":"git://github.com/MShekow/pytest-qt.git","ssh_url":"git@github.com:MShekow/pytest-qt.git","clone_url":"https://github.com/MShekow/pytest-qt.git","svn_url":"https://github.com/MShekow/pytest-qt","homepage":"","size":629,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"pytest-dev:master","ref":"master","sha":"598c1c256fd741a86e8ba26625d446e9665ba084","user":{"login":"pytest-dev","id":8897583,"avatar_url":"https://avatars.githubusercontent.com/u/8897583?v=3","gravatar_id":"","url":"https://api.github.com/users/pytest-dev","html_url":"https://github.com/pytest-dev","followers_url":"https://api.github.com/users/pytest-dev/followers","following_url":"https://api.github.com/users/pytest-dev/following{/other_user}","gists_url":"https://api.github.com/users/pytest-dev/gists{/gist_id}","starred_url":"https://api.github.com/users/pytest-dev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pytest-dev/subscriptions","organizations_url":"https://api.github.com/users/pytest-dev/orgs","repos_url":"https://api.github.com/users/pytest-dev/repos","events_url":"https://api.github.com/users/pytest-dev/events{/privacy}","received_events_url":"https://api.github.com/users/pytest-dev/received_events","type":"Organization","site_admin":false},"repo":{"id":8444568,"name":"pytest-qt","full_name":"pytest-dev/pytest-qt","owner":{"login":"pytest-dev","id":8897583,"avatar_url":"https://avatars.githubusercontent.com/u/8897583?v=3","gravatar_id":"","url":"https://api.github.com/users/pytest-dev","html_url":"https://github.com/pytest-dev","followers_url":"https://api.github.com/users/pytest-dev/followers","following_url":"https://api.github.com/users/pytest-dev/following{/other_user}","gists_url":"https://api.github.com/users/pytest-dev/gists{/gist_id}","starred_url":"https://api.github.com/users/pytest-dev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pytest-dev/subscriptions","organizations_url":"https://api.github.com/users/pytest-dev/orgs","repos_url":"https://api.github.com/users/pytest-dev/repos","events_url":"https://api.github.com/users/pytest-dev/events{/privacy}","received_events_url":"https://api.github.com/users/pytest-dev/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/pytest-dev/pytest-qt","description":"pytest plugin for Qt (PyQt4, PyQt5 and PySide) application testing","fork":false,"url":"https://api.github.com/repos/pytest-dev/pytest-qt","forks_url":"https://api.github.com/repos/pytest-dev/pytest-qt/forks","keys_url":"https://api.github.com/repos/pytest-dev/pytest-qt/keys{/key_id}","collaborators_url":"https://api.github.com/repos/pytest-dev/pytest-qt/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/pytest-dev/pytest-qt/teams","hooks_url":"https://api.github.com/repos/pytest-dev/pytest-qt/hooks","issue_events_url":"https://api.github.com/repos/pytest-dev/pytest-qt/issues/events{/number}","events_url":"https://api.github.com/repos/pytest-dev/pytest-qt/events","assignees_url":"https://api.github.com/repos/pytest-dev/pytest-qt/assignees{/user}","branches_url":"https://api.github.com/repos/pytest-dev/pytest-qt/branches{/branch}","tags_url":"https://api.github.com/repos/pytest-dev/pytest-qt/tags","blobs_url":"https://api.github.com/repos/pytest-dev/pytest-qt/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/pytest-dev/pytest-qt/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/pytest-dev/pytest-qt/git/refs{/sha}","trees_url":"https://api.github.com/repos/pytest-dev/pytest-qt/git/trees{/sha}","statuses_url":"https://api.github.com/repos/pytest-dev/pytest-qt/statuses/{sha}","languages_url":"https://api.github.com/repos/pytest-dev/pytest-qt/languages","stargazers_url":"https://api.github.com/repos/pytest-dev/pytest-qt/stargazers","contributors_url":"https://api.github.com/repos/pytest-dev/pytest-qt/contributors","subscribers_url":"https://api.github.com/repos/pytest-dev/pytest-qt/subscribers","subscription_url":"https://api.github.com/repos/pytest-dev/pytest-qt/subscription","commits_url":"https://api.github.com/repos/pytest-dev/pytest-qt/commits{/sha}","git_commits_url":"https://api.github.com/repos/pytest-dev/pytest-qt/git/commits{/sha}","comments_url":"https://api.github.com/repos/pytest-dev/pytest-qt/comments{/number}","issue_comment_url":"https://api.github.com/repos/pytest-dev/pytest-qt/issues/comments{/number}","contents_url":"https://api.github.com/repos/pytest-dev/pytest-qt/contents/{+path}","compare_url":"https://api.github.com/repos/pytest-dev/pytest-qt/compare/{base}...{head}","merges_url":"https://api.github.com/repos/pytest-dev/pytest-qt/merges","archive_url":"https://api.github.com/repos/pytest-dev/pytest-qt/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/pytest-dev/pytest-qt/downloads","issues_url":"https://api.github.com/repos/pytest-dev/pytest-qt/issues{/number}","pulls_url":"https://api.github.com/repos/pytest-dev/pytest-qt/pulls{/number}","milestones_url":"https://api.github.com/repos/pytest-dev/pytest-qt/milestones{/number}","notifications_url":"https://api.github.com/repos/pytest-dev/pytest-qt/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/pytest-dev/pytest-qt/labels{/name}","releases_url":"https://api.github.com/repos/pytest-dev/pytest-qt/releases{/id}","deployments_url":"https://api.github.com/repos/pytest-dev/pytest-qt/deployments","created_at":"2013-02-26T23:33:46Z","updated_at":"2016-08-13T10:27:21Z","pushed_at":"2016-08-15T19:58:47Z","git_url":"git://github.com/pytest-dev/pytest-qt.git","ssh_url":"git@github.com:pytest-dev/pytest-qt.git","clone_url":"https://github.com/pytest-dev/pytest-qt.git","svn_url":"https://github.com/pytest-dev/pytest-qt","homepage":"","size":610,"stargazers_count":49,"watchers_count":49,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":17,"mirror_url":null,"open_issues_count":12,"forks":17,"open_issues":12,"watchers":49,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/pytest-dev/pytest-qt/pulls/153"},"html":{"href":"https://github.com/pytest-dev/pytest-qt/pull/153"},"issue":{"href":"https://api.github.com/repos/pytest-dev/pytest-qt/issues/153"},"comments":{"href":"https://api.github.com/repos/pytest-dev/pytest-qt/issues/153/comments"},"review_comments":{"href":"https://api.github.com/repos/pytest-dev/pytest-qt/pulls/153/comments"},"review_comment":{"href":"https://api.github.com/repos/pytest-dev/pytest-qt/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/pytest-dev/pytest-qt/pulls/153/commits"},"statuses":{"href":"https://api.github.com/repos/pytest-dev/pytest-qt/statuses/231626177c775dee3eb9eacbbc6d05c475bd86cd"}}}}
{"actor":{"display_login":"nicoddemus"}}