Ejemplo n.º 1
0
def register():
    if current_user.is_authenticated:
        flash('You are logged in')
        return redirect(url_for('main.index', account='musicians'))
    form = SignupForm(request.form)
    if request.method == 'POST' and form.validate():
        user = Profile(username=form.username.data,
                       email=form.email.data,
                       profile_name=None,
                       profile_description=None,
                       profile_image=None,
                       location=None,
                       rating=None,
                       block=0)
        user.set_password(form.password.data)
        try:
            db.session.add(user)
            response = make_response(
                redirect(url_for('main.index', account='musicians')))
            response.set_cookie("username", form.username.data)
            user = Profile.query.filter_by(email=form.email.data).first()
            login_user(user)
            if form.option.data == 'm':
                user = Musician(gender=None,
                                profile_id=current_user.profile_id,
                                birthdate=None,
                                availability=None,
                                sc_id=None)
                db.session.add(user)
            else:
                user = Venue(venue_capacity=None,
                             profile_id=current_user.profile_id,
                             venue_type=None)
                db.session.add(user)
            db.session.commit()
            return response
        except IntegrityError:
            db.session.rollback()
            flash(
                'Unable to register {}. Please try again.'.format(
                    form.username.data), 'error')
            return redirect(url_for('main.index'))
    return render_template('register.html', form=form)
Ejemplo n.º 2
0
class BaseTestCase(TestCase):
    """Base test case."""
    def create_app(self):
        app = create_app('app.config.TestConfig')
        return app

    def setUp(self):
        # Called before every test
        db.create_all()

        # create test data
        self.user_musician = Profile(
            profile_id='2',
            email='*****@*****.**',
            username='******',
            profile_name=None,
            profile_description='Lorem ipsum dolor sit amet, '
            'consectetur adipiscing elit. '
            'Maecenas ac metus a erat facilisis dignissim.',
            location='London',
            rating=None,
            profile_image=None,
            block='0')
        self.user_venue = Profile(profile_id='1',
                                  email='*****@*****.**',
                                  username='******',
                                  profile_name=None,
                                  profile_description=None,
                                  location=None,
                                  rating=None,
                                  profile_image=None,
                                  block='0')
        self.genre = Genre(genre_id='1', genre_name='Rock')
        self.genre_profile = Profile_Genre(profile_id='2', genre_id='1')
        self.venue = Venue(venue_id='1',
                           venue_capacity=None,
                           venue_type=None,
                           profile_id='1')
        self.musician = Musician(musician_id='1',
                                 gender='1',
                                 profile_id='2',
                                 birthdate=None,
                                 availability=None,
                                 sc_id=None)
        self.user_venue.set_password('vizon')
        self.user_musician.set_password('bryan')
        db.session.add(self.user_musician)
        db.session.add(self.genre)
        db.session.add(self.genre_profile)
        db.session.add(self.user_venue)
        db.session.add(self.venue)
        db.session.add(self.musician)
        db.session.commit()

    def tearDown(self):
        # Called at the end of every test
        db.session.remove()
        db.drop_all()

    def login(self, email, password):
        return self.client.post('/login',
                                data=dict(email=email, password=password),
                                follow_redirects=True)

    def search(self, search_term, search_type, category):
        return self.client.post('/search',
                                data=dict(search_term=search_term,
                                          search_type=search_type,
                                          category=category),
                                follow_redirects=True)

    def logout(self):
        return self.client.get('/logout/', follow_redirects=True)

    def register(self, username, email, password, confirm):
        return self.client.post('/register/',
                                data=dict(username=username,
                                          email=email,
                                          password=password,
                                          confirm=confirm),
                                follow_redirects=True)

    def setting(self, username, email, password, confirm, submit):
        return self.client.post('/settings',
                                data=dict(username=username,
                                          email=email,
                                          password=password,
                                          confirm=confirm,
                                          submit=submit),
                                follow_redirects=True)

    def edit_profile(self, description, profile_name, location, genre,
                     profile_image, birthdate, availability, sc_id, submit):
        return self.client.post('//edit_profile',
                                data=dict(description=description,
                                          profile_name=profile_name,
                                          location=location,
                                          genre=genre,
                                          profile_image=profile_image,
                                          birthdate=birthdate,
                                          availability=availability,
                                          sc_id=sc_id,
                                          submit=submit),
                                follow_redirects=True)

    # Provides the details for a musician.
    musician_data = dict(username='******',
                         email='*****@*****.**',
                         password='******',
                         confirm='daniel',
                         option='m',
                         submit='Register')
    venue_data = dict(username='******',
                      email='*****@*****.**',
                      password='******',
                      confirm='dillon',
                      option='v',
                      submit='Register')
    existing_data = dict(username='******',
                         email='*****@*****.**',
                         password='******',
                         confirm='vizon',
                         option='v',
                         submit='Register')
    none_data = dict(username=None,
                     email=None,
                     password=None,
                     confirm=None,
                     option=None,
                     submit='Register')

    unregistered_data = dict(username='******',
                             email='*****@*****.**',
                             password='******',
                             confirm='dan',
                             submit='Save')
    registered_data = dict(username='******',
                           email='*****@*****.**',
                           password='******',
                           confirm='vizon',
                           submit='Save')

    new_profile_data = dict(description=None,
                            profile_name='Gunawan',
                            location='London',
                            genre='Drum and Bass',
                            profile_image=None,
                            birthdate=None,
                            availability='1',
                            sc_id=None,
                            submit='Save')