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))