Пример #1
0
    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
Пример #2
0
    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
Пример #3
0
    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
Пример #4
0
    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
Пример #5
0
    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'
Пример #6
0
    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'
Пример #7
0
    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
Пример #8
0
    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
Пример #9
0
    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