Mercurial > p > roundup > code
comparison test/test_mailgw.py @ 4503:9f488541802f
Yet another fix to the mail gateway...
...messages got *all* files of an issue, not just the new ones. Thanks
to Rafal Bisingier for reporting and proposing a fix. The regression
test was updated. Fix version numbers in upgrade documentation, the
file-unlink defect was in 1.4.17 not 1.4.16. Thanks to Rafal
Bisingier.
| author | Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net> |
|---|---|
| date | Wed, 01 Jun 2011 12:49:47 +0000 |
| parents | 8df9492c2746 |
| children | a00e0e73bb26 |
comparison
equal
deleted
inserted
replaced
| 4502:4b79cf4bd831 | 4503:9f488541802f |
|---|---|
| 623 self.assertEqual(f.name, names.get (n, 'unnamed')) | 623 self.assertEqual(f.name, names.get (n, 'unnamed')) |
| 624 if n in content : | 624 if n in content : |
| 625 self.assertEqual(f.content, content [n]) | 625 self.assertEqual(f.content, content [n]) |
| 626 self.assertEqual(msg.content, 'test attachment second text/plain') | 626 self.assertEqual(msg.content, 'test attachment second text/plain') |
| 627 | 627 |
| 628 def testMultipartSeveralAttachmentMessages(self): | |
| 629 self.doNewIssue() | |
| 630 self._handle_mail(self.multipart_msg) | |
| 631 messages = self.db.issue.get('1', 'messages') | |
| 632 messages.sort() | |
| 633 self.assertEqual(messages[-1], '2') | |
| 634 msg = self.db.msg.getnode (messages[-1]) | |
| 635 self.assertEqual(len(msg.files), 5) | |
| 636 issue = self.db.issue.getnode ('1') | |
| 637 self.assertEqual(len(issue.files), 5) | |
| 638 names = {0 : 'first.dvi', 4 : 'second.dvi'} | |
| 639 content = {3 : 'test attachment third text/plain\n', | |
| 640 4 : 'Just a test\n'} | |
| 641 for n, id in enumerate (msg.files): | |
| 642 f = self.db.file.getnode (id) | |
| 643 self.assertEqual(f.name, names.get (n, 'unnamed')) | |
| 644 if n in content : | |
| 645 self.assertEqual(f.content, content [n]) | |
| 646 self.assertEqual(msg.content, 'test attachment second text/plain') | |
| 647 self.assertEqual(msg.files, ['1', '2', '3', '4', '5']) | |
| 648 self.assertEqual(issue.files, ['1', '2', '3', '4', '5']) | |
| 649 | |
| 650 self._handle_mail(self.multipart_msg) | |
| 651 issue = self.db.issue.getnode ('1') | |
| 652 self.assertEqual(len(issue.files), 10) | |
| 653 messages = self.db.issue.get('1', 'messages') | |
| 654 messages.sort() | |
| 655 self.assertEqual(messages[-1], '3') | |
| 656 msg = self.db.msg.getnode (messages[-1]) | |
| 657 self.assertEqual(issue.files, [str(i+1) for i in range(10)]) | |
| 658 self.assertEqual(msg.files, ['6', '7', '8', '9', '10']) | |
| 659 | |
| 628 def testMultipartKeepFiles(self): | 660 def testMultipartKeepFiles(self): |
| 629 self.doNewIssue() | 661 self.doNewIssue() |
| 630 self._handle_mail(self.multipart_msg) | 662 self._handle_mail(self.multipart_msg) |
| 631 messages = self.db.issue.get('1', 'messages') | 663 messages = self.db.issue.get('1', 'messages') |
| 632 messages.sort() | 664 messages.sort() |
| 633 msg = self.db.msg.getnode (messages[-1]) | 665 msg = self.db.msg.getnode (messages[-1]) |
| 634 assert(len(msg.files) == 5) | 666 self.assertEqual(len(msg.files), 5) |
| 635 issue = self.db.issue.getnode ('1') | 667 issue = self.db.issue.getnode ('1') |
| 636 assert(len(issue.files) == 5) | 668 self.assertEqual(len(issue.files), 5) |
| 637 names = {0 : 'first.dvi', 4 : 'second.dvi'} | 669 names = {0 : 'first.dvi', 4 : 'second.dvi'} |
| 638 content = {3 : 'test attachment third text/plain\n', | 670 content = {3 : 'test attachment third text/plain\n', |
| 639 4 : 'Just a test\n'} | 671 4 : 'Just a test\n'} |
| 640 for n, id in enumerate (msg.files): | 672 for n, id in enumerate (msg.files): |
| 641 f = self.db.file.getnode (id) | 673 f = self.db.file.getnode (id) |
| 650 Subject: [issue1] Testing... | 682 Subject: [issue1] Testing... |
| 651 | 683 |
| 652 This ist a message without attachment | 684 This ist a message without attachment |
| 653 ''') | 685 ''') |
| 654 issue = self.db.issue.getnode ('1') | 686 issue = self.db.issue.getnode ('1') |
| 655 assert(len(issue.files) == 5) | 687 self.assertEqual(len(issue.files), 5) |
| 656 self.assertEqual(issue.files, ['1', '2', '3', '4', '5']) | 688 self.assertEqual(issue.files, ['1', '2', '3', '4', '5']) |
| 657 | 689 |
| 658 def testMultipartDropAlternatives(self): | 690 def testMultipartDropAlternatives(self): |
| 659 self.doNewIssue() | 691 self.doNewIssue() |
| 660 self.db.config.MAILGW_IGNORE_ALTERNATIVES = True | 692 self.db.config.MAILGW_IGNORE_ALTERNATIVES = True |
| 661 self._handle_mail(self.multipart_msg) | 693 self._handle_mail(self.multipart_msg) |
| 662 messages = self.db.issue.get('1', 'messages') | 694 messages = self.db.issue.get('1', 'messages') |
| 663 messages.sort() | 695 messages.sort() |
| 664 msg = self.db.msg.getnode (messages[-1]) | 696 msg = self.db.msg.getnode (messages[-1]) |
| 665 assert(len(msg.files) == 2) | 697 self.assertEqual(len(msg.files), 2) |
| 666 names = {1 : 'second.dvi'} | 698 names = {1 : 'second.dvi'} |
| 667 content = {0 : 'test attachment third text/plain\n', | 699 content = {0 : 'test attachment third text/plain\n', |
| 668 1 : 'Just a test\n'} | 700 1 : 'Just a test\n'} |
| 669 for n, id in enumerate (msg.files): | 701 for n, id in enumerate (msg.files): |
| 670 f = self.db.file.getnode (id) | 702 f = self.db.file.getnode (id) |
| 679 self.db.config.NOSY_MAX_ATTACHMENT_SIZE = 0 | 711 self.db.config.NOSY_MAX_ATTACHMENT_SIZE = 0 |
| 680 self._handle_mail(self.multipart_msg_latin1) | 712 self._handle_mail(self.multipart_msg_latin1) |
| 681 messages = self.db.issue.get('1', 'messages') | 713 messages = self.db.issue.get('1', 'messages') |
| 682 messages.sort() | 714 messages.sort() |
| 683 msg = self.db.msg.getnode (messages[-1]) | 715 msg = self.db.msg.getnode (messages[-1]) |
| 684 assert(len(msg.files) == 1) | 716 self.assertEqual(len(msg.files), 1) |
| 685 name = 'unnamed' | 717 name = 'unnamed' |
| 686 content = '<html>' + c + '</html>\n' | 718 content = '<html>' + c + '</html>\n' |
| 687 for n, id in enumerate (msg.files): | 719 for n, id in enumerate (msg.files): |
| 688 f = self.db.file.getnode (id) | 720 f = self.db.file.getnode (id) |
| 689 self.assertEqual(f.name, name) | 721 self.assertEqual(f.name, name) |
| 730 self.db.config.MAIL_CHARSET = 'iso-8859-1' | 762 self.db.config.MAIL_CHARSET = 'iso-8859-1' |
| 731 self._handle_mail(self.multipart_msg_latin1) | 763 self._handle_mail(self.multipart_msg_latin1) |
| 732 messages = self.db.issue.get('1', 'messages') | 764 messages = self.db.issue.get('1', 'messages') |
| 733 messages.sort() | 765 messages.sort() |
| 734 msg = self.db.msg.getnode (messages[-1]) | 766 msg = self.db.msg.getnode (messages[-1]) |
| 735 assert(len(msg.files) == 1) | 767 self.assertEqual(len(msg.files), 1) |
| 736 name = 'unnamed' | 768 name = 'unnamed' |
| 737 content = '<html>' + c + '</html>\n' | 769 content = '<html>' + c + '</html>\n' |
| 738 for n, id in enumerate (msg.files): | 770 for n, id in enumerate (msg.files): |
| 739 f = self.db.file.getnode (id) | 771 f = self.db.file.getnode (id) |
| 740 self.assertEqual(f.name, name) | 772 self.assertEqual(f.name, name) |
| 779 self.doNewIssue() | 811 self.doNewIssue() |
| 780 self._handle_mail(self.multipart_msg_latin1) | 812 self._handle_mail(self.multipart_msg_latin1) |
| 781 messages = self.db.issue.get('1', 'messages') | 813 messages = self.db.issue.get('1', 'messages') |
| 782 messages.sort() | 814 messages.sort() |
| 783 msg = self.db.msg.getnode (messages[-1]) | 815 msg = self.db.msg.getnode (messages[-1]) |
| 784 assert(len(msg.files) == 1) | 816 self.assertEqual(len(msg.files), 1) |
| 785 name = 'unnamed' | 817 name = 'unnamed' |
| 786 content = '<html>' + c + '</html>\n' | 818 content = '<html>' + c + '</html>\n' |
| 787 for n, id in enumerate (msg.files): | 819 for n, id in enumerate (msg.files): |
| 788 f = self.db.file.getnode (id) | 820 f = self.db.file.getnode (id) |
| 789 self.assertEqual(f.name, name) | 821 self.assertEqual(f.name, name) |
| 843 self.db.config.MAIL_CHARSET = 'iso-8859-1' | 875 self.db.config.MAIL_CHARSET = 'iso-8859-1' |
| 844 self._handle_mail(self.multipart_msg_latin1) | 876 self._handle_mail(self.multipart_msg_latin1) |
| 845 messages = self.db.issue.get('1', 'messages') | 877 messages = self.db.issue.get('1', 'messages') |
| 846 messages.sort() | 878 messages.sort() |
| 847 msg = self.db.msg.getnode (messages[-1]) | 879 msg = self.db.msg.getnode (messages[-1]) |
| 848 assert(len(msg.files) == 1) | 880 self.assertEqual(len(msg.files), 1) |
| 849 name = 'unnamed' | 881 name = 'unnamed' |
| 850 content = '<html>' + c + '</html>\n' | 882 content = '<html>' + c + '</html>\n' |
| 851 for n, id in enumerate (msg.files): | 883 for n, id in enumerate (msg.files): |
| 852 f = self.db.file.getnode (id) | 884 f = self.db.file.getnode (id) |
| 853 self.assertEqual(f.name, name) | 885 self.assertEqual(f.name, name) |
| 905 self.doNewIssue() | 937 self.doNewIssue() |
| 906 self._handle_mail(self.multipart_msg_rfc822) | 938 self._handle_mail(self.multipart_msg_rfc822) |
| 907 messages = self.db.issue.get('1', 'messages') | 939 messages = self.db.issue.get('1', 'messages') |
| 908 messages.sort() | 940 messages.sort() |
| 909 msg = self.db.msg.getnode (messages[-1]) | 941 msg = self.db.msg.getnode (messages[-1]) |
| 910 assert(len(msg.files) == 1) | 942 self.assertEqual(len(msg.files), 1) |
| 911 name = "Fwd: Original email subject.eml" | 943 name = "Fwd: Original email subject.eml" |
| 912 for n, id in enumerate (msg.files): | 944 for n, id in enumerate (msg.files): |
| 913 f = self.db.file.getnode (id) | 945 f = self.db.file.getnode (id) |
| 914 self.assertEqual(f.name, name) | 946 self.assertEqual(f.name, name) |
| 915 self.assertEqual(msg.content, 'First part: Text') | 947 self.assertEqual(msg.content, 'First part: Text') |
