def test_header_appears_in_next_request(self):
     key = "x-spam"
     value = "eggs"
     sut = HttpClient()
     sut.set_persistent_headers(**{key: value})
     sut.get("http://spam")
     expect(self.extract_request_headers()).to(contain_key_with_value(key, value))
 def test_specified_header_overrides_persistent(self):
     key = "page"
     value = "LIX"
     sut = HttpClient()
     sut.set_persistent_headers(**{key: "something-else"})
     sut.get("http://yadda", headers={key: value})
     expect(self.extract_request_headers()).to(contain_key_with_value(key, value))
 def test_setting_header_to_none_removes_it(self):
     key = "something"
     sut = HttpClient()
     sut.set_persistent_headers(**{key: "spam"})
     sut.set_persistent_headers(**{key: None})
     sut.get("http://albatross")
     expect(self.extract_request_headers().keys()).not_to(contain(key))
 def test_first_header_persists_after_adding_second(self):
     key = "x-spam"
     value = "eggs"
     sut = HttpClient()
     sut.set_persistent_headers(**{key: value})
     sut.set_persistent_headers(something="13")
     sut.get("http://spam")
     expect(self.extract_request_headers()).to(contain_key_with_value(key, value))
 def test_can_change_a_persistent_header(self):
     key = "thing"
     value = "new-value"
     sut = HttpClient()
     sut.set_persistent_headers(**{key: "old-value"})
     sut.set_persistent_headers(**{key: value})
     sut.get("http://things")
     expect(self.extract_request_headers()).to(contain_key_with_value(key, value))
 def test_enabling_cookies_does_not_break_this_feature(self):
     key = "spam"
     value = "eggs"
     sut = HttpClient()
     sut.enable_cookies()
     sut.set_persistent_headers(**{key: value})
     sut.get("http://something")
     spy = self.spy.session_spy.attribute_spies["prepare_request"]
     args, kwargs = spy.call_history[-1]
     request = args[0]
     expect(request.headers).to(contain_key_with_value(key, value))
 def test_also_sends_specified_headers(self):
     headers = {"spam": "eggs", "sausage": "beans", "x": "y"}
     sut = HttpClient()
     sut.set_persistent_headers(cardinal="ximinez", ordinal="biggles")
     sut.get("http://larch", headers=headers)
     expect(self.extract_request_headers()).to(contain_all_items_in(headers))
 def test_can_set_multiple_headers_in_one_call(self):
     headers = {"spam": "eggs", "sausage": "beans", "x": "y"}
     sut = HttpClient()
     sut.set_persistent_headers(**headers)
     sut.get("http://parrot")
     expect(self.extract_request_headers()).to(contain_all_items_in(headers))
 def test_setting_non_existent_header_to_none_has_no_effect(self):
     key = "yadda"
     sut = HttpClient()
     sut.set_persistent_headers(**{key: None})
     sut.get("http://albatross")
     expect(self.extract_request_headers().keys()).not_to(contain(key))