test_helpers.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #-*- coding: utf-8 -*-
  2. import datetime
  3. from flaskbb.utils.helpers import slugify, forum_is_unread
  4. from flaskbb.utils.settings import flaskbb_config
  5. from flaskbb.forum.models import Forum
  6. def test_slugify():
  7. """Test the slugify helper method."""
  8. assert slugify(u'Hello world') == u'hello-world'
  9. assert slugify(u'¿Cómo está?') == u'como-esta'
  10. def test_forum_is_unread(guest, user, forum, topic, forumsread):
  11. """Test the forum is unread function."""
  12. # for a guest
  13. assert not forum_is_unread(None, None, guest)
  14. # for a logged in user without a forumsread
  15. assert forum_is_unread(forum, None, user)
  16. # same, just with forumsread
  17. assert forum_is_unread(forum, forumsread, user)
  18. # lets clear the forumsread relation
  19. # but before we have to add an read entry in forumsread and topicsread
  20. topic.update_read(user, topic.forum, forumsread)
  21. time_read = datetime.datetime.utcnow() - datetime.timedelta(hours=1)
  22. forumsread.cleared = time_read # lets cheat here a bit :P
  23. forumsread.last_read = datetime.datetime.utcnow()
  24. forumsread.save()
  25. assert not forum_is_unread(forum, forumsread, user)
  26. # read tracker is disabled
  27. flaskbb_config["TRACKER_LENGTH"] = 0
  28. assert not forum_is_unread(forum, forumsread, user)
  29. # no topics in this forum
  30. topic.delete()
  31. forum = Forum.query.filter_by(id=forum.id).first()
  32. flaskbb_config["TRACKER_LENGTH"] = 1 # activate the tracker again
  33. assert forum.topic_count == 0
  34. assert not forum_is_unread(forum, None, user)