##// END OF EJS Templates
follow Python conventions for boolean values...
follow Python conventions for boolean values True and False might be singletons and the "default" values for "boolean" expressions, but "all" values in Python has a boolean value and should be evaluated as such. Checking with 'is True' and 'is False' is thus confusing, error prone and unnessarily complex. If we anywhere rely and nullable boolean fields from the database layer and don't want the null value to be treated as False then we should check explicitly for null with 'is None'.

File last commit:

r3141:a45191e7 beta
r3625:260a7a01 beta
Show More
test_admin_notifications.py
106 lines | 4.4 KiB | text/x-python | PythonLexer
/ rhodecode / tests / functional / test_admin_notifications.py
Notification system improvements...
r1712 from rhodecode.tests import *
Added functional test create repo with a group...
r2529 from rhodecode.model.db import Notification, User
Notification system improvements...
r1712
from rhodecode.model.user import UserModel
from rhodecode.model.notification import NotificationModel
Updated create_or_update method to not change API key when password is not updated
r2513
Notification system improvements...
r1712 class TestNotificationsController(TestController):
Tests updates, Session refactoring
r1713 def tearDown(self):
for n in Notification.query().all():
inst = Notification.get(n.notification_id)
Added functional test create repo with a group...
r2529 self.Session().delete(inst)
self.Session().commit()
Tests updates, Session refactoring
r1713
Notification system improvements...
r1712 def test_index(self):
self.log_user()
u1 = UserModel().create_or_update(username='u1', password='qweqwe',
email='u1@rhodecode.org',
Updated create_or_update method to not change API key when password is not updated
r2513 firstname='u1', lastname='u1')
u1 = u1.user_id
Notification system improvements...
r1712
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()
Tests updates, Session refactoring
r1713 NotificationModel().create(created_by=u1, subject=u'test_notification_1',
Notification system improvements...
r1712 body=u'notification_1',
recipients=[cur_user])
Added functional test create repo with a group...
r2529 self.Session().commit()
Notification system improvements...
r1712 response = self.app.get(url('notifications'))
Tests updates, Session refactoring
r1713 self.assertTrue(u'test_notification_1' in response.body)
Notification system improvements...
r1712
# 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',
Updated create_or_update method to not change API key when password is not updated
r2513 firstname='u1', lastname='u1')
Notification system improvements...
r1712 u2 = UserModel().create_or_update(username='u2', password='qweqwe',
email='u2@rhodecode.org',
Updated create_or_update method to not change API key when password is not updated
r2513 firstname='u2', lastname='u2')
Notification system improvements...
r1712
Tests updates, Session refactoring
r1713 # make notifications
Notification system improvements...
r1712 notification = NotificationModel().create(created_by=cur_user,
subject=u'test',
body=u'hi there',
recipients=[cur_user, u1, u2])
Added functional test create repo with a group...
r2529 self.Session().commit()
Notification system improvements...
r1712 u1 = User.get(u1.user_id)
u2 = User.get(u2.user_id)
# check DB
Updated create_or_update method to not change API key when password is not updated
r2513 get_notif = lambda un: [x.notification for x in un]
Tests updates, Session refactoring
r1713 self.assertEqual(get_notif(cur_user.notifications), [notification])
self.assertEqual(get_notif(u1.notifications), [notification])
self.assertEqual(get_notif(u2.notifications), [notification])
Notification system improvements...
r1712 cur_usr_id = cur_user.user_id
Tests updates, Session refactoring
r1713
response = self.app.delete(url('notification',
notification_id=
notification.notification_id))
Mads Kiilerich
access control: fix owner checks - they were always true...
r3141 self.assertEqual(response.body, 'ok')
Notification system improvements...
r1712
Tests updates, Session refactoring
r1713 cur_user = User.get(cur_usr_id)
self.assertEqual(cur_user.notifications, [])
Notification system improvements...
r1712
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',
Updated create_or_update method to not change API key when password is not updated
r2513 firstname='u1', lastname='u1')
Notification system improvements...
r1712 u2 = UserModel().create_or_update(username='u2', password='qweqwe',
email='u2@rhodecode.org',
Updated create_or_update method to not change API key when password is not updated
r2513 firstname='u2', lastname='u2')
Notification system improvements...
r1712
notification = NotificationModel().create(created_by=cur_user,
- refactoring to overcome poor usage of global pylons config...
r1723 subject=u'test',
Tests updates, Session refactoring
r1713 body=u'hi there',
Notification system improvements...
r1712 recipients=[cur_user, u1, u2])
response = self.app.get(url('notification',
notification_id=notification.notification_id))