forked from archive/andrewferrier_email2pdf
Use freezegun to fix test_plaincontent_timedfileexist - closes #46
This commit is contained in:
parent
0430f122b7
commit
d6904a6b86
4 changed files with 45 additions and 19 deletions
|
@ -14,9 +14,13 @@ RUN apt-get update && apt-get install -y git build-essential \
|
|||
libxext6 \
|
||||
libxrender1 \
|
||||
python \
|
||||
python3-dateutil \
|
||||
python3-reportlab \
|
||||
wget
|
||||
WORKDIR /tmp
|
||||
RUN wget http://mirrors.kernel.org/ubuntu/pool/universe/p/pypdf2/python3-pypdf2_1.23+git20141008-1_all.deb && dpkg -i python3-pypdf2*.deb
|
||||
RUN wget http://mirrors.kernel.org/ubuntu/pool/universe/p/pypdf2/python3-pypdf2_1.23+git20141008-1_all.deb
|
||||
RUN wget http://mirrors.kernel.org/ubuntu/pool/universe/f/freezegun/python3-freezegun_0.1.18-1_all.deb
|
||||
RUN dpkg -i *.deb
|
||||
RUN wget -O wkhtmltox.deb 'http://sourceforge.net/projects/wkhtmltopdf/files/0.12.1/wkhtmltox-0.12.1_linux-trusty-amd64.deb/download?use_mirror=garr#' && dpkg -i wkhtmltox*.deb
|
||||
COPY . /tmp/email2pdf/
|
||||
COPY docker/email2pdf/getmail /etc/cron.d/
|
||||
|
|
16
README.md
16
README.md
|
@ -78,14 +78,20 @@ There is a code coverage target in the Makefile. You'll need to have the
|
|||
|
||||
* Install all the package dependencies listed in the
|
||||
[`control`](https://github.com/andrewferrier/email2pdf/blob/master/debian/DEBIAN/control)
|
||||
file. In addition, to run the unit tests, you will need to install
|
||||
`python3-reportlab` and `python3-pdfminer3k`. The second is not a standard
|
||||
Debian/Ubuntu package, but there is a supplied Makefile target which will
|
||||
create it for you using a Docker container - run `make buildpdfminer3k`.
|
||||
file. In addition, to run the unit tests, you will need to install:
|
||||
|
||||
* `python3-freezegun` - only available in Ubuntu 14.10 onwards - see
|
||||
http://packages.ubuntu.com/search?keywords=python3-freezegun.
|
||||
|
||||
* `python3-reportlab`
|
||||
|
||||
* `python3-pdfminer3k` (not a standard Debian/Ubuntu package, but there is a
|
||||
supplied Makefile target which will create it for you using a Docker
|
||||
container - run `make buildpdfminer3k`)
|
||||
|
||||
### OSX
|
||||
|
||||
* Install [Homebrew](http://brew.sh/)
|
||||
* `brew install python3`
|
||||
* `brew install libmagic`
|
||||
* `pip3 install reportlab python-magic pypdf2 beautifulsoup4 lxml pdfminer3k`
|
||||
* `pip3 install beautifulsoup4 freezegun lxml pdfminer3k pypdf2 python-magic reportlab`
|
||||
|
|
|
@ -152,19 +152,6 @@ class TestBasic(BaseTestClasses.Email2PDFTestCase):
|
|||
finally:
|
||||
os.unlink(f_path)
|
||||
|
||||
def test_plaincontent_timedfileexist(self):
|
||||
self.setPlainContent("Hello!")
|
||||
filename1 = self.getTimeStamp(datetime.now()) + ".pdf"
|
||||
filename2 = self.getTimeStamp(datetime.now()) + "_1.pdf"
|
||||
self.touch(os.path.join(self.workingDir, filename1))
|
||||
(rc, output, error) = self.invokeAsSubprocess()
|
||||
self.assertEqual(0, rc)
|
||||
self.assertEqual('', error)
|
||||
self.assertTrue(os.path.join(self.workingDir, filename1))
|
||||
self.assertTrue(os.path.join(self.workingDir, filename2))
|
||||
self.assertIsNone(self.getPDFText(os.path.join(self.workingDir, filename1)))
|
||||
self.assertRegex(self.getPDFText(os.path.join(self.workingDir, filename2)), "Hello!")
|
||||
|
||||
def test_verbose(self):
|
||||
self.setPlainContent("Hello!")
|
||||
(rc, output, error) = self.invokeAsSubprocess(extraParams=['-v'])
|
||||
|
|
29
tests/test_Direct_Complex.py
Normal file
29
tests/test_Direct_Complex.py
Normal file
|
@ -0,0 +1,29 @@
|
|||
from datetime import datetime
|
||||
from email.message import Message
|
||||
from freezegun import freeze_time
|
||||
|
||||
import os
|
||||
import tempfile
|
||||
|
||||
from tests import BaseTestClasses
|
||||
|
||||
|
||||
class Direct_Complex(BaseTestClasses.Email2PDFTestCase):
|
||||
def setUp(self):
|
||||
super(Direct_Complex, self).setUp()
|
||||
self.msg = Message()
|
||||
|
||||
@freeze_time("2015-02-03 14:00:00")
|
||||
def test_plaincontent_timedfileexist(self):
|
||||
self.setPlainContent("Hello!")
|
||||
filename1 = os.path.join(self.workingDir, self.getTimeStamp(datetime.now()) + ".pdf")
|
||||
filename2 = os.path.join(self.workingDir, self.getTimeStamp(datetime.now()) + "_1.pdf")
|
||||
self.touch(os.path.join(self.workingDir, filename1))
|
||||
self.assertTrue(os.path.exists(filename1))
|
||||
self.assertFalse(os.path.exists(filename2))
|
||||
error = self.invokeDirectly()
|
||||
self.assertEqual('', error)
|
||||
self.assertTrue(os.path.exists(filename1))
|
||||
self.assertTrue(os.path.exists(filename2))
|
||||
self.assertIsNone(self.getPDFText(filename1))
|
||||
self.assertRegex(self.getPDFText(filename2), "Hello!")
|
Loading…
Add table
Add a link
Reference in a new issue