def test_adds_client_id_to_lookup_store(self): tracker = minimock.TraceTracker() minimock.mock('channel.ServerChannels.add_client_id', tracker=tracker) self.post('/_ah/channel/connected/', params={'from': 'client-id'}) minimock.assert_same_trace( tracker, "Called channel.ServerChannels.add_client_id(u'client-id')")
def setUp(self): self.options = build_config(["--minimal"], isolated=True, modules=antismash.get_all_modules()) assert not nrps_pks.is_enabled(self.options) self.tracker = minimock.TraceTracker() minimock.mock("nrps_pks.run_on_record", tracker=self.tracker)
def setUp(self): """ Setup :return: """ super(TestServer, self).setUp() self.tt = minimock.TraceTracker()
def test_no_email_notify(self): topost = { 'login_id': 'usersaved_noemailnotify', 'email_address': '*****@*****.**', 'user-submit-flag': 'submitted', 'approved_permissions': None, 'denied_permissions': None, 'assigned_groups': None, 'super_user': 1, 'inactive_flag': False, 'inactive_date': '10/11/2010', 'name_first': 'test', 'name_last': 'user' } # setup the mock objects so we can test the email getting sent out tt = minimock.TraceTracker() smtplib.SMTP = minimock.Mock('smtplib.SMTP', tracker=None) smtplib.SMTP.mock_returns = minimock.Mock('smtp_connection', tracker=tt) req, r = self.c.post('users/add', data=topost, follow_redirects=True) assert r.status_code == 200, r.status assert b'User added' in r.data assert req.url.endswith('users/manage') assert len(tt.dump()) == 0 minimock.restore()
def test_make_server_spawn(self): """ Check the spawn option for the backend that support it :return: """ for backend in ['gevent', 'fastgevent', 'geventwebsocket', 'socketio']: self.tt = minimock.TraceTracker() self._check_make_server_spawn(backend) minimock.restore()
def test_make_server(self): """ Test all backends with default params :return: """ # nose does not have great support for parameterized tests for backend in backends(): self.tt = minimock.TraceTracker() self._check_make_server(backend) minimock.restore()
def setUp(self): """ Setup :return: """ super(TestServer, self).setUp() configure_logger(logger, 'CRITICAL') self.tt = minimock.TraceTracker() try: self.old = socket.socket.bind socket.socket.bind = lambda x, y: None except AttributeError: self.old = None
def setUp(self): super(SendLogLineTest, self).setUp() self.server = models.Server.create() models.User.create_user('1234', email='*****@*****.**') self.user = models.User.lookup(email='*****@*****.**') self.interesting_log_line = models.LogLine.create( self.server, self.INTERESTING_LOG_LINE, 'US/Central') self.uninteresting_log_line = models.LogLine.create( self.server, self.UNINTERESTING_LOG_LINE, 'US/Central') self.tracker = minimock.TraceTracker() minimock.mock('channel.ServerChannels.get_client_ids', returns=['client_id'], tracker=None) minimock.mock('channel.ServerChannels.send_message', tracker=self.tracker)
def test_sends_message_to_all_connected_clients(self): minimock.restore() self.tracker = minimock.TraceTracker() models.User.create_user('4321', email='*****@*****.**') user = models.User.lookup(email='*****@*****.**') client_id = '{0}.{1}.1234.5678'.format(self.server.key.id(), self.user.key.id()) client_id2 = '{0}.{1}.1234.5678'.format(self.server.key.id(), user.key.id()) minimock.mock('channel.ServerChannels.get_client_ids', returns=[client_id, client_id2], tracker=None) minimock.mock('gae_channel.send_message', tracker=self.tracker) self.interesting_log_line.send_message() js = '{"username": "******", "achievement_message": null, "chat": "is there anybody in there?", "time": "12:01am", "date": "Mar 24, 2013", "event": "chat", "death_message": null}' trace = "Called gae_channel.send_message(\n '{0}',\n '{1}')".format( client_id, js) trace += "\nCalled gae_channel.send_message(\n '{0}',\n '{1}')".format( client_id, js) minimock.assert_same_trace(self.tracker, trace)
def test_sends_log_line_data_as_json(self): minimock.restore() self.user.timezone_name = 'US/Pacific' self.user.put() self.tracker = minimock.TraceTracker() client_id = '{0}.{1}.1234.5678'.format(self.server.key.id(), self.user.key.id()) minimock.mock('channel.ServerChannels.get_client_ids', returns=[client_id], tracker=None) minimock.mock('gae_channel.send_message', tracker=self.tracker) js = '{"username": "******", "achievement_message": null, "chat": "is there anybody in there?", "time": "05:01pm", "date": "Mar 23, 2013", "event": "chat", "death_message": null}' self.interesting_log_line.send_message() minimock.assert_same_trace( self.tracker, "Called gae_channel.send_message('{0}','{1}')".format( client_id, js)) log_line = json.loads(js) self.assertEqual('chat', log_line['event']) self.assertEqual('Mar 23, 2013', log_line['date']) self.assertEqual('05:01pm', log_line['time']) self.assertEqual('quazifene', log_line['username']) self.assertEqual('is there anybody in there?', log_line['chat']) self.assertEqual(None, log_line['death_message'])
def setUp(self): self.tracker = minimock.TraceTracker()
def test_password_reset(self): """ has to be done in the same test function so that order is assured""" user = create_user_with_permissions() r = self.c.get('users/recover-password') assert r.status_code == 200, r.status assert b'Recover Password' in r.data # setup the mock objects so we can test the email getting sent out tt = minimock.TraceTracker() smtplib.SMTP = minimock.Mock('smtplib.SMTP', tracker=None) smtplib.SMTP.mock_returns = minimock.Mock('smtp_connection', tracker=tt) # test posting to the restore password view db.sess.expire(user) topost = { 'email_address': user.email_address, 'lost-password-form-submit-flag': 'submitted', } req, r = self.c.post('users/recover-password', data=topost, follow_redirects=True) assert r.status_code == 200, r.status assert b'email with a link to reset your password has been sent' in r.data, r.data assert req.url == 'http://localhost/' # test the mock strings (i.e. test the email that was sent out) db.sess.expire(user) assert tt.check('Called smtp_connection.sendmail(...%s...has been issu' 'ed to reset the password...' % user.email_address) # restore the mocked objects minimock.restore() # now test resetting the password r = self.c.get('/users/reset-password/%s/%s' % (user.login_id, user.pass_reset_key)) assert r.status_code == 200, r.status_code assert b'Reset Password' in r.data assert b'Please choose a new password to complete the reset request' in r.data # expire the date db.sess.expire(user) orig_reset_ts = user.pass_reset_ts user.pass_reset_ts = datetime.datetime(2000, 10, 10) db.sess.commit() # check expired message req, resp = self.c.get('/users/reset-password/%s/%s' % (user.login_id, user.pass_reset_key), follow_redirects=True) assert resp.status_code == 200, resp.status assert b'Recover Password' in resp.data assert b'password reset link expired, use the form below to resend reset link' in resp.data assert req.url.endswith('users/recover-password') # unexpire the date db.sess.expire(user) user.pass_reset_ts = orig_reset_ts db.sess.commit() # check posting the new passwords topost = { 'password': '******', 'password-confirm': 'TestPassword2', 'new-password-form-submit-flag': 'submitted', } req, r = self.c.post('/users/reset-password/%s/%s' % (user.login_id, user.pass_reset_key), data=topost, follow_redirects=True) assert r.status_code == 200, r.status assert b'Your password has been reset successfully' in r.data assert req.url == 'http://localhost/'
def test_fields_saved(self): ap = Permission.get_by(name=u'users-test1').id dp = Permission.get_by(name=u'users-test2').id gp = Group.get_by(name=u'test-group') or Group.add_iu( name=u'test-group', approved_permissions=[], denied_permissions=[], assigned_users=[]) gp = gp.id topost = { 'login_id': 'usersaved', 'email_address': '*****@*****.**', 'user-submit-flag': 'submitted', 'approved_permissions': ap, 'denied_permissions': dp, 'assigned_groups': gp, 'super_user': 1, 'inactive_flag': False, 'inactive_date': '10/11/2010', 'name_first': 'test', 'name_last': 'user', 'email_notify': 1 } # setup the mock objects so we can test the email getting sent out tt = minimock.TraceTracker() smtplib.SMTP = minimock.Mock('smtplib.SMTP', tracker=None) smtplib.SMTP.mock_returns = minimock.Mock('smtp_connection', tracker=tt) req, r = self.c.post('users/add', data=topost, follow_redirects=True) assert r.status_code == 200, r.status assert b'User added' in r.data assert req.url.endswith('users/manage') mmdump = tt.dump() assert 'To: [email protected]' in mmdump assert 'You have been added to our system of registered users.' in mmdump assert 'user name: usersaved' in mmdump assert re.search(r'password: [a-zA-Z0-9]*', mmdump) is not None assert re.search(r'password: None', mmdump) is None minimock.restore() user = User.get_by_email(u'*****@*****.**') assert user.login_id == 'usersaved' assert user.reset_required assert not user.super_user assert user.pass_hash assert user.groups[0].name == 'test-group' assert len(user.groups) == 1 assert user.inactive_date == datetime.datetime(2010, 10, 11), user.inactive_date assert user.name_first == 'test' assert user.name_last == 'user' found = 3 for permrow in user.permission_map: if permrow['permission_name'] == u'users-test1': assert permrow['resulting_approval'] found -= 1 if permrow['permission_name'] in (u'users-test2', u'auth-manage'): assert not permrow['resulting_approval'] found -= 1 assert found == 0 # now test an edit topost = { 'login_id': 'usersaved', 'email_address': '*****@*****.**', 'user-submit-flag': 'submitted', 'approved_permissions': dp, 'denied_permissions': ap, 'assigned_groups': None, 'super_user': 1, 'inactive_flag': False, 'inactive_date': '10/10/2010', 'name_first': 'test2', 'name_last': 'user2', 'email_notify': 1, 'password': '******', 'password-confirm': 'test_new_password' } # setup the mock objects so we can test the email getting sent out tt = minimock.TraceTracker() smtplib.SMTP = minimock.Mock('smtplib.SMTP', tracker=None) smtplib.SMTP.mock_returns = minimock.Mock('smtp_connection', tracker=tt) req, r = self.c.post('users/edit/%s' % user.id, data=topost, follow_redirects=True) assert b'User edited successfully' in r.data assert req.url.endswith('users/manage') assert tt.check( 'Called smtp_connection.sendmail([email protected] ' 'password for this site has been reset' '...first successful login...') # restore the mocked objects minimock.restore() mmdump = tt.dump() assert 'To: [email protected]' in mmdump assert 'Your password for this site has been reset by an administrator.' in mmdump assert 'user name: usersaved' in mmdump assert re.search(r'password: [a-zA-Z0-9]*', mmdump) is not None assert re.search(r'password: None', mmdump) is None minimock.restore() db.sess.expire(user) assert user.login_id == 'usersaved' assert user.reset_required assert not user.super_user assert user.pass_hash assert len(user.groups) == 0 assert user.inactive_date == datetime.datetime(2010, 10, 10), user.inactive_date assert user.name_first == 'test2' assert user.name_last == 'user2' found = 3 for permrow in user.permission_map: if permrow['permission_name'] == u'users-test2': assert permrow['resulting_approval'] found -= 1 if permrow['permission_name'] in (u'users-test1', u'auth-manage'): assert not permrow['resulting_approval'] found -= 1 assert found == 0 # test edit w/ reset required and email notify (no email sent) topost = { 'login_id': 'usersaved', 'email_address': '*****@*****.**', 'user-submit-flag': 'submitted', 'approved_permissions': dp, 'denied_permissions': ap, 'assigned_groups': None, 'super_user': 1, 'reset_required': 1, 'inactive_flag': False, 'inactive_date': '', 'name_first': '', 'name_last': '', 'email_notify': 1 } req, r = self.c.post('users/edit/%s' % user.id, data=topost, follow_redirects=True) assert b'User edited successfully' in r.data assert req.url.endswith('users/manage') db.sess.expire(user) assert user.login_id == 'usersaved' assert user.reset_required assert not user.super_user assert user.pass_hash assert len(user.groups) == 0 # now test a delete req, r = self.c.get('users/delete/%s' % user.id, follow_redirects=True) assert r.status_code == 200, r.status assert b'User deleted' in r.data assert req.url.endswith('users/manage')
def setUp(self): self.file = tempfile.NamedTemporaryFile() self.trace = minimock.TraceTracker() minimock.mock('json.load', tracker=self.trace)