Mercurial > p > roundup > code
comparison test/test_mailgw.py @ 4575:c426cb251bc7
Be more tolerant when parsing RFC2047 encoded mail headers.
Use backported version of my proposed changes to
email.header.decode_header in http://bugs.python.org/issue1079
| author | Ralf Schlatterbeck <rsc@runtux.com> |
|---|---|
| date | Wed, 04 Jan 2012 18:55:49 +0100 |
| parents | 6e3e4f24c753 |
| children | ba4c632143f6 |
comparison
equal
deleted
inserted
replaced
| 4574:35adb3950a39 | 4575:c426cb251bc7 |
|---|---|
| 154 roundupdb._ = mailgw._ = self.old_translate_ | 154 roundupdb._ = mailgw._ = self.old_translate_ |
| 155 if os.path.exists(SENDMAILDEBUG): | 155 if os.path.exists(SENDMAILDEBUG): |
| 156 os.remove(SENDMAILDEBUG) | 156 os.remove(SENDMAILDEBUG) |
| 157 self.db.close() | 157 self.db.close() |
| 158 | 158 |
| 159 def _allowAnonymousSubmit(self): | |
| 160 p = [ | |
| 161 self.db.security.getPermission('Register', 'user'), | |
| 162 self.db.security.getPermission('Email Access', None), | |
| 163 self.db.security.getPermission('Create', 'issue'), | |
| 164 self.db.security.getPermission('Create', 'msg'), | |
| 165 ] | |
| 166 self.db.security.role['anonymous'].permissions = p | |
| 167 | |
| 159 def _create_mailgw(self, message, args=()): | 168 def _create_mailgw(self, message, args=()): |
| 160 class MailGW(self.instance.MailGW): | 169 class MailGW(self.instance.MailGW): |
| 161 def handle_message(self, message): | 170 def handle_message(self, message): |
| 162 return self._handle_message(message) | 171 return self._handle_message(message) |
| 163 handler = MailGW(self.instance, args) | 172 handler = MailGW(self.instance, args) |
| 1922 Message-Id: <dummy_test_message_id> | 1931 Message-Id: <dummy_test_message_id> |
| 1923 Subject: [issue] Testing... | 1932 Subject: [issue] Testing... |
| 1924 | 1933 |
| 1925 This is a test submission of a new issue. | 1934 This is a test submission of a new issue. |
| 1926 ''' | 1935 ''' |
| 1927 p = [ | 1936 self._allowAnonymousSubmit() |
| 1928 self.db.security.getPermission('Register', 'user'), | |
| 1929 self.db.security.getPermission('Email Access', None), | |
| 1930 self.db.security.getPermission('Create', 'issue'), | |
| 1931 self.db.security.getPermission('Create', 'msg'), | |
| 1932 ] | |
| 1933 self.db.security.role['anonymous'].permissions = p | |
| 1934 self._handle_mail(message) | 1937 self._handle_mail(message) |
| 1935 m = set(self.db.user.list()) | 1938 m = set(self.db.user.list()) |
| 1936 new = list(m - l)[0] | 1939 new = list(m - l)[0] |
| 1937 name = self.db.user.get(new, 'realname') | 1940 name = self.db.user.get(new, 'realname') |
| 1938 self.assertEquals(name, 'H€llo') | 1941 self.assertEquals(name, 'H€llo') |
| 1949 X1 | 1952 X1 |
| 1950 X2 | 1953 X2 |
| 1951 | 1954 |
| 1952 This is a test submission of a new issue. | 1955 This is a test submission of a new issue. |
| 1953 ''' | 1956 ''' |
| 1954 p = [ | 1957 self._allowAnonymousSubmit() |
| 1955 self.db.security.getPermission('Register', 'user'), | |
| 1956 self.db.security.getPermission('Email Access', None), | |
| 1957 self.db.security.getPermission('Create', 'issue'), | |
| 1958 self.db.security.getPermission('Create', 'msg'), | |
| 1959 ] | |
| 1960 self.db.security.role['anonymous'].permissions = p | |
| 1961 self._handle_mail(message) | 1958 self._handle_mail(message) |
| 1962 title = self.db.issue.get('1', 'title') | 1959 title = self.db.issue.get('1', 'title') |
| 1963 self.assertEquals(title, 'Test \xc3\x84\xc3\x96\xc3\x9c umlauts X1 X2') | 1960 self.assertEquals(title, 'Test \xc3\x84\xc3\x96\xc3\x9c umlauts X1 X2') |
| 1964 m = set(self.db.user.list()) | 1961 m = set(self.db.user.list()) |
| 1965 new = list(m - l)[0] | 1962 new = list(m - l)[0] |
| 1966 name = self.db.user.get(new, 'realname') | 1963 name = self.db.user.get(new, 'realname') |
| 1967 self.assertEquals(name, 'Firstname \xc3\xa4\xc3\xb6\xc3\x9f Last') | 1964 self.assertEquals(name, 'Firstname \xc3\xa4\xc3\xb6\xc3\x9f Last') |
| 1965 | |
| 1966 def testNewUserAuthorMixedEncodedNameSpacing(self): | |
| 1967 l = set(self.db.user.list()) | |
| 1968 # From: name has Euro symbol in it | |
| 1969 message = '''Content-Type: text/plain; | |
| 1970 charset="iso-8859-1" | |
| 1971 From: (=?utf-8?b?w6TDtsOf?==?utf-8?b?w6TDtsOf?=) <fubar@bork.bork.bork> | |
| 1972 To: issue_tracker@your.tracker.email.domain.example | |
| 1973 Message-Id: <dummy_test_message_id> | |
| 1974 Subject: [issue] Test (=?utf-8?b?w4TDlsOc?=) umlauts | |
| 1975 X1 | |
| 1976 | |
| 1977 This is a test submission of a new issue. | |
| 1978 ''' | |
| 1979 self._allowAnonymousSubmit() | |
| 1980 self._handle_mail(message) | |
| 1981 title = self.db.issue.get('1', 'title') | |
| 1982 self.assertEquals(title, 'Test (\xc3\x84\xc3\x96\xc3\x9c) umlauts X1') | |
| 1983 m = set(self.db.user.list()) | |
| 1984 new = list(m - l)[0] | |
| 1985 name = self.db.user.get(new, 'realname') | |
| 1986 self.assertEquals(name, | |
| 1987 '(\xc3\xa4\xc3\xb6\xc3\x9f\xc3\xa4\xc3\xb6\xc3\x9f)') | |
| 1968 | 1988 |
| 1969 def testUnknownUser(self): | 1989 def testUnknownUser(self): |
| 1970 l = set(self.db.user.list()) | 1990 l = set(self.db.user.list()) |
| 1971 message = '''Content-Type: text/plain; | 1991 message = '''Content-Type: text/plain; |
| 1972 charset="iso-8859-1" | 1992 charset="iso-8859-1" |
