aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/tests/test_modelmethods.py
diff options
context:
space:
mode:
authortilly-Q <nattilypigeonfowl@gmail.com>2013-08-20 12:02:20 -0400
committertilly-Q <nattilypigeonfowl@gmail.com>2013-08-20 12:02:20 -0400
commite1561d048815e29b3b7c7e1c860d9cf0c4326f0a (patch)
tree691fe54e5b6a1dcb6799d673a99f01e850a6a9f9 /mediagoblin/tests/test_modelmethods.py
parent8394febbe1408030d1afa8f3961d92341eefa474 (diff)
downloadmediagoblin-e1561d048815e29b3b7c7e1c860d9cf0c4326f0a.tar.lz
mediagoblin-e1561d048815e29b3b7c7e1c860d9cf0c4326f0a.tar.xz
mediagoblin-e1561d048815e29b3b7c7e1c860d9cf0c4326f0a.zip
This was a very small update, I'm hoping to rebase after this to solve some
other problems. I started looking at the tests in this update. This update I spent fixing the tests to work with my new code. --\ mediagoblin/db/migration_tools.py --| Merging from ticket 679 --\ mediagoblin/db/migrations.py --| Added unique constraint to Privilege.privilege_name --\ mediagoblin/db/models.py --| Deleted vestigial Privilege.is_admin_or_moderator method --\ mediagoblin/templates/mediagoblin/moderation/user.html --| Add a `Ban User` / `UnBan User` for admin --\ mediagoblin/test/test_api.py --| Fixed test with my new changes --\ mediagoblin/test/test_auth.py --| Try to fix test, still having problems --\ mediagoblin/test/test_modelmethods.py --| Wrote my first test for the User.has_privilege method --\ mediagoblin/test/test_modelmethods.py --| Fixed test with my new changes --\ mediagoblin/test/test_sqlmigrations.py --| Merging from ticket 679 --\ mediagoblin/test/tools.py --| Editted add_fixture_user to allow for privileges rather than active column
Diffstat (limited to 'mediagoblin/tests/test_modelmethods.py')
-rw-r--r--mediagoblin/tests/test_modelmethods.py43
1 files changed, 42 insertions, 1 deletions
diff --git a/mediagoblin/tests/test_modelmethods.py b/mediagoblin/tests/test_modelmethods.py
index 427aa47c..77d375b7 100644
--- a/mediagoblin/tests/test_modelmethods.py
+++ b/mediagoblin/tests/test_modelmethods.py
@@ -18,7 +18,7 @@
# methods, and so it makes sense to test them here.
from mediagoblin.db.base import Session
-from mediagoblin.db.models import MediaEntry
+from mediagoblin.db.models import MediaEntry, User, Privilege
from mediagoblin.tests.tools import fixture_add_user
@@ -151,6 +151,46 @@ class TestMediaEntrySlugs(object):
qbert_entry.generate_slug()
assert qbert_entry.slug is None
+class TestUserHasPrivilege:
+ def _setup(self):
+ self.natalie_user = fixture_add_user(u'natalie')
+ self.aeva_user = fixture_add_user(u'aeva')
+ self.natalie_user.all_privileges += [
+ Privilege.query.filter(
+ Privilege.privilege_name == u'admin').one(),
+ Privilege.query.filter(
+ Privilege.privilege_name == u'moderator').one()]
+ self.aeva_user.all_privileges += [
+ Privilege.query.filter(
+ Privilege.privilege_name == u'moderator').one()]
+
+ def test_privilege_added_correctly(self, test_app):
+ self._setup()
+ admin = Privilege.query.filter(
+ Privilege.privilege_name == u'admin').one()
+ # first make sure the privileges were added successfully
+
+ assert admin in self.natalie_user.all_privileges
+ assert admin not in self.aeva_user.all_privileges
+
+ def test_user_has_privilege_one(self, test_app):
+ self._setup()
+
+ # then test out the user.has_privilege method for one privilege
+ assert not natalie_user.has_privilege(u'commenter')
+ assert aeva_user.has_privilege(u'active')
+
+
+ def test_user_has_privileges_multiple(self, test_app):
+ self._setup()
+
+ # when multiple args are passed to has_privilege, the method returns
+ # True if the user has ANY of the privileges
+ assert natalie_user.has_privilege(u'admin',u'commenter')
+ assert aeva_user.has_privilege(u'moderator',u'active')
+ assert not natalie_user.has_privilege(u'commenter',u'uploader')
+
+
def test_media_data_init(test_app):
Session.rollback()
@@ -165,3 +205,4 @@ def test_media_data_init(test_app):
obj_in_session += 1
print repr(obj)
assert obj_in_session == 0
+