Exemple #1
0
def test_get_authors_for_entries(subhandler, session):
    authors = AuthorFactory.create_batch(10)
    entries = EntryFactory.create_batch(30)
    FakeDataFactory(db).add_authors_to_entries(authors, entries)
    db.session.add_all(authors)
    db.session.add_all(entries)
    db.session.commit()

    result = subhandler.get_authors_for_entries(entries)

    assert result[0][0].familyname <= result[10][0].familyname
    assert result[0][1].published >= result[1][1].published

    assert result[0][0] in result[0][1].authors
Exemple #2
0
def test_organise_entry_authors(subhandler, session):
    authors = AuthorFactory.create_batch(10)
    entries = EntryFactory.create_batch(30)
    FakeDataFactory(db).add_authors_to_entries(authors, entries)
    db.session.add_all(authors)
    db.session.add_all(entries)
    db.session.commit()

    a = subhandler.organise_entry_authors(entries)
    assert len(a) > 2
    for k, v in six.iteritems(a):
        assert len(v.temp_entries) > 0
        if len(v.temp_entries) > 1:
            assert v.temp_entries[0].published > v.temp_entries[-1].published
        assert v in v.temp_entries[0].authors
Exemple #3
0
def test_create_rss(userhandler, session):
    entries = EntryFactory.create_batch(5)
    author1 = AuthorFactory()
    author1.entries.extend(entries)
    user = UserFactory()
    sub1 = Subscription(user=user, author=author1)
    # db.session.add(sub1)
    # db.session.commit()

    raw_rss = userhandler.create_rss(user)
    assert raw_rss is not None
    rss = feedparser.parse(raw_rss.rss())

    assert rss.feed.title == u'Custom feed for {0}'.format(user.email)
    assert len(rss.entries) == 5
    assert rss.entries[0].published_parsed > rss.entries[1].published_parsed
Exemple #4
0
def test_sort_author_entries(subhandler, session):
    authors = AuthorFactory.create_batch(10)
    entries = EntryFactory.create_batch(20)
    FakeDataFactory(db).add_authors_to_entries(authors, entries)
    db.session.add_all(authors)
    db.session.add_all(entries)
    db.session.commit()

    q = db.session.query(Author, Entry).join("entries").filter(
        Entry.id.in_(e.id for e in entries)).order_by(Entry.published.desc(
        ))
    results = q.all()

    a = subhandler.sort_author_entries(results)
    assert len(a) > 2
    for k, v in six.iteritems(a):
        assert len(v.temp_entries) > 0
        if len(v.temp_entries) > 2:
            assert v.temp_entries[0].published > v.temp_entries[1].published
            assert v.temp_entries[1].published > v.temp_entries[2].published
        assert v in v.temp_entries[0].authors