def test_roles(self): username = uuid.uuid4().hex password = uuid.uuid4().hex user = User.create(username, password) self.assertTrue(user.has_roles()) username = uuid.uuid4().hex password = uuid.uuid4().hex user = User(username=username, password=password) role_names = map(lambda i: uuid.uuid4().hex, range(3)) roles = [] for role_name in role_names: role = Role.create(role_name) user.roles.append(role) roles.append(role) db.session.add(user) db.session.commit() self.assertTrue( user.has_roles(allowed=[roles[0].name, roles[1].name])) self.assertTrue( user.has_roles(allowed=[roles[0].name, "foo"])) self.assertTrue( user.has_roles(allowed=["foo", roles[0].name])) self.assertFalse( user.has_roles(allowed=["foo"])) self.assertTrue( user.has_roles(required=[roles[0].name, roles[1].name])) self.assertFalse( user.has_roles(required=[roles[0].name, roles[1].name, "foo"]))
def test_user_auth_token(self): username = uuid.uuid4().hex password = uuid.uuid4().hex user = User.create(username, password) self.assertEqual( user.get_auth_token(), login_serializer.dumps([str(user.id), user.password]))
def test_roles(self): username = uuid.uuid4().hex password = uuid.uuid4().hex user = User.create(username, password) self.assertTrue(user.has_roles()) username = uuid.uuid4().hex password = uuid.uuid4().hex user = User(username=username, password=password) role_names = map(lambda i: uuid.uuid4().hex, range(3)) roles = [] for role_name in role_names: role = Role.create(role_name) user.roles.append(role) roles.append(role) db.session.add(user) db.session.commit() self.assertTrue(user.has_roles(allowed=[roles[0].name, roles[1].name])) self.assertTrue(user.has_roles(allowed=[roles[0].name, "foo"])) self.assertTrue(user.has_roles(allowed=["foo", roles[0].name])) self.assertFalse(user.has_roles(allowed=["foo"])) self.assertTrue( user.has_roles(required=[roles[0].name, roles[1].name])) self.assertFalse( user.has_roles(required=[roles[0].name, roles[1].name, "foo"]))
def test_create_user(self): username = uuid.uuid4().hex password = uuid.uuid4().hex user_id = User.create(username, password).id db.session.remove() user = User.query.filter_by(id=user_id).first() self.assertIsNotNone(user) self.assertEqual(user.username, username)
def setUp(self): super(TestLogin, self).setUp() # create a normal user self.normal_username = uuid.uuid4().hex self.normal_password = uuid.uuid4().hex self.normal_user = User.create(self.normal_username, self.normal_password) # create an admin self.admin_username = uuid.uuid4().hex self.admin_password = uuid.uuid4().hex self.admin_user = User.create(self.admin_username, self.admin_password) self.admin_user.roles.append(Role.create("admin")) # commit the changes to the database db.session.commit()
def test_check_password(self): username = uuid.uuid4().hex password = uuid.uuid4().hex user = User.create(username, password) self.assertTrue(user.check_password(password)) self.assertFalse(user.check_password("")) with self.assertRaises(AssertionError): user.check_password(None)
def setUp(self): super(TestLogin, self).setUp() # create a normal user self.normal_username = uuid.uuid4().hex self.normal_password = uuid.uuid4().hex self.normal_user = User.create( self.normal_username, self.normal_password) # create an admin self.admin_username = uuid.uuid4().hex self.admin_password = uuid.uuid4().hex self.admin_user = User.create( self.admin_username, self.admin_password) self.admin_user.roles.append(Role.create("admin")) # commit the changes to the database db.session.commit()
def test_get(self): username = uuid.uuid4().hex password = uuid.uuid4().hex user = User.create(username, password) user_by_id = User.get(user.id) self.assertEqual(user_by_id.id, user.id) user_by_name = User.get(user.username) self.assertEqual(user_by_name.id, user.id) with self.assertRaises(TypeError): User.get(None)
def test_is_active(self): username = uuid.uuid4().hex password = uuid.uuid4().hex user = User.create(username, password) self.assertTrue(user.is_active()) user.active = False self.assertFalse(user.is_active()) user.active = True self.assertTrue(user.is_active()) user.expiration = datetime.now() + timedelta(seconds=.5) time.sleep(1.5) self.assertFalse(user.is_active()) user.expiration = datetime.now() + timedelta(days=1) self.assertTrue(user.is_active())
def setup_page(): form = NewUserForm(request.form) if request.method == "GET": # create the admin role if it does not exist and # find any existing administrators admin_role = Role.query.filter_by(name="admin").first() if admin_role is None: admin_role = Role.create("admin") admin_users = [] else: admin_users = admin_role.users return render_template("pyfarm/setup.html", form=form, admin_role=admin_role, admin_users=admin_users) elif request.method == "POST": if form.validate(): # make sure we're still the only admin admin_role = Role.query.filter_by(name="admin").first() if admin_role and admin_role.users.first(): return render_template( "pyfarm/setup.html", error="someone else created an administrator") user = User.create(request.form["username"], request.form["password"], email=request.form["email"]) user.roles.append(Role.create("admin")) db.session.add(user) db.session.commit() return render_template("pyfarm/setup.html", finished=True, redirect_seconds=5) return render_template("pyfarm/setup.html", form=form)
def setup_page(): form = NewUserForm(request.form) if request.method == "GET": # create the admin role if it does not exist and # find any existing administrators admin_role = Role.query.filter_by(name="admin").first() if admin_role is None: admin_role = Role.create("admin") admin_users = [] else: admin_users = admin_role.users return render_template( "pyfarm/setup.html", form=form, admin_role=admin_role, admin_users=admin_users) elif request.method == "POST": if form.validate(): # make sure we're still the only admin admin_role = Role.query.filter_by(name="admin").first() if admin_role and admin_role.users.first(): return render_template( "pyfarm/setup.html", error="someone else created an administrator") user = User.create( request.form["username"], request.form["password"], email=request.form["email"]) user.roles.append(Role.create("admin")) db.session.add(user) db.session.commit() return render_template( "pyfarm/setup.html", finished=True, redirect_seconds=5) return render_template("pyfarm/setup.html", form=form)
def test_get_id(self): username = uuid.uuid4().hex password = uuid.uuid4().hex user = User.create(username, password) self.assertEqual(user.get_id(), user.id)
def test_hash_password(self): username = uuid.uuid4().hex password = uuid.uuid4().hex user = User.create(username, password) self.assertEqual(user.password, User.hash_password(password))