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
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
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
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