{"action":"created","issue":{"url":"https://api.github.com/repos/enthought/sat-solver/issues/101","labels_url":"https://api.github.com/repos/enthought/sat-solver/issues/101/labels{/name}","comments_url":"https://api.github.com/repos/enthought/sat-solver/issues/101/comments","events_url":"https://api.github.com/repos/enthought/sat-solver/issues/101/events","html_url":"https://github.com/enthought/sat-solver/pull/101","id":124238529,"number":101,"title":"Show an error message on failure.","user":{"login":"johntyree","id":108972,"avatar_url":"https://avatars.githubusercontent.com/u/108972?v=3","gravatar_id":"","url":"https://api.github.com/users/johntyree","html_url":"https://github.com/johntyree","followers_url":"https://api.github.com/users/johntyree/followers","following_url":"https://api.github.com/users/johntyree/following{/other_user}","gists_url":"https://api.github.com/users/johntyree/gists{/gist_id}","starred_url":"https://api.github.com/users/johntyree/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/johntyree/subscriptions","organizations_url":"https://api.github.com/users/johntyree/orgs","repos_url":"https://api.github.com/users/johntyree/repos","events_url":"https://api.github.com/users/johntyree/events{/privacy}","received_events_url":"https://api.github.com/users/johntyree/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":9,"created_at":"2015-12-29T16:59:56Z","updated_at":"2016-01-30T03:14:23Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/enthought/sat-solver/pulls/101","html_url":"https://github.com/enthought/sat-solver/pull/101","diff_url":"https://github.com/enthought/sat-solver/pull/101.diff","patch_url":"https://github.com/enthought/sat-solver/pull/101.patch"},"body":"This is the first iteration of error reporting for failed scenarios. Most of the effort has been spent trying to make sure we can quickly grab references to the important conflicting clauses as well as the rules and requirements associated with them.\r\n\r\nThe error is represented as a new class `UNSAT`, which carries along with it the conflicting clause, the set of most recent literal assignments and the clauses that forced them, some helper functions to try to extract information from those clauses and a \"default\" informative string building function.\r\n\r\nNo work has been done to make any of it read nicely."},"comment":{"url":"https://api.github.com/repos/enthought/sat-solver/issues/comments/177055772","html_url":"https://github.com/enthought/sat-solver/pull/101#issuecomment-177055772","issue_url":"https://api.github.com/repos/enthought/sat-solver/issues/101","id":177055772,"user":{"login":"johntyree","id":108972,"avatar_url":"https://avatars.githubusercontent.com/u/108972?v=3","gravatar_id":"","url":"https://api.github.com/users/johntyree","html_url":"https://github.com/johntyree","followers_url":"https://api.github.com/users/johntyree/followers","following_url":"https://api.github.com/users/johntyree/following{/other_user}","gists_url":"https://api.github.com/users/johntyree/gists{/gist_id}","starred_url":"https://api.github.com/users/johntyree/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/johntyree/subscriptions","organizations_url":"https://api.github.com/users/johntyree/orgs","repos_url":"https://api.github.com/users/johntyree/repos","events_url":"https://api.github.com/users/johntyree/events{/privacy}","received_events_url":"https://api.github.com/users/johntyree/received_events","type":"User","site_admin":false},"created_at":"2016-01-30T03:14:23Z","updated_at":"2016-01-30T03:14:23Z","body":"@cournape I wasn't sure about the best way to test the UNSAT object without recreating an entire scenario, so what I've done instead is made the scenario files specify exactly how they fail. Now for an unsatisfiable scenario to pass, the UNSAT object must have the correct requirements in the correct order and must produce an exactly matched string.\r\n\r\nThe exact string match might not be useful while we're still hammering out how error messages will be dealt with, particularly since it's based on the default `__str__` of the conflicting rules and requirements, but this will at least raise a red flag every time something happens that changes it."}}