def test_no_email_and_username_same_on_two_users(self): """ Checks that a username cannot be the same as the email as another user. This is a requirement for our login """ with self.assertRaises(lib.exceptions.DataManipulationException): User("*****@*****.**", "*****@*****.**", "hello").create() User("*****@*****.**", "*****@*****.**", "hello").create() with self.assertRaises(lib.exceptions.DataManipulationException): User("goat", "*****@*****.**", "no").create()
def setUp(self): """ Creates two base users to reason about in our tests""" super().setUp() self.name1 = "goatsy" self.email1 = "*****@*****.**" self.password1 = "verysecure" self.user1 = User(self.name1, self.email1, self.password1).create() self.name2 = "Impersonator" self.email2 = "bob" self.password2 = "notVeryInventive" self.user2 = User(self.name2, self.email2, self.password2).create()
def test_get_users(self): """ Checks user retrieval with limits """ self.assertEqual(len(User.get_users()), 2) self.assertEqual(len(User.get_users(limit=0)), 0) User("goat", "*****@*****.**", "1234").create() self.assertEqual(len(User.get_users()), 3) self.assertEqual(len(User.get_users(limit=1)), 1)
def _get_slack_data(days): settings = Settings.query().get() try: api_key = settings.api_key except AttributeError: api_key = os.environ.get('SLACK_API_KEY') if api_key is None: raise Exception('please set environment variable SLACK_API_KEY') else: Settings(api_key=api_key).put() sd = SlackDumper(api_key) ents = set(dir(User)) for user_data in sd.get_user_list(): user_id = user_data['id'] user_data = {k: v for k, v in user_data.items() if k in ents} user = User.query(User.id == user_id).get() if user is None: User(**user_data).put() else: for k, v in user_data.items(): setattr(user, k, v) user.put() ents = set(dir(Channel)) for channel_data in sd.get_channel_list(): channel_id = channel_data['id'] channel_data = {k: v for k, v in channel_data.items() if k in ents} channel = Channel.query(Channel.id == channel_id).get() if channel is None: Channel(**channel_data).put() else: for k, v in channel_data.items(): setattr(channel, k, v) channel.put() ents = set(dir(Message)) for channel_id, messages in sd.get_channels_histoey(days=days).items(): for message in messages: message['channel_id'] = channel_id user = message.get('user', '') ts_raw = message['ts'] ts = float(ts_raw) message['ts'] = float(ts_raw) message['ts_raw'] = ts_raw message = {k: v for k, v in message.items() if k in ents} if not ROBUST_IMPORTING_MODE: msg = Message.query().filter(Message.channel_id == channel_id, Message.user == user, Message.ts == ts).get() else: msg = Message.query().filter(Message.channel_id == channel_id, Message.user == user, Message.ts > ts - 1, Message.ts < ts + 1).get() if msg is None: Message(**message).put() else: for k, v in message.items(): setattr(msg, k, v) msg.put()
def regist_user(): name = request.form['name'] if User.query.filter(User.name == name).first(): return render_template('register.thml', message='username already exist') if request.form['password'] == request.form['passwd_confirmation']: password = request.form['password'] user = User(name=name, password=password) db.session.add(user) db.session.commit() return index()
def _import_zip_log(io_buffer): logger.debug('start') szd = SlackZipDumpedLog(zipfile.ZipFile(BytesIO(io_buffer.read()))) ents = set(dir(User)) for user_data in szd.users_data: user_id = user_data['id'] user_data = {k: v for k, v in user_data.items() if k in ents} user = User.query(User.id == user_id).get() if user is None: User(**user_data).put() else: for k, v in user_data.items(): setattr(user, k, v) user.put() logger.debug('user end') ents = set(dir(Channel)) for channel_data in szd.channels_data: channel_id = channel_data['id'] channel_data['created'] = int(channel_data['created']) channel_data = {k: v for k, v in channel_data.items() if k in ents} channel = Channel.query(Channel.id == channel_id).get() if channel is None: Channel(**channel_data).put() else: for k, v in channel_data.items(): setattr(channel, k, v) channel.put() logger.debug('channel end') ents = set(dir(Message)) for channel_id, messages in szd.map_message_data.items(): for message in messages.values(): message['channel_id'] = channel_id user = message.get('user', '') ts_raw = str(message['ts']) ts = float(ts_raw) message['ts'] = ts message['ts_raw'] = ts_raw message = {k: v for k, v in message.items() if k in ents} msg = Message.query().filter(Message.channel_id == channel_id, Message.user == user, Message.ts == ts).get() if msg is None: Message(**message).put() else: for k, v in message.items(): setattr(msg, k, v) msg.put() logger.debug('exit')
def login_index(): form = LoginForm() if request.method == 'POST' and form.validate_on_submit(): user_name = form.username.data password = form.password.data remember_me = form.remember_me.data user = query_user(user_name) if user is not None and password == user['password']: curr_user = User() curr_user.id = user_name login_user(curr_user, remember=True) return redirect(request.args.get('next') or url_for('index')) flash('用户名或密码错误!') return render_template('login/login.html', title="Sign In", form=form)
def setUp(self): self.app = create_app(**test_config) self.client = self.app.test_client() self.db = db self._ctx = self.app.test_request_context() self._ctx.push() with self.app.app_context(): self.db.create_all() # create test model self.model_name = 'test_model' self.model = Model(self.model_name) # create test user self.user = User(email='*****@*****.**', password='******', name='sup') self.model.register(self.user) self.db.session.add(self.user) self.db.session.add(self.model) self.db.session.commit()
def test_no_same_emails(self): """ Checks that two users with the same email cannot be created """ with self.assertRaises(lib.exceptions.DataManipulationException): User("goat", "*****@*****.**", "no").create()
def test_no_same_username(self): """ Checks that two users with the same username cannot be created """ with self.assertRaises(lib.exceptions.DataManipulationException): User("goatsy", "*****@*****.**", "1234").create()
def test_user_can_have_same_name_and_email(self): """ Checks that a user can have the same email and username """ User("*****@*****.**", "*****@*****.**", "hi").create()
def _make_user(self): user = User(email='*****@*****.**', password='******', name='sup2') self.db.session.add(user) self.db.session.commit() return user