Files
@ dc4644865e8b
Branch filter:
Location: kallithea/rhodecode/tests/functional/test_admin_notifications.py
dc4644865e8b
4.4 KiB
text/x-python
Implemented simple gist functionality ref #530.
- creation of public/private gists with given lifetime
- rhodecode-gist CLI for quick gist creation
- creation of public/private gists with given lifetime
- rhodecode-gist CLI for quick gist creation
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | from rhodecode.tests import *
from rhodecode.model.db import Notification, User
from rhodecode.model.user import UserModel
from rhodecode.model.notification import NotificationModel
from rhodecode.model.meta import Session
class TestNotificationsController(TestController):
def tearDown(self):
for n in Notification.query().all():
inst = Notification.get(n.notification_id)
Session().delete(inst)
Session().commit()
def test_index(self):
self.log_user()
u1 = UserModel().create_or_update(username='u1', password='qweqwe',
email='u1@rhodecode.org',
firstname='u1', lastname='u1')
u1 = u1.user_id
response = self.app.get(url('notifications'))
response.mustcontain('<div class="table">No notifications here yet</div>')
cur_user = self._get_logged_user()
NotificationModel().create(created_by=u1, subject=u'test_notification_1',
body=u'notification_1',
recipients=[cur_user])
Session().commit()
response = self.app.get(url('notifications'))
response.mustcontain(u'test_notification_1')
# 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',
firstname='u1', lastname='u1')
u2 = UserModel().create_or_update(username='u2', password='qweqwe',
email='u2@rhodecode.org',
firstname='u2', lastname='u2')
# make notifications
notification = NotificationModel().create(created_by=cur_user,
subject=u'test',
body=u'hi there',
recipients=[cur_user, u1, u2])
Session().commit()
u1 = User.get(u1.user_id)
u2 = User.get(u2.user_id)
# check DB
get_notif = lambda un: [x.notification for x in un]
self.assertEqual(get_notif(cur_user.notifications), [notification])
self.assertEqual(get_notif(u1.notifications), [notification])
self.assertEqual(get_notif(u2.notifications), [notification])
cur_usr_id = cur_user.user_id
response = self.app.delete(url('notification',
notification_id=
notification.notification_id))
self.assertEqual(response.body, 'ok')
cur_user = User.get(cur_usr_id)
self.assertEqual(cur_user.notifications, [])
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',
firstname='u1', lastname='u1')
u2 = UserModel().create_or_update(username='u2', password='qweqwe',
email='u2@rhodecode.org',
firstname='u2', lastname='u2')
notification = NotificationModel().create(created_by=cur_user,
subject=u'test',
body=u'hi there',
recipients=[cur_user, u1, u2])
response = self.app.get(url('notification',
notification_id=notification.notification_id))
|