Пример #1
0
    def test_user_management(self):
        """
        test user creation and deletion
        """
        # creation
        user = User.create('*****@*****.**', 'world')
        self.assertTrue(user)

        # retrieve
        self.assertTrue(User.get_by_id(user.id))
        self.assertTrue(User.get_by_email(user.email))

        # duplicated users
        self.assertFalse(User.create('*****@*****.**', 'world'))

        try:
            user2 = User(email='*****@*****.**', password='******')
            user2.save()
        except UserSaveError:
            pass
        else:
            self.assertFalse('The user wrongly saved')

        # deletion
        self.assertTrue(user.delete())
        user4 = User.get_by_email('*****@*****.**')
        self.assertFalse(user4)
Пример #2
0
    def test_picks(self):
        a = Rock1500Artist(name="Test Artist")
        album = Rock1500Album(name='Test Album', artist=a)

        # Add several songs.
        for i in range(1, 10):
            db.session.add(Rock1500Song(title='Song %s' % i, artist=a, album=album))

        db.session.commit()

        rock_picker = User.create("rocker")
        for i in range(4):
            Rock1500Pick(
                song=Rock1500Song.find_by_name('Song %s' % (i + 1), artist=a),
                position=i,
                user=rock_picker,
            )

        db.session.add(rock_picker)
        db.session.commit()

        user = User.query.get(rock_picker.id)
        print(user)

        self.assertEqual(len(user.rock_picks), 4)
        self.assertEqual(user.rock_picks[0].song.title, "Song 1")
        self.assertEqual(user.rock_picks[3].song.title, "Song 4")
Пример #3
0
    def setUp(self):
        from service import main
        from paste.deploy import appconfig
        from webtest import TestApp

        # set settings
        os.environ['PYRAMID_SETTINGS'] = 'development.ini#main'
        self.settings = appconfig('config:{}'.format(os.environ['PYRAMID_SETTINGS']), relative_to='.')
        app = main({}, **self.settings)
        self.testapp = TestApp(app)
        self.config = testing.setUp(settings=self.settings)

        self.created_ids = []

        # init user
        self.user = User.create('*****@*****.**', 'hello')
        payload = {
            'email': '*****@*****.**',
            'password': '******',
        }
        response = self.testapp.post_json('/api/v1/authenticate', payload, status=200)
        self.access_token = response.json['access_token']

        # init business
        address = {
            'street1': 'Central Park',
            'city': 'New York',
            'state': 'NY',
        }
        self.business = Business.create('Test Location', address)
Пример #4
0
 def create_model(self, form):
     email = form.email.data
     user = User.create(email)
     user.is_active = True
     user.profile.firstname = form.firstname.data
     user.profile.lastname = form.lastname.data
     db.session.commit()
     return user
Пример #5
0
def friends(reset=False):

    if reset:
        print("Reset not supported for users.")
        return

    for i in range(0, 5):
        user = User.create('*****@*****.**' % i)
        db.session.add(user)
    db.session.commit()
Пример #6
0
def run(env):
    user = User.create('*****@*****.**', 'test')
    print 'created user'

    businesses = create_businesses()
    business = businesses[0]
    print 'created businesses'

    reviews = create_reviews(user, business)
    print 'created reviews'
Пример #7
0
    def setUp(self):
        from paste.deploy import appconfig

        os.environ['PYRAMID_SETTINGS'] = 'development.ini#main'
        self.settings = appconfig('config:{}'.format(os.environ['PYRAMID_SETTINGS']), relative_to='.')
        self.config = testing.setUp(settings=self.settings)
        self.created_ids = []

        user = User.create('*****@*****.**', 'world')
        self.user = User.get_by_email('*****@*****.**')
        self.business = self.create_business()
Пример #8
0
    def setUp(self):
        from service import main
        from paste.deploy import appconfig
        from webtest import TestApp

        # set settings
        os.environ['PYRAMID_SETTINGS'] = 'development.ini#main'
        self.settings = appconfig('config:{}'.format(os.environ['PYRAMID_SETTINGS']), relative_to='.')
        app = main({}, **self.settings)
        self.testapp = TestApp(app)
        self.config = testing.setUp(settings=self.settings)

        self.user = User.create('*****@*****.**', 'hello')
Пример #9
0
    def createUser(self, username):
        user = User.create(
            username + '@test.mudge.co.nz',
            password='******')
        user.profile.firstname = 'Test'
        user.profile.lastname = 'User'
        user.is_active = True
        db.session.commit()

        self.users[username] = {
            'email': user.email,
            'password': '******'
        }
        return user
Пример #10
0
def prompt(env):
    email = raw_input('email: ')
    password1, password2 = pprompt()

    while password1 != password2:
        print "Passwords do not match. Try again."
        password1, password2 = pprompt()

    user = User.create(email, password1)

    if user:
        print "user '{}' created".format(user.id)
    else:
        # TODO: better error messaging
        print "error: user {} not created".format(email)
Пример #11
0
def create_user(email, password=None, admin=False):

    user = User.query.filter_by(email=email).first()

    if not user:
        print("Create new user")
        user = User.create(email=email, password=password)
    else:
        print("Already exists, will update password")
        user.set_password(password)

    # Make sure the user is usable.
    user.is_active = True
    user.admin = admin

    db.session.commit()
Пример #12
0
    def users_post(request):
        """
        an endpoint to create new users

        new users are not active by default

        TODO: have a user activation process


        errors
        ======

        * status 400 - if failed


        returns
        =======

        ::

            {
                "id": ""
            }
        """
        email = request.validated['email']
        password = request.validated['password']

        user = User.create(email, password)

        if user:
            # TODO: send activation email
            logger.debug('new user created')
            response_body = json.dumps({'id': user.json['id']})
        else:
            logger.debug('failed to create new user')
            request.response.status_int = 400
            response_body = json.dumps({
                'status': 'error',
                'message': 'failed to create new user'
            })

        request.response.body = response_body
        request.response.content_type = 'application/json'
        return request.response
Пример #13
0
    def wrapper(*args, **kwargs):
        try:
            token = request.headers.environ['HTTP_AUTHORIZATION']
            try:
                # validate token with google
                idinfo = id_token.verify_oauth2_token(token, requests.Request(), CLIENT_ID)
                google_id = idinfo["sub"]
                name = idinfo["name"]
                email = idinfo["email"]
                picture = idinfo["picture"]

                if not User.exist(email):
                    g.user = User.create(name, email, picture, google_id)
                else:
                    g.user = User.exist(email)
            except ValueError:
                abort(401, {"message": "Invalid token"})
        except:
            abort(401, {"message": "Invalid token"})
        return func(*args, **kwargs)
Пример #14
0
def test_create_user_with_success():
    User.create(username='******', email='*****@*****.**', password='******', confirm_password='******')
    user = User.query.filter_by(username='******').one()
    assert user.email == '*****@*****.**'
Пример #15
0
def test_create_user_raises_error(user, exception, username, email, password, confirm_password):
    with pytest.raises(exception):
        User.create(username=username, email=email, password=password, confirm_password=confirm_password)
Пример #16
0
def create_admin(console=True):
    email = raw_input('Email: ')
    password = raw_input('Password: '******'Ok')
Пример #17
0
 def create_user(self):
     # check user
     user = User.create('*****@*****.**', 'hello')
     self.assertTrue(user)
     return user
Пример #18
0
def create_admin(console=True):
    email = raw_input('Email: ')
    password = raw_input('Password: '******'Ok')
Пример #19
0
def create_user():
    """ Create User

    Create a new user
    ---
    tags:
      - User
    parameters:
      - in: body
        name: body
        required: true
        schema:
          id: create_edit_user_form
          required:
            - username
            - email
            - password
            - confirm_password
          properties:
            username:
              type: string
            email:
              type: string
            password:
              type: string
            confirm_password:
              type: string
    responses:
      201:
        description: Created User
        schema:
          id: create_edit_user
          properties:
            user:
              schema:
                $ref: "#/definitions/User"
      400:
        description: Invalid json informations
        schema:
          $ref: "#/definitions/generic_error"
      401:
        description: Invalid credentials
        schema:
          $ref: "#/definitions/generic_error"
      409:
        description: Conflict
        schema:
          $ref: "#/definitions/generic_error"
    """
    required_fields = ('username', 'email', 'password', 'confirm_password')
    if all(request.json.get(field) for field in required_fields):
        username = request.json.get('username')
        email = request.json.get('email')
        password = request.json.get('password')
        confirm_password = request.json.get('confirm_password')
    else:
        return abort(400)

    try:
        user = User.create(username=username, email=email, password=password, confirm_password=confirm_password)
        data = {'user': dict_object(user)}
        return jsonify(data), 201

    except (InvalidUsername, InvalidEmail, InvalidPassword, PasswordMismatch):
        abort(400)

    except UserAlreadyExist:
        abort(409)