def test_entry_tags(self): from hiero.tests.models import User from hiero.tests.models import Entry from hiero.tests.models import Tag owner = User(username='******', email='*****@*****.**', password='******') entry = Entry(owner=owner, title='test entry', content='hi', html_content='hi<br />') tag1 = Tag(title='python') tag2 = Tag(title='linux') entry.tags.append(tag1) entry.tags.append(tag2) self.session.add(entry) self.session.flush() assert len(entry.tags) == 2 assert tag1.entries[0] == entry assert tag2.entries[0] == entry
def test_entry_related_entries(self): from hiero.tests.models import User from hiero.tests.models import Entry owner = User(username='******', email='*****@*****.**', password='******') entry = Entry(owner=owner, title='test entry', content='hi', html_content='hi<br />') entry2 = Entry(owner=owner, title='test entry 1', content='hi', html_content='hi<br />') entry3 = Entry(owner=owner, title='test entry 2', content='hi', html_content='hi<br />') entry.related_entries.append(entry2) entry.related_entries.append(entry3) self.session.add(entry) self.session.flush() assert len(entry.related_entries) == 2 assert entry.related_entries[0] == entry2 assert entry.related_entries[1] == entry3
def test_index(self): """ Call the index view, make sure routes are working """ from hiero.tests.models import User from hiero.tests.models import Entry owner = User(username='******', email='*****@*****.**', password='******') entry = Entry(owner=owner, title='test entry', content='hi', html_content='hi<br />foo', is_published=True) entry1 = Entry(owner=owner, title='test entry 1', content='hi', html_content='hi<br />bar', is_published=True) self.session.add(owner) self.session.add(entry) self.session.add(entry1) res = self.app.get('/') assert res.status_int == 200 assert 'foo' in res.body assert 'bar' in res.body
def test_index_active(self): from hem.db import IDBSession from hiero.views.blog import EntryController from horus.interfaces import IUserClass from horus.interfaces import IActivationClass from hiero.interfaces import IHieroEntryClass from hiero.tests.models import User from hiero.tests.models import Entry from hiero.tests.models import Activation from hiero.tests.models import Series from hiero.tests.models import Category from hiero.interfaces import IHieroCategoryClass from hiero.interfaces import IHieroSeriesClass self.config.registry.registerUtility(Category, IHieroCategoryClass) self.config.registry.registerUtility(Series, IHieroSeriesClass) self.config.registry.registerUtility(Activation, IActivationClass) self.config.registry.registerUtility(User, IUserClass) self.config.registry.registerUtility(Entry, IHieroEntryClass) self.config.registry.registerUtility(self.session, IDBSession) self.config.add_route('hiero_entry_index', '/') request = testing.DummyRequest() owner = User(username='******', email='*****@*****.**', password='******') self.session.add(owner) entry = Entry(owner=owner, title='test entry', content='hi', html_content='hi<br />', is_published=True) entry1 = Entry(owner=owner, title='test entry 2', content='hi', html_content='hi<br />', is_published=True) self.session.add(entry) self.session.add(entry1) self.session.flush() controller = EntryController(request) results = controller.index() entries = results['entries'] assert len(entries) == 2 assert entries[0] == entry assert entries[1] == entry1
def test_entry_category(self): from hiero.tests.models import User from hiero.tests.models import Entry from hiero.tests.models import Category owner = User(username='******', email='*****@*****.**', password='******') entry = Entry(owner=owner, title='test entry', content='hi', html_content='hi<br />') entry2 = Entry(owner=owner, title='test entry 1', content='hi', html_content='hi<br />') entry3 = Entry(owner=owner, title='test entry 2', content='hi', html_content='hi<br />') category = Category(title='test category') category.entries.append(entry) category.entries.append(entry2) category.entries.append(entry3) self.session.add(category) self.session.flush() assert entry.category == category assert len(category.entries) == 3 assert category.entries[0] == entry assert category.entries[1] == entry2 assert category.entries[2] == entry3 assert category.slug == 'test-category'
def test_entry_entry_series(self): from hiero.tests.models import User from hiero.tests.models import Entry from hiero.tests.models import Series owner = User(username='******', email='*****@*****.**', password='******') entry = Entry(owner=owner, title='test entry', content='hi', html_content='hi<br />') entry2 = Entry(owner=owner, title='test entry 1', content='hi', html_content='hi<br />') entry3 = Entry(owner=owner, title='test entry 2', content='hi', html_content='hi<br />') series = Series(title='test series') series.entries.append(entry) series.entries.append(entry2) series.entries.append(entry3) self.session.add(series) self.session.flush() assert entry.series == series assert len(series.entries) == 3 assert series.entries[0] == entry assert series.entries[1] == entry2 assert series.entries[2] == entry3 assert series.slug == 'test-series'
def test_create_entry(self): from hiero.tests.models import User from hiero.tests.models import Entry owner = User(username='******', email='*****@*****.**', password='******') self.session.add(owner) self.session.flush() entry = Entry(owner_id=owner.id, title='test entry', content='hi', html_content='hi<br />') self.session.add(entry) self.session.flush() assert entry.slug == 'test-entry' assert entry.is_published == False assert entry.is_featured == False assert entry.enable_comments == False assert entry.owner != None assert owner.entries[0] == entry
def test_detail(self): from hem.db import IDBSession from hiero.views.blog import EntryController from horus.interfaces import IUserClass from horus.interfaces import IActivationClass from hiero.interfaces import IHieroEntryClass from hiero.tests.models import User from hiero.tests.models import Entry from hiero.tests.models import Activation from hiero.tests.models import Category from hiero.tests.models import Series from hiero.interfaces import IHieroCategoryClass from hiero.interfaces import IHieroSeriesClass self.config.registry.registerUtility(Category, IHieroCategoryClass) self.config.registry.registerUtility(Series, IHieroSeriesClass) self.config.registry.registerUtility(Activation, IActivationClass) self.config.registry.registerUtility(User, IUserClass) self.config.registry.registerUtility(Entry, IHieroEntryClass) self.config.registry.registerUtility(self.session, IDBSession) self.config.add_route('hiero_entry_index', '/') request = testing.DummyRequest() request.matchdict = Mock() owner = User(username='******', email='*****@*****.**', password='******') self.session.add(owner) entry = Entry(owner=owner, title='test entry', content='hi', html_content='hi<br />', is_published=True) entry1 = Entry(owner=owner, title='test entry 2', content='hi', html_content='hi<br />', is_published=True) self.session.add(entry) self.session.add(entry1) self.session.flush() def get(key, default): if key == 'slug': return entry1.slug request.matchdict.get = get controller = EntryController(request) results = controller.detail() returned_entry = results['entry'] returned_entry == entry
def test_index_active_paging(self): from hem.db import IDBSession from hiero.views.blog import EntryController from horus.interfaces import IUserClass from horus.interfaces import IActivationClass from hiero.interfaces import IHieroEntryClass from hiero.tests.models import User from hiero.tests.models import Entry from hiero.tests.models import Activation from hiero.tests.models import Category from hiero.tests.models import Series from hiero.interfaces import IHieroCategoryClass from hiero.interfaces import IHieroSeriesClass self.config.registry.registerUtility(Category, IHieroCategoryClass) self.config.registry.registerUtility(Series, IHieroSeriesClass) self.config.registry.registerUtility(Entry, IHieroEntryClass) self.config.registry.registerUtility(self.session, IDBSession) self.config.registry.registerUtility(Activation, IActivationClass) self.config.registry.registerUtility(User, IUserClass) self.config.add_route('hiero_entry_index', '/') request = testing.DummyRequest() request.matchdict = Mock() def get(key, default): if key == 'page': return 2 request.matchdict.get = get owner = User(username='******', email='*****@*****.**', password='******') self.session.add(owner) entries = [] for i in xrange(1, 21): entry = Entry(owner=owner, title='test entry %s' % i, content='hi', html_content='hi<br />%s' % i, is_published=True, published_on='4/%s/2012' % i) self.session.add(entry) entries.append(entry) self.session.flush() controller = EntryController(request) results = controller.index() result_entries = results['entries'] assert len(result_entries) == 10 assert entries[0].title == result_entries[9].title assert not entries[12] in result_entries