Exemple #1
0
    def test_get_pipeline_fields(self):

        app = MendeleyCache('mendeleycache')
        app.testing = True

        sut = app.test_client()
        """:type : FlaskClient"""

        # Fire fields versus an empty database
        response = sut.get('/fields', follow_redirects=True)
        """:type : Response"""

        self.assertEqual(response.status_code, 200)
        data = response.get_data(as_text=True)
        json_data = json.loads(data)
        self.assertEqual(len(json_data), 0)

        # Trigger the pipeline
        app.pipeline_controller.execute()

        # Fire fields versus a filled database
        response = sut.get('/fields', follow_redirects=True)
        """:type : Response"""

        self.assertEqual(response.status_code, 200)
        data = response.get_data(as_text=True)
        json_data = json.loads(data)
        self.assertEqual(len(json_data), 14)
Exemple #2
0
def sample_api():
    app = MendeleyCache('mendeleycache')
    app.debug = True
    report = app.pipeline_controller.execute()

    sut = app.test_client()
    """:type : FlaskClient"""

    calls = [
        '/fields/', '/profiles/?slim=true', '/profiles/',
        str('/profiles/'
            '?field-ids=Y29udGludW91c3NvZnR3YXJlZW5naW5lZXJpbmc%3D'),
        str('/profiles/'
            '?profile-ids=Y29uc3RhbnRpbnNjaGV1ZXJtYW5u'
            '&field-ids=Y29udGludW91c3NvZnR3YXJlZW5naW5lZXJpbmc%3D'),
        '/documents/',
        str('/documents/'
            '?profile-ids=c3RlcGhhbmtydXNjaGU%3D'
            '&field-ids=Y29udGludW91c3NvZnR3YXJlZW5naW5lZXJpbmc%3D'),
        str('/documents/'
            '?profile-ids=c3RlcGhhbmtydXNjaGU%3D'
            '&field-ids=Y29udGludW91c3NvZnR3YXJlZW5naW5lZXJpbmc%3D'
            '&limit=1&offset=1'),
        str('/documents/'
            '?profile-ids=c3RlcGhhbmtydXNjaGU%3D'
            '&field-ids=Y29udGludW91c3NvZnR3YXJlZW5naW5lZXJpbmc%3D'
            '&limit=1&order-attr=year&order-dir=desc'),
        str('/documents/'
            '?profile-ids=c3RlcGhhbmtydXNjaGU%3D'
            '&field-ids=Y29udGludW91c3NvZnR3YXJlZW5naW5lZXJpbmc%3D'
            '&limit=1&order-attr=title'),
        str('/documents/'
            '?profile-ids=c3RlcGhhbmtydXNjaGU%3D'
            '&field-ids=Y29udGludW91c3NvZnR3YXJlZW5naW5lZXJpbmc%3D'
            '&limit=1&order-attr=source'),
        str('/documents/'
            '?profile-ids=c3RlcGhhbmtydXNjaGU%3D'
            '&field-ids=Y29udGludW91c3NvZnR3YXJlZW5naW5lZXJpbmc%3D'
            '&limit=1&order-attr=source&only-count=true'),
        str('/documents/'
            '?order-attr=year&order-dir=desc&offset=5&limit=5&only-count=true'
            ), '/cache/status/', '/cache/entities/'
    ]

    for call in calls:
        response = sut.get(call, follow_redirects=True)
        """:type : Response"""
        data = response.get_data(as_text=True)
        json_data = json.loads(data)
        print('Results for REST call: GET %s' % call)
        print(json.dumps(json_data, indent=2))

    response = sut.post('/cache/update/', follow_redirects=True)
    """:type : Response"""
    data = response.get_data(as_text=True)
    json_data = json.loads(data)
    print('Results for REST call: POST /cache/update')
    print(json.dumps(json_data, indent=2))
Exemple #3
0
    def test_get_empty_fields(self):

        app = MendeleyCache('mendeleycache')
        app.debug = True

        sut = app.test_client()
        """:type : FlaskClient"""

        # Fire fields versus an empty database
        response = sut.get('/fields', follow_redirects=True)
        """:type : Response"""

        # Check status code
        self.assertEqual(response.status_code, 200)
        # Parse json data
        data = response.get_data(as_text=True)
Exemple #4
0
    def test_get_system(self):

        app = MendeleyCache("mendeleycache")
        app.debug = True
        sut = app.test_client()
        """:type : FlaskClient"""

        response = sut.get("/cache/status", follow_redirects=True)
        """:type : Response"""

        # Check status code
        self.assertEqual(response.status_code, 200)

        # Parse json data
        data = response.get_data(as_text=True)
        response_json = json.loads(data)

        self.assertIn("serverVersion", response_json)
Exemple #5
0
    def test_get_system(self):

        app = MendeleyCache('mendeleycache')
        app.debug = True
        sut = app.test_client()
        """:type : FlaskClient"""

        response= sut.get('/cache/status', follow_redirects=True)
        """:type : Response"""

        # Check status code
        self.assertEqual(response.status_code, 200)

        # Parse json data
        data=response.get_data(as_text=True)
        response_json = json.loads(data)

        self.assertIn('serverVersion', response_json)
Exemple #6
0
__author__ = 'kohn'

from mendeleycache.mendeleycache import MendeleyCache
import flask

app = MendeleyCache(__name__)


@app.before_request
def before():
    flask.request.environ['CONTENT_TYPE'] = 'application/json'


# Uncomment this, if you need CORS support.
# As this docker container is used through nginx reverse proxies anyway, i wont set the header twice here
# @app.after_request
# def add_cors(resp):
#     """
#     Ensure all responses have the CORS headers. This ensures any failures are also accessible
#     by the client.
#     http://mortoray.com/2014/04/09/allowing-unlimited-access-with-cors/
#     """
#     resp.headers['Access-Control-Allow-Origin'] = flask.request.headers.get('Origin', '*')
#     resp.headers['Access-Control-Allow-Credentials'] = 'true'
#     resp.headers['Access-Control-Allow-Methods'] = 'POST, OPTIONS, GET'
#     resp.headers['Access-Control-Allow-Headers'] = flask.request.headers.get(
#         'Access-Control-Request-Headers', 'Authorization')
#     return resp
Exemple #7
0
def sample_api():
    app = MendeleyCache("mendeleycache")
    app.debug = True
    report = app.pipeline_controller.execute()

    sut = app.test_client()
    """:type : FlaskClient"""

    calls = [
        "/fields/",
        "/profiles/?slim=true",
        "/profiles/",
        str("/profiles/" "?field-ids=Y29udGludW91c3NvZnR3YXJlZW5naW5lZXJpbmc%3D"),
        str(
            "/profiles/"
            "?profile-ids=Y29uc3RhbnRpbnNjaGV1ZXJtYW5u"
            "&field-ids=Y29udGludW91c3NvZnR3YXJlZW5naW5lZXJpbmc%3D"
        ),
        "/documents/",
        str(
            "/documents/" "?profile-ids=c3RlcGhhbmtydXNjaGU%3D" "&field-ids=Y29udGludW91c3NvZnR3YXJlZW5naW5lZXJpbmc%3D"
        ),
        str(
            "/documents/"
            "?profile-ids=c3RlcGhhbmtydXNjaGU%3D"
            "&field-ids=Y29udGludW91c3NvZnR3YXJlZW5naW5lZXJpbmc%3D"
            "&limit=1&offset=1"
        ),
        str(
            "/documents/"
            "?profile-ids=c3RlcGhhbmtydXNjaGU%3D"
            "&field-ids=Y29udGludW91c3NvZnR3YXJlZW5naW5lZXJpbmc%3D"
            "&limit=1&order-attr=year&order-dir=desc"
        ),
        str(
            "/documents/"
            "?profile-ids=c3RlcGhhbmtydXNjaGU%3D"
            "&field-ids=Y29udGludW91c3NvZnR3YXJlZW5naW5lZXJpbmc%3D"
            "&limit=1&order-attr=title"
        ),
        str(
            "/documents/"
            "?profile-ids=c3RlcGhhbmtydXNjaGU%3D"
            "&field-ids=Y29udGludW91c3NvZnR3YXJlZW5naW5lZXJpbmc%3D"
            "&limit=1&order-attr=source"
        ),
        str(
            "/documents/"
            "?profile-ids=c3RlcGhhbmtydXNjaGU%3D"
            "&field-ids=Y29udGludW91c3NvZnR3YXJlZW5naW5lZXJpbmc%3D"
            "&limit=1&order-attr=source&only-count=true"
        ),
        str("/documents/" "?order-attr=year&order-dir=desc&offset=5&limit=5&only-count=true"),
        "/cache/status/",
        "/cache/entities/",
    ]

    for call in calls:
        response = sut.get(call, follow_redirects=True)
        """:type : Response"""
        data = response.get_data(as_text=True)
        json_data = json.loads(data)
        print("Results for REST call: GET %s" % call)
        print(json.dumps(json_data, indent=2))

    response = sut.post("/cache/update/", follow_redirects=True)
    """:type : Response"""
    data = response.get_data(as_text=True)
    json_data = json.loads(data)
    print("Results for REST call: POST /cache/update")
    print(json.dumps(json_data, indent=2))
Exemple #8
0
 def test_app_startup(self):
     app = MendeleyCache('mendeleycache')
     app.debug = True
     sut = app.test_client()