Example #1
0
def test_create_emails(subhandler, session):
    user1 = UserFactory(active=True)
    user2 = UserFactory(active=True)
    users = [user1, user2]
    author1 = AuthorFactory()
    author2 = AuthorFactory()
    authors = {author1.id: author1, author2.id: author2}
    entry = EntryFactory()
    author1.temp_entries = []
    author1.temp_entries.append(entry)
    sub1 = SubscriptionFactory(user=user1, author=author1, active=True)
    sub2 = SubscriptionFactory(user=user2, author=author2, active=True)
    subs = [sub1, sub2]
    db.session.commit()

    period = Period.query.filter_by(name=PERIOD.IMMEDIATE).first()
    emails = subhandler.create_emails(users, subs, authors, period)
    assert len(emails) == 2
    assert emails[user1.id].user == user1
    assert emails[user2.id].user == user2
    assert emails[user1.id].authors[0] == author1
    assert emails[user1.id].entries[0] == entry
Example #2
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
Example #3
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
Example #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