Browse Source

Added some more tests

sh4nks 10 years ago
parent
commit
53d5f8a956

+ 1 - 1
flaskbb/utils/settings.py

@@ -28,7 +28,7 @@ class FlaskBBConfig(collections.MutableMapping):
     def __setitem__(self, key, value):
     def __setitem__(self, key, value):
         Setting.update({key.lower(): value})
         Setting.update({key.lower(): value})
 
 
-    def __delitem__(self, key):
+    def __delitem__(self, key):  # pragma: no cover
         pass
         pass
 
 
     def __iter__(self):
     def __iter__(self):

+ 1 - 1
flaskbb/utils/widgets.py

@@ -49,7 +49,7 @@ class SelectBirthdayWidget(object):
                 id_suffix = date_format.replace('%', '-')
                 id_suffix = date_format.replace('%', '-')
                 id_current = field_id + id_suffix
                 id_current = field_id + id_suffix
 
 
-                if css_class is not None:
+                if css_class is not None:  # pragma: no cover
                     select_class = "{} {}".format(
                     select_class = "{} {}".format(
                         css_class, self.FORMAT_CLASSES[date_format]
                         css_class, self.FORMAT_CLASSES[date_format]
                     )
                     )

+ 28 - 0
tests/fixtures/forum.py

@@ -22,6 +22,15 @@ def forum(category, default_settings):
 
 
 
 
 @pytest.fixture
 @pytest.fixture
+def forum_locked(category, default_settings):
+    """A single locked forum in a category."""
+    forum = Forum(title="Test Forum", category_id=category.id)
+    forum.locked = True
+    forum.save()
+    return forum
+
+
+@pytest.fixture
 def topic(forum, user):
 def topic(forum, user):
     """A topic by a normal user without any extra permissions."""
     """A topic by a normal user without any extra permissions."""
     topic = Topic(title="Test Topic Normal")
     topic = Topic(title="Test Topic Normal")
@@ -36,11 +45,30 @@ def topic_moderator(forum, moderator_user):
     post = Post(content="Test Content Moderator")
     post = Post(content="Test Content Moderator")
     return topic.save(forum=forum, user=moderator_user, post=post)
     return topic.save(forum=forum, user=moderator_user, post=post)
 
 
+
+@pytest.fixture
+def topic_locked(forum, user):
+    """A locked topic by a user with normal permissions."""
+    topic = Topic(title="Test Topic Locked")
+    topic.locked = True
+    post = Post(content="Test Content Locked")
+    return topic.save(forum=forum, user=user, post=post)
+
+
+@pytest.fixture
+def topic_in_locked_forum(forum_locked, user):
+    """A locked topic by a user with normal permissions."""
+    topic = Topic(title="Test Topic Forum Locked")
+    post = Post(content="Test Content Forum Locked")
+    return topic.save(forum=forum_locked, user=user, post=post)
+
+
 @pytest.fixture
 @pytest.fixture
 def forumsread_last_read():
 def forumsread_last_read():
     """The datetime of the formsread last_read."""
     """The datetime of the formsread last_read."""
     return datetime.datetime.utcnow() - datetime.timedelta(hours=1)
     return datetime.datetime.utcnow() - datetime.timedelta(hours=1)
 
 
+
 @pytest.fixture
 @pytest.fixture
 def forumsread(user, forum, forumsread_last_read):
 def forumsread(user, forum, forumsread_last_read):
     """Create a forumsread object for the user and a forum."""
     """Create a forumsread object for the user and a forum."""

+ 22 - 1
tests/unit/utils/test_permissions.py

@@ -96,4 +96,25 @@ def test_super_moderator_permissions(forum, super_moderator_user, topic):
 
 
 def test_can_moderate_without_permission(moderator_user):
 def test_can_moderate_without_permission(moderator_user):
     """Test can moderate for a moderator_user without a permission."""
     """Test can moderate for a moderator_user without a permission."""
-    assert can_moderate(moderator_user) == False
+    assert can_moderate(moderator_user) is False
+
+
+def test_permissions_locked_topic(topic_locked, user):
+    """Test user permission if a topic is locked."""
+    assert topic_locked.locked
+
+    post = topic_locked.first_post
+    assert not can_edit_post(user, post)
+    assert not can_post_reply(user, topic_locked)
+
+
+def test_permissions_locked_forum(topic_in_locked_forum, user):
+    """Test user permission if forum is locked."""
+    topic = topic_in_locked_forum
+    post = topic.first_post
+
+    assert not topic.locked
+    assert topic.forum.locked
+
+    assert not can_edit_post(user, post)
+    assert not can_post_reply(user, topic)

+ 14 - 0
tests/unit/utils/test_settings.py

@@ -0,0 +1,14 @@
+from flaskbb.utils.settings import FlaskBBConfig
+
+
+def test_flaskbb_config(default_settings):
+    flaskbb_config = FlaskBBConfig()
+
+    assert len(flaskbb_config) > 0
+    # test __getitem__
+    assert flaskbb_config['PROJECT_TITLE'] == 'FlaskBB'
+    # test __setitem__
+    flaskbb_config['PROJECT_TITLE'] = 'FlaskBBTest'
+    assert flaskbb_config['PROJECT_TITLE'] == 'FlaskBBTest'
+    # test __iter__
+    assert flaskbb_config.iterkeys().next() == "USERS_PER_PAGE"

+ 13 - 0
tests/unit/utils/test_translations.py

@@ -0,0 +1,13 @@
+from flask import current_app
+from flaskbb.utils.translations import FlaskBBDomain
+
+
+def test_flaskbbdomain_translations():
+    domain = FlaskBBDomain(current_app)
+
+    assert domain.get_translations_cache() == {}
+
+    # returns an translation object
+    assert domain.get_translations() is not None
+
+    assert len(domain.get_translations_cache()) > 0