コード例 #1
0
ファイル: test_mbox.py プロジェクト: shongoku/perceval
    def test_parse_mbox(self):
        """Test whether it parses a mbox file"""

        messages = MBox.parse_mbox(self.files['single'])
        result = [msg for msg in messages]

        self.assertEqual(len(result), 1)

        message = {k: v for k, v in result[0].items()}

        expected = {
            'From': 'goran at domain.com ( Göran Lastname )',
            'Date': 'Wed, 01 Dec 2010 14:26:40 +0100',
            'Subject': '[List-name] Protocol Buffers anyone?',
            'Message-ID': '<*****@*****.**>',
            'unixfrom': 'goran at domain.com  Wed Dec  1 08:26:40 2010',
            'body': {
                'plain':
                "Hi!\n\nA message in English, with a signature "
                "with a different encoding.\n\nregards, G?ran"
                "\n\n\n",
            }
        }

        self.assertDictEqual(message, expected)
コード例 #2
0
ファイル: test_mbox.py プロジェクト: acs/perceval
    def test_parse_unknown_encoding_mbox(self):
        """Check whether it parses a mbox that contains an unknown encoding"""

        messages = MBox.parse_mbox(self.files["unknown"])
        result = [msg for msg in messages]

        self.assertEqual(len(result), 1)
        self.assertEqual(result[0]["From"], '"\udcc3\udc94\udcc2\udcac\udcc2\udcb4\udcc3\udc8f" <*****@*****.**>')
コード例 #3
0
ファイル: test_mbox.py プロジェクト: shongoku/perceval
    def test_parse_unknown_encoding_mbox(self):
        """Check whether it parses a mbox that contains an unknown encoding"""

        messages = MBox.parse_mbox(self.files['unknown'])
        result = [msg for msg in messages]

        self.assertEqual(len(result), 1)
        self.assertEqual(
            result[0]['From'],
            '"\udcc3\udc94\udcc2\udcac\udcc2\udcb4\udcc3\udc8f" <*****@*****.**>'
        )
コード例 #4
0
ファイル: test_mbox.py プロジェクト: shongoku/perceval
    def test_parse_complex_mbox(self):
        """Test whether it parses a complex mbox file"""

        messages = MBox.parse_mbox(self.files['complex'])
        result = [msg for msg in messages]

        self.assertEqual(len(result), 2)

        m0 = {k: v for k, v in result[0].items()}
        self.assertEqual(len(m0.keys()), 34)
        self.assertEqual(m0['Message-ID'],
                         '<*****@*****.**>')
        self.assertEqual(m0['Date'], 'Wed, 22 Sep 2004 02:03:40 -0700')
        self.assertEqual(m0['From'],
                         '"Eugenia Loli-Queru" <*****@*****.**>')
        self.assertEqual(
            m0['To'],
            '<*****@*****.**>, <*****@*****.**>')
        self.assertEqual(m0['Cc'], None)
        self.assertEqual(m0['Subject'], 'Re: Revisiting the Gnome Bindings')
        self.assertEqual(m0['unixfrom'],
                         '[email protected]  Wed Sep 22 05:05:28 2004')

        expected_body = {
            'plain':
            ">I don't think it's fair to blame the Foundation [...]\n"
            ">of packaging since it's really not (just) a case [...]\n"
            ">marketing.\n\n"
            "No matter what is really to blame, it ultimately [...]\n\n"
            "[...]\n\n"
            "Rgds,\n"
            "Eugenia\n"
        }
        self.assertDictEqual(m0['body'], expected_body)

        m1 = {k: v for k, v in result[1].items()}
        self.assertEqual(len(m1.keys()), 35)
        self.assertEqual(m1['Message-ID'], '<*****@*****.**>')
        self.assertEqual(m1['Date'], 'Mon, 17 Mar 2008 10:35:05 +0100')
        self.assertEqual(m1['From'], '[email protected] (Danilo  Šegan )')
        self.assertEqual(m1['To'],
                         'Simos Xenitellis <*****@*****.**>')
        self.assertEqual(
            m1['Cc'], '[email protected], '
            '"Nikolay V. Shmyrev" <*****@*****.**>,\n\t'
            'Brian Nitz <*****@*****.**>, '
            'Bastien Nocera <*****@*****.**>')
        self.assertEqual(m1['Subject'], 'Re: Low memory hacks')
        self.assertEqual(
            m1['unixfrom'],
            '[email protected]  Mon Mar 17 09:35:25 2008')
コード例 #5
0
ファイル: test_mbox.py プロジェクト: acs/perceval
    def test_parse_multipart_mbox(self):
        """Test if it parses a message with a multipart body"""

        messages = MBox.parse_mbox(self.files["multipart"])
        result = [msg for msg in messages]

        self.assertEqual(len(result), 2)

        # Multipart message
        plain_body = result[0]["body"]["plain"]
        html_body = result[0]["body"]["html"]
        self.assertEqual(
            plain_body,
            "technology.esl Committers,\n\n"
            "This automatically generated message marks the successful completion of\n"
            "voting for Chuwei Huang to receive full Committer status on the\n"
            "technology.esl project. The next step is for the PMC to approve this vote,\n"
            "followed by the EMO processing the paperwork and provisioning the account.\n\n\n\n"
            "Vote summary: 4/0/0 with 0 not voting\n\n"
            "  +1  Thomas Guiu\n\n"
            "  +1  Jin Liu\n\n"
            "  +1  Yves YANG\n\n"
            "  +1  Bo Zhou\n\n\n\n"
            "If you have any questions, please do not hesitate to contact your project\n"
            "lead, PMC member, or the EMO <*****@*****.**>\n\n\n\n\n\n",
        )
        self.assertEqual(len(html_body), 3103)

        # Multipart message without defined encoding
        plain_body = result[1]["body"]["plain"]
        html_body = result[1]["body"]["html"]
        self.assertEqual(
            plain_body,
            "I am fairly new to eclipse. I am evaluating the use of eclipse for a generic\n"
            "UI framework that is not necessarily related to code generation.\n"
            "Eclipse is very flexible and adding functionality seems straightforward. I\n"
            "can still use the project concept for what I need but there are things in\n"
            "the Workbench window that I don't want. For example the Open perspective\n"
            "icon, or some of the menus, like the Windows and project menu .\n\n"
            "I understand that by using retargetable actions I can have my view taking\n"
            "over most of the actions, but I could not figure out how to block the core\n"
            "plug-in to put their own actions. In the workbench plug-in (org.eclipse.ui)\n"
            "I could not find where menus are defined and where actionsviews for all\n"
            "generic toolbars are defined.\n\nHow do I do this?\nCan this be done?\n"
            "Is anybody using eclipse as a generic UI framework?\n\nI appreciate any help.\n\n"
            "Thanks,\n\nDaniel Nehren\n\n",
        )
        self.assertEqual(len(html_body), 1557)
コード例 #6
0
ファイル: test_mbox.py プロジェクト: shongoku/perceval
    def test_parse_multipart_mbox(self):
        """Test if it parses a message with a multipart body"""

        messages = MBox.parse_mbox(self.files['multipart'])
        result = [msg for msg in messages]

        self.assertEqual(len(result), 2)

        # Multipart message
        plain_body = result[0]['body']['plain']
        html_body = result[0]['body']['html']
        self.assertEqual(
            plain_body, 'technology.esl Committers,\n\n'
            'This automatically generated message marks the successful completion of\n'
            'voting for Chuwei Huang to receive full Committer status on the\n'
            'technology.esl project. The next step is for the PMC to approve this vote,\n'
            'followed by the EMO processing the paperwork and provisioning the account.\n\n\n\n'
            'Vote summary: 4/0/0 with 0 not voting\n\n'
            '  +1  Thomas Guiu\n\n'
            '  +1  Jin Liu\n\n'
            '  +1  Yves YANG\n\n'
            '  +1  Bo Zhou\n\n\n\n'
            'If you have any questions, please do not hesitate to contact your project\n'
            'lead, PMC member, or the EMO <*****@*****.**>\n\n\n\n\n\n')
        self.assertEqual(len(html_body), 3103)

        # Multipart message without defined encoding
        plain_body = result[1]['body']['plain']
        html_body = result[1]['body']['html']
        self.assertEqual(
            plain_body,
            'I am fairly new to eclipse. I am evaluating the use of eclipse for a generic\n'
            'UI framework that is not necessarily related to code generation.\n'
            'Eclipse is very flexible and adding functionality seems straightforward. I\n'
            'can still use the project concept for what I need but there are things in\n'
            'the Workbench window that I don\'t want. For example the Open perspective\n'
            'icon, or some of the menus, like the Windows and project menu .\n\n'
            'I understand that by using retargetable actions I can have my view taking\n'
            'over most of the actions, but I could not figure out how to block the core\n'
            'plug-in to put their own actions. In the workbench plug-in (org.eclipse.ui)\n'
            'I could not find where menus are defined and where actionsviews for all\n'
            'generic toolbars are defined.\n\nHow do I do this?\nCan this be done?\n'
            'Is anybody using eclipse as a generic UI framework?\n\nI appreciate any help.\n\n'
            'Thanks,\n\nDaniel Nehren\n\n')
        self.assertEqual(len(html_body), 1557)
コード例 #7
0
ファイル: test_mbox.py プロジェクト: acs/perceval
    def test_parse_complex_mbox(self):
        """Test whether it parses a complex mbox file"""

        messages = MBox.parse_mbox(self.files["complex"])
        result = [msg for msg in messages]

        self.assertEqual(len(result), 2)

        m0 = {k: v for k, v in result[0].items()}
        self.assertEqual(len(m0.keys()), 34)
        self.assertEqual(m0["Message-ID"], "<*****@*****.**>")
        self.assertEqual(m0["Date"], "Wed, 22 Sep 2004 02:03:40 -0700")
        self.assertEqual(m0["From"], '"Eugenia Loli-Queru" <*****@*****.**>')
        self.assertEqual(m0["To"], "<*****@*****.**>, <*****@*****.**>")
        self.assertEqual(m0["Cc"], None)
        self.assertEqual(m0["Subject"], "Re: Revisiting the Gnome Bindings")
        self.assertEqual(m0["unixfrom"], "[email protected]  Wed Sep 22 05:05:28 2004")

        expected_body = {
            "plain": ">I don't think it's fair to blame the Foundation [...]\n"
            ">of packaging since it's really not (just) a case [...]\n"
            ">marketing.\n\n"
            "No matter what is really to blame, it ultimately [...]\n\n"
            "[...]\n\n"
            "Rgds,\n"
            "Eugenia\n"
        }
        self.assertDictEqual(m0["body"], expected_body)

        m1 = {k: v for k, v in result[1].items()}
        self.assertEqual(len(m1.keys()), 35)
        self.assertEqual(m1["Message-ID"], "<*****@*****.**>")
        self.assertEqual(m1["Date"], "Mon, 17 Mar 2008 10:35:05 +0100")
        self.assertEqual(m1["From"], "[email protected] (Danilo  Šegan )")
        self.assertEqual(m1["To"], "Simos Xenitellis <*****@*****.**>")
        self.assertEqual(
            m1["Cc"],
            "[email protected], "
            '"Nikolay V. Shmyrev" <*****@*****.**>,\n\t'
            "Brian Nitz <*****@*****.**>, "
            "Bastien Nocera <*****@*****.**>",
        )
        self.assertEqual(m1["Subject"], "Re: Low memory hacks")
        self.assertEqual(m1["unixfrom"], "[email protected]  Mon Mar 17 09:35:25 2008")
コード例 #8
0
ファイル: test_mbox.py プロジェクト: albertinisg/perceval
    def test_parse_mbox(self):
        """Test whether it parses a mbox file"""

        messages = MBox.parse_mbox(self.files['single'])
        result = [msg for msg in messages]

        self.assertEqual(len(result), 1)

        message = {k: v for k,v in result[0].items()}

        expected = {
                    'From' : 'goran at domain.com ( Göran Lastname )',
                    'Date' : 'Wed, 01 Dec 2010 14:26:40 +0100',
                    'Subject' : '[List-name] Protocol Buffers anyone?',
                    'Message-ID' : '<*****@*****.**>',
                    'unixfrom' : 'goran at domain.com  Wed Dec  1 08:26:40 2010',
                    'body': {
                             'plain' : "Hi!\n\nA message in English, with a signature "
                                       "with a different encoding.\n\nregards, G?ran"
                                       "\n\n\n",
                            }
                    }

        self.assertDictEqual(message, expected)
コード例 #9
0
ファイル: test_mbox.py プロジェクト: acs/perceval
    def test_parse_mbox(self):
        """Test whether it parses a mbox file"""

        messages = MBox.parse_mbox(self.files["single"])
        result = [msg for msg in messages]

        self.assertEqual(len(result), 1)

        message = {k: v for k, v in result[0].items()}

        expected = {
            "From": "goran at domain.com ( Göran Lastname )",
            "Date": "Wed, 01 Dec 2010 14:26:40 +0100",
            "Subject": "[List-name] Protocol Buffers anyone?",
            "Message-ID": "<*****@*****.**>",
            "unixfrom": "goran at domain.com  Wed Dec  1 08:26:40 2010",
            "body": {
                "plain": "Hi!\n\nA message in English, with a signature "
                "with a different encoding.\n\nregards, G?ran"
                "\n\n\n"
            },
        }

        self.assertDictEqual(message, expected)