From f80607a16c65245b961858138233977cb0df78fd Mon Sep 17 00:00:00 2001 From: tjacovich Date: Wed, 16 Jul 2025 17:12:35 -0400 Subject: [PATCH 1/3] Initial changes to allow for different messages between scixplorer and adsabs. --- .gitignore | 1 + vault_service/tests/test_bumblebee.py | 10 +++++++++- vault_service/views/bumblebee.py | 10 +++++++--- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 003ccbe..923273a 100644 --- a/.gitignore +++ b/.gitignore @@ -21,6 +21,7 @@ parts/ sdist/ var/ venv/ +.venv/ *.egg-info/ .installed.cfg *.egg diff --git a/vault_service/tests/test_bumblebee.py b/vault_service/tests/test_bumblebee.py index f9f3e17..86d1f37 100644 --- a/vault_service/tests/test_bumblebee.py +++ b/vault_service/tests/test_bumblebee.py @@ -23,7 +23,8 @@ def create_app(self): 'TESTING': True, 'PROPAGATE_EXCEPTIONS': True, 'TRAP_BAD_REQUEST_ERRORS': True, - 'VAULT_BUMBLEBEE_OPTIONS': {'foo': 'bar'} + 'VAULT_BUMBLEBEE_OPTIONS': {'foo': 'bar'}, + 'VAULT_NECTAR_OPTIONS': {'foo': 'other-bar'} }) return a @@ -36,6 +37,13 @@ def test_store_data(self): self.assertStatus(r, 200) self.assertTrue(r.json == {'foo': 'bar'}, 'missing json response') + headers = {'Referer': 'https://dev.scixplorer.org'} + + r = self.client.get(url_for('bumblebee.configuration'), + content_type='application/json', headers=headers) + self.assertStatus(r, 200) + self.assertTrue(r.json == {'foo': 'other-bar'}, 'missing json response') + r = self.client.get(url_for('bumblebee.configuration') + '/foo', content_type='application/json') self.assertStatus(r, 200) diff --git a/vault_service/views/bumblebee.py b/vault_service/views/bumblebee.py index e315caa..cd55eac 100644 --- a/vault_service/views/bumblebee.py +++ b/vault_service/views/bumblebee.py @@ -1,8 +1,9 @@ from flask import Blueprint -from flask import current_app +from flask import current_app, request from ..models import Library from operator import itemgetter import json +import urllib from flask_discoverer import advertise @@ -12,9 +13,12 @@ @bp.route('/configuration', methods=['GET']) @bp.route('/configuration/', methods=['GET']) def configuration(key=None): - '''Allows you to retrieve JSON data from VAULT_BUMBLEBEE_OPTIONS''' + '''Allows you to retrieve JSON data from VAULT_BUMBLEBEE_OPTIONS or VAULT_NECTAR_OPTIONS''' - opts = current_app.config.get('VAULT_BUMBLEBEE_OPTIONS') or {} + if urllib.parse.urlparse(request.referrer).netloc in current_app.config.get("NECTAR_REFERRERS",["dev.scixplorer.org"]): + opts = current_app.config.get('VAULT_NECTAR_OPTIONS') or current_app.config.get('VAULT_BUMBLEBEE_OPTIONS') or {} + else: + opts = current_app.config.get('VAULT_BUMBLEBEE_OPTIONS') or {} if not isinstance(opts, dict): return json.dumps({'msg': 'Server misconfiguration, VAULT_BUMBLEBEE_OPTIONS is of an invalid type'}), 500 From 5f8961bd3ac35658553272a919ddba94b2b62a14 Mon Sep 17 00:00:00 2001 From: tjacovich Date: Wed, 16 Jul 2025 17:16:42 -0400 Subject: [PATCH 2/3] Refactor testing. --- vault_service/tests/test_bumblebee.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/vault_service/tests/test_bumblebee.py b/vault_service/tests/test_bumblebee.py index 86d1f37..4842c0d 100644 --- a/vault_service/tests/test_bumblebee.py +++ b/vault_service/tests/test_bumblebee.py @@ -32,12 +32,21 @@ def create_app(self): def test_store_data(self): '''Tests the ability to query site config''' + headers = {'Referer': 'https://dev.scixplorer.org'} + r = self.client.get(url_for('bumblebee.configuration'), content_type='application/json') self.assertStatus(r, 200) self.assertTrue(r.json == {'foo': 'bar'}, 'missing json response') - headers = {'Referer': 'https://dev.scixplorer.org'} + r = self.client.get(url_for('bumblebee.configuration') + '/foo', + content_type='application/json') + self.assertStatus(r, 200) + self.assertTrue(r.json == 'bar', 'missing json response') + + r = self.client.get(url_for('bumblebee.configuration') + '/foox', + content_type='application/json') + self.assertStatus(r, 404) r = self.client.get(url_for('bumblebee.configuration'), content_type='application/json', headers=headers) @@ -45,12 +54,12 @@ def test_store_data(self): self.assertTrue(r.json == {'foo': 'other-bar'}, 'missing json response') r = self.client.get(url_for('bumblebee.configuration') + '/foo', - content_type='application/json') + content_type='application/json', headers=headers) self.assertStatus(r, 200) - self.assertTrue(r.json == 'bar', 'missing json response') + self.assertTrue(r.json == 'other-bar', 'missing json response') r = self.client.get(url_for('bumblebee.configuration') + '/foox', - content_type='application/json') + content_type='application/json', headers=headers) self.assertStatus(r, 404) class TestOpenURL(TestCaseDatabase): From 329efc0947d4f280f20ed737790ccceeb1ef3f2a Mon Sep 17 00:00:00 2001 From: tjacovich Date: Wed, 16 Jul 2025 17:23:07 -0400 Subject: [PATCH 3/3] Add additional test. --- vault_service/tests/test_bumblebee.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/vault_service/tests/test_bumblebee.py b/vault_service/tests/test_bumblebee.py index 4842c0d..fc048ea 100644 --- a/vault_service/tests/test_bumblebee.py +++ b/vault_service/tests/test_bumblebee.py @@ -58,6 +58,11 @@ def test_store_data(self): self.assertStatus(r, 200) self.assertTrue(r.json == 'other-bar', 'missing json response') + r = self.client.get(url_for('bumblebee.configuration') + '/foo', + content_type='application/json', headers=headers) + self.assertStatus(r, 200) + self.assertFalse(r.json == 'bar', 'missing json response') + r = self.client.get(url_for('bumblebee.configuration') + '/foox', content_type='application/json', headers=headers) self.assertStatus(r, 404)