{"action":"created","issue":{"url":"https://api.github.com/repos/cdent/gabbi/issues/108","labels_url":"https://api.github.com/repos/cdent/gabbi/issues/108/labels{/name}","comments_url":"https://api.github.com/repos/cdent/gabbi/issues/108/comments","events_url":"https://api.github.com/repos/cdent/gabbi/issues/108/events","html_url":"https://github.com/cdent/gabbi/issues/108","id":115059818,"number":108,"title":"Unable to express header not being present in response","user":{"login":"cdent","id":34498,"avatar_url":"https://avatars.githubusercontent.com/u/34498?v=3","gravatar_id":"","url":"https://api.github.com/users/cdent","html_url":"https://github.com/cdent","followers_url":"https://api.github.com/users/cdent/followers","following_url":"https://api.github.com/users/cdent/following{/other_user}","gists_url":"https://api.github.com/users/cdent/gists{/gist_id}","starred_url":"https://api.github.com/users/cdent/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cdent/subscriptions","organizations_url":"https://api.github.com/users/cdent/orgs","repos_url":"https://api.github.com/users/cdent/repos","events_url":"https://api.github.com/users/cdent/events{/privacy}","received_events_url":"https://api.github.com/users/cdent/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-11-04T14:14:05Z","updated_at":"2015-11-04T17:23:00Z","closed_at":null,"body":"When attempting to translate some python tests to gabbi I (@cdent) was unable to translate a test that was asserting that a particular header was _not_ present in the response.\r\n\r\nIt's currently impossible to make these kinds of negative assertions (not just of headers, but that's the case that came up) and it's likely we need to make it possible.\r\n\r\nSyntax is a confusing issue:\r\n\r\n* The current value for `response_headers` is a dict of key (header) value pairs. If we want to say \"this header is not present\" that doesn't fit in that structure.\r\n* If we want to express this thing (e.g. header) is present but does _not have value X_ that is semantically different from expressing not being present. We need to think about both when designing to avoid suboptimal grammar for both."},"comment":{"url":"https://api.github.com/repos/cdent/gabbi/issues/comments/153798293","html_url":"https://github.com/cdent/gabbi/issues/108#issuecomment-153798293","issue_url":"https://api.github.com/repos/cdent/gabbi/issues/108","id":153798293,"user":{"login":"jasonamyers","id":1222137,"avatar_url":"https://avatars.githubusercontent.com/u/1222137?v=3","gravatar_id":"","url":"https://api.github.com/users/jasonamyers","html_url":"https://github.com/jasonamyers","followers_url":"https://api.github.com/users/jasonamyers/followers","following_url":"https://api.github.com/users/jasonamyers/following{/other_user}","gists_url":"https://api.github.com/users/jasonamyers/gists{/gist_id}","starred_url":"https://api.github.com/users/jasonamyers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jasonamyers/subscriptions","organizations_url":"https://api.github.com/users/jasonamyers/orgs","repos_url":"https://api.github.com/users/jasonamyers/repos","events_url":"https://api.github.com/users/jasonamyers/events{/privacy}","received_events_url":"https://api.github.com/users/jasonamyers/received_events","type":"User","site_admin":false},"created_at":"2015-11-04T17:23:00Z","updated_at":"2015-11-04T17:23:00Z","body":"yeah negative_<item> reads very odd to me... but the new key for each thing will become very cumbersome to remember. today it's `response_header_not_preset` but future comparisons would need even more keys for all the combinations."}}