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"

Roundup Issue Tracker: http://roundup-tracker.org/