示例#1
0
def create_user():
    with app.app_context():
        user = models.User('test', '*****@*****.**')
        user.end_point = models.EndPoint.get_default()
        user.billing_plan = models.BillingPlan.get_default(user.end_point)
        models.db.session.add(user)
        models.db.session.commit()
        return user.id
示例#2
0
def create_user(geojson_feature_collection):
    with app.app_context():
        user = models.User('test', '*****@*****.**')
        user.end_point = models.EndPoint.get_default()
        user.billing_plan = models.BillingPlan.get_default(user.end_point)
        user.shape = json.dumps(geojson_feature_collection)
        models.db.session.add(user)
        models.db.session.commit()
        return user.id
示例#3
0
    def post(self):
        user = None
        parser = reqparse.RequestParser()
        parser.add_argument('login',
                            type=unicode,
                            required=True,
                            case_sensitive=False,
                            help='login is required',
                            location=('json', 'values'))
        parser.add_argument('email',
                            type=unicode,
                            required=True,
                            case_sensitive=False,
                            help='email is required',
                            location=('json', 'values'))
        parser.add_argument('end_point_id',
                            type=int,
                            required=False,
                            help='id of the end_point',
                            location=('json', 'values'))
        parser.add_argument(
            'type',
            type=str,
            required=False,
            default='with_free_instances',
            help=
            'type of user: [with_free_instances, without_free_instances, super_user]',
            location=('json', 'values'),
            choices=[
                'with_free_instances', 'without_free_instances', 'super_user'
            ])
        args = parser.parse_args()

        if not validate_email(args['email'],
                              check_mx=current_app.config['EMAIL_CHECK_MX'],
                              verify=current_app.config['EMAIL_CHECK_SMTP']):
            return ({'error': 'email invalid'}, 400)

        end_point = None
        if args['end_point_id']:
            end_point = models.EndPoint.query.get_or_404(args['end_point_id'])
        else:
            end_point = models.EndPoint.get_default()

        try:
            user = models.User(login=args['login'], email=args['email'])
            user.type = args['type']
            user.end_point = end_point
            db.session.add(user)
            db.session.commit()
            return marshal(user, user_fields_full)
        except (sqlalchemy.exc.IntegrityError, sqlalchemy.orm.exc.FlushError):
            return ({'error': 'duplicate user'}, 409)
        except Exception:
            logging.exception("fail")
            raise
示例#4
0
def create_multiple_users(request, geojson_polygon):
    with app.app_context():
        end_point = models.EndPoint()
        end_point.name = 'myEndPoint'
        billing_plan = models.BillingPlan()
        billing_plan.name = 'free'
        billing_plan.end_point = end_point

        user1 = models.User('foo', '*****@*****.**')
        user1.end_point = end_point
        user1.billing_plan = billing_plan
        user1.shape = json.dumps(geojson_polygon)

        user2 = models.User('foodefault', '*****@*****.**')
        user2.end_point = models.EndPoint.get_default()
        user2.billing_plan = models.BillingPlan.get_default(user2.end_point)

        models.db.session.add(end_point)
        models.db.session.add(billing_plan)
        models.db.session.add(user1)
        models.db.session.add(user2)
        models.db.session.commit()
        # we end the context but need to keep some id for later (object won't survive this lost!)
        d = {
            'user1': user1.id,
            'user2': user2.id,
            'end_point': end_point.id,
            'billing_plan': billing_plan.id
        }

    # we can't truncate end_point and billing_plan, so we have to delete them explicitly
    def teardown():
        with app.app_context():
            end_point = models.EndPoint.query.get(d['end_point'])
            billing_plan = models.BillingPlan.query.get(d['billing_plan'])
            models.db.session.delete(end_point)
            models.db.session.delete(billing_plan)
            models.db.session.commit()

    request.addfinalizer(teardown)

    return d
示例#5
0
文件: v1_test.py 项目: cuulee/navitia
def create_5_users():
    with app.app_context():
        for i in range(5):
            user_name = 'user{}'.format(str(i))
            user = models.User(user_name, '{}@example.com'.format(user_name))
            models.db.session.add(user)
        models.db.session.commit()

        # Return only 1 id for test purpose
        yield user.id

        for user in models.User.query.all():
            models.db.session.delete(user)
        models.db.session.commit()
示例#6
0
    def post(self):
        user = None
        parser = reqparse.RequestParser()
        parser.add_argument('login', type=unicode, required=True,
                case_sensitive=False, help='login is required')
        parser.add_argument('email', type=unicode, required=True,
                case_sensitive=False, help='email is required')
        args = parser.parse_args()

        if not validate_email(args['email'],
                          check_mx=current_app.config['EMAIL_CHECK_MX'],
                          verify=current_app.config['EMAIL_CHECK_SMTP']):
            return ({'error': 'email invalid'}, 400)

        try:
            user = models.User(login=args['login'], email=args['email'])
            db.session.add(user)
            db.session.commit()
            return marshal(user, user_fields_full)
        except sqlalchemy.exc.IntegrityError:
            return ({'error': 'duplicate user'}, 409)
        except Exception:
            logging.exception("fail")
            raise