This repository has been archived by the owner on Dec 11, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 35
/
Copy pathtest_Direct_Metadata.py
85 lines (76 loc) · 4.52 KB
/
test_Direct_Metadata.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
from email.message import Message
import os
import tempfile
from tests.BaseTestClasses import Email2PDFTestCase
class Direct_Metadata(Email2PDFTestCase):
def setUp(self):
super(Direct_Metadata, self).setUp()
self.msg = Message()
def test_metadata(self):
self.addHeaders()
error = self.invokeDirectly()
self.assertEqual('', error)
timedFilename = self.getTimedFilename()
self.assertTrue(os.path.exists(timedFilename))
self.assertEqual(Email2PDFTestCase.DEFAULT_FROM, self.getMetadataField(timedFilename, "Author"))
self.assertEqual(Email2PDFTestCase.DEFAULT_TO, self.getMetadataField(timedFilename, "X-email2pdf-To"))
self.assertEqual(Email2PDFTestCase.DEFAULT_SUBJECT, self.getMetadataField(timedFilename, "Title"))
self.assertEqual("email2pdf", self.getMetadataField(timedFilename, "Producer"))
self.assertFalse(self.existsByTimeWarning())
self.assertFalse(self.existsByTimeOriginal())
def test_plaincontent_metadata(self):
self.addHeaders()
self.setPlainContent("Hello!")
path = os.path.join(self.examineDir, "plaincontent_metadata.pdf")
error = self.invokeDirectly(outputFile=path)
self.assertEqual('', error)
self.assertTrue(os.path.exists(path))
self.assertEqual(Email2PDFTestCase.DEFAULT_FROM, self.getMetadataField(path, "Author"))
self.assertEqual(Email2PDFTestCase.DEFAULT_TO, self.getMetadataField(path, "X-email2pdf-To"))
self.assertEqual(Email2PDFTestCase.DEFAULT_SUBJECT, self.getMetadataField(path, "Title"))
self.assertEqual("email2pdf", self.getMetadataField(path, "Producer"))
self.assertRegex(self.getPDFText(path), "Hello!")
self.assertFalse(self.existsByTimeWarning())
self.assertFalse(self.existsByTimeOriginal())
def test_plaincontent_metadata_differentmount(self):
self.addHeaders()
self.setPlainContent("Hello!")
with tempfile.TemporaryDirectory(dir='/var/tmp') as tempdir:
if(self.find_mount_point(tempdir) != self.find_mount_point(tempfile.tempdir)):
path = os.path.join(tempdir, "plaincontent_metadata_differentmount.pdf")
error = self.invokeDirectly(outputFile=path)
self.assertEqual('', error)
self.assertTrue(os.path.exists(path))
self.assertEqual(Email2PDFTestCase.DEFAULT_FROM, self.getMetadataField(path, "Author"))
self.assertEqual(Email2PDFTestCase.DEFAULT_TO, self.getMetadataField(path, "X-email2pdf-To"))
self.assertEqual(Email2PDFTestCase.DEFAULT_SUBJECT, self.getMetadataField(path, "Title"))
self.assertEqual("email2pdf", self.getMetadataField(path, "Producer"))
self.assertFalse(self.existsByTimeWarning())
self.assertFalse(self.existsByTimeOriginal())
else:
self.skipTest(tempdir + " and " + tempfile.tempdir + " are on the same mountpoint, test not relevant.")
def test_noheaders_metadata(self):
self.setPlainContent("Hello!")
path = os.path.join(self.examineDir, "plaincontent_noheaders_metadata.pdf")
error = self.invokeDirectly(outputFile=path)
self.assertEqual('', error)
self.assertTrue(os.path.exists(path))
self.assertIsNone(self.getMetadataField(path, "Author"))
self.assertIsNone(self.getMetadataField(path, "X-email2pdf-To"))
self.assertEqual('', self.getMetadataField(path, "Title"))
self.assertEqual("email2pdf", self.getMetadataField(path, "Producer"))
self.assertRegex(self.getPDFText(path), "Hello!")
self.assertFalse(self.existsByTimeWarning())
self.assertFalse(self.existsByTimeOriginal())
def test_metadata_internationalised_subject(self):
self.addHeaders(subject=bytes("Hello!", 'iso-8859-1'), subject_encoding='iso-8859-1')
error = self.invokeDirectly()
self.assertEqual('', error)
timedFilename = self.getTimedFilename()
self.assertTrue(os.path.exists(timedFilename))
self.assertEqual(Email2PDFTestCase.DEFAULT_FROM, self.getMetadataField(timedFilename, "Author"))
self.assertEqual(Email2PDFTestCase.DEFAULT_TO, self.getMetadataField(timedFilename, "X-email2pdf-To"))
self.assertEqual("Hello!", self.getMetadataField(timedFilename, "Title"))
self.assertEqual("email2pdf", self.getMetadataField(timedFilename, "Producer"))
self.assertFalse(self.existsByTimeWarning())
self.assertFalse(self.existsByTimeOriginal())