Mercurial > kallithea
diff rhodecode/tests/functional/test_admin_notifications.py @ 1712:cac5109ac3b6 beta
Notification system improvements
- deleting
- tests
- ui
- moved to separate controller
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Wed, 23 Nov 2011 00:55:05 +0200 |
parents | |
children | 54687aa00724 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rhodecode/tests/functional/test_admin_notifications.py Wed Nov 23 00:55:05 2011 +0200 @@ -0,0 +1,117 @@ +from rhodecode.tests import * +from rhodecode.model.db import Notification, User, UserNotification + +from rhodecode.model.user import UserModel +from rhodecode.model.notification import NotificationModel + +class TestNotificationsController(TestController): + + def test_index(self): + self.log_user() + + + u1 = UserModel().create_or_update(username='u1', password='qweqwe', + email='u1@rhodecode.org', + name='u1', lastname='u1').user_id + u2 = UserModel().create_or_update(username='u2', password='qweqwe', + email='u2@rhodecode.org', + name='u2', lastname='u2').user_id + + response = self.app.get(url('notifications')) + self.assertTrue('''<div class="table">No notifications here yet</div>''' + in response.body) + + cur_user = self._get_logged_user() + + NotificationModel().create(created_by=u1, subject=u'test', + body=u'notification_1', + recipients=[cur_user]) + response = self.app.get(url('notifications')) + + self.assertTrue(u'notification_1' in response.body) + + User.delete(u1) + User.delete(u2) + +# def test_index_as_xml(self): +# response = self.app.get(url('formatted_notifications', format='xml')) +# +# def test_create(self): +# response = self.app.post(url('notifications')) +# +# def test_new(self): +# response = self.app.get(url('new_notification')) +# +# def test_new_as_xml(self): +# response = self.app.get(url('formatted_new_notification', format='xml')) +# +# def test_update(self): +# response = self.app.put(url('notification', notification_id=1)) +# +# def test_update_browser_fakeout(self): +# response = self.app.post(url('notification', notification_id=1), params=dict(_method='put')) + + def test_delete(self): + self.log_user() + cur_user = self._get_logged_user() + + u1 = UserModel().create_or_update(username='u1', password='qweqwe', + email='u1@rhodecode.org', + name='u1', lastname='u1') + u2 = UserModel().create_or_update(username='u2', password='qweqwe', + email='u2@rhodecode.org', + name='u2', lastname='u2') + + # make two notifications + notification = NotificationModel().create(created_by=cur_user, + subject=u'test', + body=u'hi there', + recipients=[cur_user, u1, u2]) + + u1 = User.get(u1.user_id) + u2 = User.get(u2.user_id) + + # check DB + self.assertEqual(u1.notifications, [notification]) + self.assertEqual(u2.notifications, [notification]) + cur_usr_id = cur_user.user_id + response = self.app.delete(url('notification', + notification_id=cur_usr_id)) + + cur_user = self._get_logged_user() + self.assertEqual(cur_user.notifications, []) + + User.delete(u1.user_id) + User.delete(u2.user_id) + + +# def test_delete_browser_fakeout(self): +# response = self.app.post(url('notification', notification_id=1), params=dict(_method='delete')) + + def test_show(self): + self.log_user() + cur_user = self._get_logged_user() + u1 = UserModel().create_or_update(username='u1', password='qweqwe', + email='u1@rhodecode.org', + name='u1', lastname='u1') + u2 = UserModel().create_or_update(username='u2', password='qweqwe', + email='u2@rhodecode.org', + name='u2', lastname='u2') + + notification = NotificationModel().create(created_by=cur_user, + subject='test', + body='hi there', + recipients=[cur_user, u1, u2]) + + response = self.app.get(url('notification', + notification_id=notification.notification_id)) + +# def test_show_as_xml(self): +# response = self.app.get(url('formatted_notification', notification_id=1, format='xml')) +# +# def test_edit(self): +# response = self.app.get(url('edit_notification', notification_id=1)) +# +# def test_edit_as_xml(self): +# response = self.app.get(url('formatted_edit_notification', notification_id=1, format='xml')) +