def test_default_arguments_yield_all_headers(self): actual = utils.extract_headers(self.mail) # collect all lines until the first empty line, hence all header lines expected = [] for line in self.mailstring.splitlines(): if not line: break expected.append(line) expected = '\n'.join(expected) + '\n' self.assertEqual(actual, expected)
def test_header_values_are_not_decoded(self): actual = utils.extract_headers(self.mail, ['x-quoted']) expected = "x-quoted: param=utf-8''%C3%9Cmlaut; second=plain%C3%9C\n", self.assertEqual(actual, expected)
def test_case_is_prserved_in_header_keys_but_irelevant(self): headers = ['FROM', 'from'] actual = utils.extract_headers(self.mail, headers) expected = 'FROM: me\nfrom: me\n' self.assertEqual(actual, expected)
def test_headers_can_be_retrieved_multible_times(self): headers = ['from', 'from'] actual = utils.extract_headers(self.mail, headers) expected = 'from: me\nfrom: me\n' self.assertEqual(actual, expected)
def test_multible_headers_can_be_retrieved_in_predevined_order(self): headers = ['x-header', 'to', 'x-uppercase'] actual = utils.extract_headers(self.mail, headers) expected = 'x-header: param=one; and=two; or=three\nto: you\n' \ 'x-uppercase: PARAM1=ONE; PARAM2=TWO\n' self.assertEqual(actual, expected)
def test_single_headers_can_be_retrieved(self): actual = utils.extract_headers(self.mail, ['from']) expected = 'from: me\n' self.assertEqual(actual, expected)