summaryrefslogtreecommitdiff
path: root/service/test/integration/test_users_count.py
diff options
context:
space:
mode:
authorNavaL <ayoyo@thoughtworks.com>2016-06-24 18:37:25 +0200
committerNavaL <ayoyo@thoughtworks.com>2016-06-24 18:37:55 +0200
commit64c54186eff000762c291758973ca8e5db28f606 (patch)
treeca90b7c74583cfa170e90838b5722b96ba7138da /service/test/integration/test_users_count.py
parent12706c25ef02974ff54d1f42caac268f6eaa3a0c (diff)
Issue #694 add an admin restricted resource for user stats
Diffstat (limited to 'service/test/integration/test_users_count.py')
-rw-r--r--service/test/integration/test_users_count.py47
1 files changed, 47 insertions, 0 deletions
diff --git a/service/test/integration/test_users_count.py b/service/test/integration/test_users_count.py
new file mode 100644
index 00000000..d06ffd39
--- /dev/null
+++ b/service/test/integration/test_users_count.py
@@ -0,0 +1,47 @@
+#
+# Copyright (c) 2014 ThoughtWorks, Inc.
+#
+# Pixelated is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# Pixelated is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with Pixelated. If not, see <http://www.gnu.org/licenses/>.
+import json
+
+from mockito import verify
+from mockito import when
+from twisted.internet import defer
+
+from test.support.integration.multi_user_client import MultiUserClient
+from test.support.integration.soledad_test_base import SoledadTestBase
+
+
+class UsersResourceTest(MultiUserClient, SoledadTestBase):
+
+ @defer.inlineCallbacks
+ def wait_for_session_user_id_to_finish(self):
+ yield self.adaptor.initialize_store(self.soledad)
+
+ @defer.inlineCallbacks
+ def test_online_users_count_uses_leap_auth_privileges(self):
+
+ response, login_request = yield self.login()
+ yield response
+
+ yield self.wait_for_session_user_id_to_finish()
+
+ when(self.user_auth).is_admin().thenReturn(True)
+ response, request = self.get("/users", json.dumps({'csrftoken': [login_request.getCookie('XSRF-TOKEN')]}),
+ from_request=login_request, as_json=False)
+ yield response
+
+ self.assertEqual(200, request.code) # redirected
+ self.assertEqual('{"count": 1}', request.getWrittenData()) # redirected
+ verify(self.user_auth).is_admin()