def setUp(self): ServerTestCase.setUp(self) DatabaseTestCase.setUp(self) self.log = logging.getLogger(__name__) self.influx = InfluxDBClient( host=current_app.config['INFLUX_HOST'], port=current_app.config['INFLUX_PORT'], database=current_app.config['INFLUX_DB_NAME'], ) self.influx.query('''create database %s''' % current_app.config['INFLUX_DB_NAME']) self.logstore = init_influx_connection( self.log, { 'REDIS_HOST': current_app.config['REDIS_HOST'], 'REDIS_PORT': current_app.config['REDIS_PORT'], 'REDIS_NAMESPACE': current_app.config['REDIS_NAMESPACE'], 'INFLUX_HOST': current_app.config['INFLUX_HOST'], 'INFLUX_PORT': current_app.config['INFLUX_PORT'], 'INFLUX_DB_NAME': current_app.config['INFLUX_DB_NAME'], }) user = db_user.get_or_create(1, 'iliekcomputers') db_user.agree_to_gdpr(user['musicbrainz_id']) self.user = User.from_dbrow(user) weirduser = db_user.get_or_create(2, 'weird\\user name') self.weirduser = User.from_dbrow(weirduser)
def setUp(self): ServerTestCase.setUp(self) DatabaseTestCase.setUp(self) self.user = db_user.get_or_create(1, 'iliekcomputers') db_user.agree_to_gdpr(self.user['musicbrainz_id']) self.weirduser = db_user.get_or_create(2, 'weird\\user name') db_user.agree_to_gdpr(self.weirduser['musicbrainz_id'])
def setUp(self): ServerTestCase.setUp(self) DatabaseTestCase.setUp(self) self.authorized_user = db_user.get_or_create(1, 'iliekcomputers') db_user.agree_to_gdpr(self.authorized_user['musicbrainz_id']) self.unauthorized_user = db_user.get_or_create(2, 'blahblahblah') db_user.agree_to_gdpr(self.unauthorized_user['musicbrainz_id'])
def test_menu_logged_in_error_dont_show_user_loaded(self, mock_user_get): """ If the user is logged in, if we show a 500 error, do not show the user menu If the user has previously been loaded in the view, check that it's not loaded while rendering the template""" user = db_user.get_or_create(1, 'iliekcomputers') db_user.agree_to_gdpr(user['musicbrainz_id']) user = db_user.get_or_create(1, 'iliekcomputers') mock_user_get.return_value = user @self.app.route('/page_that_returns_500') @login_required def view500(): # flask-login user is loaded during @login_required, so check that the db has been queried mock_user_get.assert_called_with(user['login_id']) raise InternalServerError('error') self.temporary_login(user['login_id']) resp = self.client.get('/page_that_returns_500') data = resp.data.decode('utf-8') self.assertIn('Import', data) # item not in user menu self.assertNotIn('My Listens', data) self.assertNotIn('Sign in', data) # Even after rendering the template, the database has only been queried once (before the exception) mock_user_get.assert_called_once() self.assertIsInstance(self.get_context_variable('current_user'), listenbrainz.webserver.login.User)
def setUp(self): super(ProfileViewsTestCase, self).setUp() self.user = db_user.get_or_create(1, 'iliekcomputers') db_user.agree_to_gdpr(self.user['musicbrainz_id']) self.weirduser = db_user.get_or_create(2, 'weird\\user name') db_user.agree_to_gdpr(self.weirduser['musicbrainz_id']) self.service = SpotifyService()
def test_menu_logged_in_error_show(self, mock_user_get): """ If the user is logged in, if we show a 400 or 404 error, show the user menu""" @self.app.route('/page_that_returns_400') def view400(): raise BadRequest('bad request') @self.app.route('/page_that_returns_404') def view404(): raise NotFound('not found') user = db_user.get_or_create(1, 'iliekcomputers') db_user.agree_to_gdpr(user['musicbrainz_id']) user = db_user.get_or_create(1, 'iliekcomputers') mock_user_get.return_value = user self.temporary_login(user['id']) resp = self.client.get('/page_that_returns_400') data = resp.data.decode('utf-8') self.assert400(resp) # username (menu header) self.assertIn('iliekcomputers', data) self.assertIn('Import!', data) # item in user menu self.assertIn('Your Listens', data) mock_user_get.assert_called_with(user['id']) resp = self.client.get('/page_that_returns_404') data = resp.data.decode('utf-8') self.assert404(resp) # username (menu header) self.assertIn('iliekcomputers', data) self.assertIn('Import!', data) # item in user menu self.assertIn('Your Listens', data) mock_user_get.assert_called_with(user['id'])
def setUp(self): self.server_url = "https://labs.api.listenbrainz.org/recording-mbid-lookup/json" super(CFRecommendationsViewsTestCase, self).setUp() self.user = db_user.get_or_create(1, 'vansika') db_user.agree_to_gdpr(self.user['musicbrainz_id']) self.user2 = db_user.get_or_create(2, 'vansika_1') self.user3 = db_user.get_or_create(3, 'vansika_2') # generate test data data = {"recording_mbid": []} for score in range(1500, 0, -1): data["recording_mbid"].append( { "recording_mbid": str(uuid.uuid4()), "score": score } ) db_recommendations_cf_recording.insert_user_recommendation( 2, UserRecommendationsJson(**{ 'top_artist': data['recording_mbid'], 'similar_artist': [] }) ) db_recommendations_cf_recording.insert_user_recommendation( 3, UserRecommendationsJson(**{ 'top_artist': [], 'similar_artist': data['recording_mbid'] }) )
def setUp(self): self.server_url = "https://labs.api.listenbrainz.org/recording-mbid-lookup/json" ServerTestCase.setUp(self) DatabaseTestCase.setUp(self) self.user = db_user.get_or_create(1, 'vansika') db_user.agree_to_gdpr(self.user['musicbrainz_id']) self.user2 = db_user.get_or_create(2, 'vansika_1') self.user3 = db_user.get_or_create(3, 'vansika_2') # insert recommendations with open(self.path_to_data_file('cf_recommendations_db_data_for_api_test_recording.json'), 'r') as f: self.payload = json.load(f) db_recommendations_cf_recording.insert_user_recommendation( 2, UserRecommendationsJson(**{ 'top_artist': self.payload['recording_mbid'], 'similar_artist': [] }) ) db_recommendations_cf_recording.insert_user_recommendation( 3, UserRecommendationsJson(**{ 'top_artist': [], 'similar_artist': self.payload['recording_mbid'] }) )
def setUp(self): ServerTestCase.setUp(self) DatabaseTestCase.setUp(self) self.authorized_user = db_user.get_or_create(1, 'iliekcomputers') db_user.agree_to_gdpr(self.authorized_user['musicbrainz_id']) self.unauthorized_user = db_user.get_or_create(2, 'blahblahblah') db_user.agree_to_gdpr(self.unauthorized_user['musicbrainz_id'])
def setUp(self): super().setUp() self.user = db_user.get_or_create(1, 'iliekcomputers') db_user.agree_to_gdpr(self.user['musicbrainz_id']) # Initialize brainzutils cache init_cache(host=current_app.config['REDIS_HOST'], port=current_app.config['REDIS_PORT'], namespace=current_app.config['REDIS_NAMESPACE']) self.redis = cache._r
def setUp(self): super(UserViewsTestCase, self).setUp() self.log = logging.getLogger(__name__) self.logstore = timescale_connection._ts user = db_user.get_or_create(1, 'iliekcomputers') db_user.agree_to_gdpr(user['musicbrainz_id']) self.user = User.from_dbrow(user) weirduser = db_user.get_or_create(2, 'weird\\user name') self.weirduser = User.from_dbrow(weirduser) abuser = db_user.get_or_create(3, 'abuser') self.abuser = User.from_dbrow(abuser)
def test_menu_logged_in(self, mock_user_get): """ If the user is logged in, check that we perform a database query to get user data """ user = db_user.get_or_create(1, 'iliekcomputers') db_user.agree_to_gdpr(user['musicbrainz_id']) user = db_user.get_or_create(1, 'iliekcomputers') mock_user_get.return_value = user self.temporary_login(user['id']) resp = self.client.get(url_for('index.index')) data = resp.data.decode('utf-8') # username (menu header) self.assertIn('iliekcomputers', data) self.assertIn('Import!', data) # item in user menu self.assertIn('Your Listens', data) mock_user_get.assert_called_with(user['id'])
def test_menu_logged_in_error_dont_show_no_user(self, mock_user_get): """ If the user is logged in, if we show a 500 error, do not show the user menu Don't query the database to get a current_user for the template context""" @self.app.route('/page_that_returns_500') def view500(): raise InternalServerError('error') user = db_user.get_or_create(1, 'iliekcomputers') db_user.agree_to_gdpr(user['musicbrainz_id']) user = db_user.get_or_create(1, 'iliekcomputers') mock_user_get.return_value = user self.temporary_login(user['login_id']) resp = self.client.get('/page_that_returns_500') data = resp.data.decode('utf-8') # item not in user menu self.assertNotIn('My Listens', data) self.assertNotIn('Sign in', data) self.assertIn('Import', data)
def setUp(self): ServerTestCase.setUp(self) DatabaseTestCase.setUp(self) self.log = logging.getLogger(__name__) self.logstore = init_timescale_connection(self.log, { 'REDIS_HOST': current_app.config['REDIS_HOST'], 'REDIS_PORT': current_app.config['REDIS_PORT'], 'REDIS_NAMESPACE': current_app.config['REDIS_NAMESPACE'], 'SQLALCHEMY_TIMESCALE_URI': self.app.config['SQLALCHEMY_TIMESCALE_URI'] }) user = db_user.get_or_create(1, 'iliekcomputers') db_user.agree_to_gdpr(user['musicbrainz_id']) self.user = User.from_dbrow(user) weirduser = db_user.get_or_create(2, 'weird\\user name') self.weirduser = User.from_dbrow(weirduser)
def gdpr_notice(): if request.method == 'GET': return render_template('index/gdpr.html', next=request.args.get('next')) elif request.method == 'POST': if request.form.get('gdpr-options') == 'agree': try: db_user.agree_to_gdpr(current_user.musicbrainz_id) except DatabaseException as e: flash.error('Could not store agreement to GDPR terms') next = request.form.get('next') if next: return redirect(next) return redirect(url_for('index.index')) elif request.form.get('gdpr-options') == 'disagree': return redirect(url_for('profile.delete')) else: flash.error('You must agree to or decline our terms') return render_template('index/gdpr.html', next=request.args.get('next'))
def setUp(self): ServerTestCase.setUp(self) DatabaseTestCase.setUp(self) self.user = db_user.get_or_create(1, 'iliekcomputers') db_user.agree_to_gdpr(self.user['musicbrainz_id']) self.user2 = db_user.get_or_create(2, 'iliekcomputers_2') db_user.agree_to_gdpr(self.user2['musicbrainz_id']) self.user3 = db_user.get_or_create(3, 'iliekcomputers_3') db_user.agree_to_gdpr(self.user3['musicbrainz_id'])
def test_feed_page_404s_for_non_devs(self): user = db_user.get_or_create(1, 'iamnotadev') db_user.agree_to_gdpr(user['musicbrainz_id']) self.temporary_login(user['login_id']) r = self.client.get('/feed') self.assert404(r)
def setUp(self): super().setUp() self.user = db_user.get_or_create(1, 'iliekcomputers') db_user.agree_to_gdpr(self.user['musicbrainz_id'])
def setUp(self): IntegrationTestCase.setUp(self) TimescaleTestCase.setUp(self) self.user = db_user.get_or_create(1, 'testuserpleaseignore') db_user.agree_to_gdpr(self.user['musicbrainz_id']) self.user2 = db_user.get_or_create(2, 'all_muppets_all_of_them')
def setUp(self): super().setUp() self.user = db_user.get_or_create(1, 'iliekcomputers') db_user.agree_to_gdpr(self.user['musicbrainz_id'])
def test_feed_page(self): user = db_user.get_or_create(1, 'iliekcomputers') db_user.agree_to_gdpr(user['musicbrainz_id']) self.temporary_login(user['login_id']) r = self.client.get('/feed/') self.assert200(r)