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)
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')