Commit 7c7d636f authored by w2v1's avatar w2v1
Browse files

moved tests, examples

parent d3858d9e
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
FROM --platform=linux/amd64 python:3.9.7-slim

EXPOSE 9090

WORKDIR /tmp

# build context is defined in docker-compose.flask.yaml
COPY scripts scripts
COPY config config
COPY api api
COPY tests tests
COPY main.py main.py
COPY requirements.txt requirements.txt

# Add extra needed os packages here
# RUN apt-get update --fix-missing && apt-get install postgresql-client curl pkg-config libxml2-dev libxmlsec1-dev libxmlsec1-openssl gcc -y
RUN apt-get update --fix-missing && apt-get install pkg-config postgresql-client curl procps -y

RUN set -eux && pip3 install --upgrade pip
RUN pip3 --no-cache-dir install common --index-url https://code.ornl.gov/api/v4/projects/10568/packages/pypi/simple  --trusted-host code.ornl.gov
RUN pip install --no-cache-dir -r /tmp/requirements.txt

# If you need to test the container
# CMD ["tail", "-f", "/dev/null"]

CMD [ "sh", "scripts/run_prod.sh"]
 No newline at end of file
+28 −0
Original line number Diff line number Diff line
import sys

from flask import Flask
from flask_cors import CORS
from flask_jwt_extended import JWTManager
from flask_restx import Api, Resource
from datetime import timedelta

from api.routes import api as base_api
from api.swaggerui.namespaces.api_doc_namespace import api as api_namespace

def create_app():
    app = Flask(__name__, static_folder='/tmp/templates', template_folder='/tmp/templates')
    app.config['TEMPLATES_AUTO_RELOAD'] = True

    app.register_blueprint(base_api.blueprint, url_prefix='/')
    api = Api(app, version='1.0', title='Web APIs', description='SWAGGERUI Documentation for web APIs', doc='/doc/')
    api.add_namespace(api_namespace)

    app.config['JWT_ACCESS_TOKEN_EXPIRES'] = timedelta(hours=24)
    app.config['JWT_REFRESH_TOKEN_EXPIRES'] = timedelta(hours=20)

    CORS(app)

    jwt = JWTManager(app)
    jwt.init_app(app)

    return app
 No newline at end of file
+25 −0
Original line number Diff line number Diff line
import json
import sys

# try:
from common.database import Database
from common.mixins.postgres import PostgresMixin
from common.logz import create_logger

logger = create_logger()

logger.info("Test log.")

class WebDatabase(Database, PostgresMixin):
    def __init__(self, **kwargs):
        super().__init__()

    def access(self):
        if Database.is_open(self):
            return "Successfully accessed Database. "
        else:
            return "Did not access database."

    def get_test_data(self):
        query = "SELECT name, number, float, geom FROM public.test_table;"
        return self.query(query)
+0 −0

Empty file added.

+18 −0
Original line number Diff line number Diff line
from flask_restx import Namespace, Resource
import flask_restx
from routes import api  as api_routes

import flask
from flask import request

api = Namespace('api', 'Loads Hello World' )

@api.route("/")
@api.doc()
class GetBaseRoute(Resource):
    def get(self):
        return api_routes.home()

# TODO
# Make swagger from flask-restx
# make swagger from fast-api
Loading