Skip to content

Commit

Permalink
added some tests for travis
Browse files Browse the repository at this point in the history
  • Loading branch information
edsu committed Jan 7, 2017
1 parent 4d7d1fa commit 79e7c53
Show file tree
Hide file tree
Showing 7 changed files with 101 additions and 7 deletions.
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,7 @@
*.db
config.yaml
diffs/*
.cache
.eggs
test
diffengine.egg-info
13 changes: 13 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
python:
- '3.5'

language: python

install:
- python setup.py install

script:
- python setup.py test

after_failure:
- cat test/diffengine.log
26 changes: 19 additions & 7 deletions diffengine.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,9 +82,13 @@ def stale(self):
logging.debug("%s not stale (r=%f)", self.url, r)
return False

def get_latest(self):
def get_latest(self, force=False):
"""
Check to see if the entry has changed. If it has you'll get back
the EntryVersion for it.
"""

if not self.stale():
if not self.stale() and not force:
return

# make sure we don't go too fast
Expand Down Expand Up @@ -113,7 +117,7 @@ def get_latest(self):

# compare what we got against the latest version and create a
# new version if it looks different, or is brand new (no old version)
diff = None
new = None

if not old or old.title != title or old.summary != summary:
new = EntryVersion.create(
Expand All @@ -134,7 +138,7 @@ def get_latest(self):

self.checked = datetime.utcnow()
self.save()
return diff
return new

class Meta:
database = db
Expand All @@ -147,6 +151,14 @@ class EntryVersion(Model):
archive_url = CharField(null=True)
entry = ForeignKeyField(Entry, related_name='versions')

@property
def prev_diff(self):
return self.prev_diffs.get()

@property
def next_diff(self):
return self.next_diffs.get()

@property
def html(self):
return "<h1>%s</h1>\n\n%s" % (self.title, self.summary)
Expand All @@ -171,8 +183,8 @@ class Meta:


class Diff(Model):
old = ForeignKeyField(EntryVersion, related_name="prev_diff")
new = ForeignKeyField(EntryVersion, related_name="next_diff")
old = ForeignKeyField(EntryVersion, related_name="prev_diffs")
new = ForeignKeyField(EntryVersion, related_name="next_diffs")
created = DateTimeField(default=datetime.utcnow)
tweeted = DateTimeField(null=True)
blogged = DateTimeField(null=True)
Expand Down Expand Up @@ -320,7 +332,7 @@ def main():

# get latest content for each entry
for entry in feed.entries:
diff = entry.get_latest()
entry.get_latest()

logging.debug("shutting down")

Expand Down
1 change: 1 addition & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ bleach
genshi
jinja2
peewee
pillow
pyyaml
tweepy
requests
Expand Down
2 changes: 2 additions & 0 deletions setup.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[aliases]
test=pytest
16 changes: 16 additions & 0 deletions setup.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
from setuptools import setup

requirements = open("requirements.txt").read().split()

setup(
name="diffengine",
version="0.0.1",
author="Ed Summers",
author_email="[email protected]",
py_modules=["diffengine"],
scripts=["bin/diffengine"],
description="Tweet changes to stories in RSS feeds",
requirements=requirements,
setup_requires=["pytest-runner"],
tests_require=["pytest"]
)
46 changes: 46 additions & 0 deletions test_diffengine.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
import os
import PIL
import pytest
import shutil

from diffengine import *

if os.path.isdir("test"):
shutil.rmtree("test")

init("test")

# the sequence of these tests is significant

def test_feed():
f = Feed.create(name="Test", url="https://inkdroid.org/feed.xml")
f.get_latest()
assert f.created
assert len(f.entries) == 10

def test_entry():
f = Feed.get(Feed.url=="https://inkdroid.org/feed.xml")
e = f.entries[0]
v = e.get_latest()
assert type(v) == EntryVersion
assert len(e.versions) == 1

def test_diff():
f = Feed.get(Feed.url=="https://inkdroid.org/feed.xml")
e = f.entries[0]
v1 = e.versions[0]

# remove some characters from the version
v1.summary = v1.summary[0:-20]
v1.save()

v2 = e.get_latest(force=True)
assert type(v2) == EntryVersion
assert v2.next_diff

diff = v2.next_diff
assert diff.old == v1
assert diff.new == v2
assert os.path.isfile(diff.html_path)
assert os.path.isfile(diff.screenshot_path)
assert os.path.isfile(diff.thumbnail_path)

0 comments on commit 79e7c53

Please sign in to comment.