Exemplo n.º 1
0
def test_query():
    sa_engine = create_engine(
        'sqlite://',
        connect_args={'check_same_thread': False},
        poolclass=StaticPool,
    )
    setup_db(sa_engine)

    app = ConsoleApplication(GRAPH,
                             engine, {SA_ENGINE_KEY: sa_engine},
                             debug=True)
    query = b'[{:bar_list [:name :type {:foo_s [:name :count]}]}]'

    status, headers, content = request(app, 'POST', '/', payload=query)
    assert status == '200 OK'
    assert ('Content-Type', 'application/json') in headers
    result = json.loads(content.decode('utf-8'))
    assert 'bar_list' in result
Exemplo n.º 2
0
def test_docs():
    app = ConsoleApplication(GRAPH, engine, debug=True)
    status, headers, content = request(app, 'GET', '/docs')
    assert status == '200 OK'
    assert content.startswith(b'type')
Exemplo n.º 3
0
from sqlalchemy import create_engine
from sqlalchemy.pool import StaticPool

import hiku.sources.sqlalchemy

from hiku.engine import Engine
from hiku.console.ui import ConsoleApplication
from hiku.executors.sync import SyncExecutor

from tests.test_source_sqlalchemy import SA_ENGINE_KEY, SyncQueries, setup_db
from tests.test_source_sqlalchemy import get_queries, get_graph


if __name__ == '__main__':
    engine = Engine(SyncExecutor())

    sa_engine = create_engine(
        'sqlite://',
        connect_args={'check_same_thread': False},
        poolclass=StaticPool,
    )
    setup_db(sa_engine)

    graph = get_graph(get_queries(hiku.sources.sqlalchemy, SA_ENGINE_KEY,
                                  SyncQueries))

    app = ConsoleApplication(graph, engine, {SA_ENGINE_KEY: sa_engine},
                             debug=True)
    http_server = make_server('localhost', 5000, app)
    http_server.serve_forever()
Exemplo n.º 4
0
def test_ui():
    app = ConsoleApplication(GRAPH, engine, debug=True)
    status, headers, _ = request(app, 'GET', '/')
    assert status == '200 OK'
    assert ('Content-Type', 'text/html') in headers
Exemplo n.º 5
0

def execute(graph, query_string):
    query = read(query_string)
    result = hiku_engine.execute(graph, query)
    return denormalize(graph, result)


from tests.base import patch, Mock

_NOW = datetime(2015, 10, 21, 7, 28)


@patch('{}.datetime'.format(__name__))
def test(dt):
    dt.now = Mock(return_value=_NOW)
    result = execute(GRAPH, '[:now]')
    assert result == {'now': '2015-10-21T07:28:00'}


# console

from hiku.console.ui import ConsoleApplication

app = ConsoleApplication(GRAPH, hiku_engine, debug=True)

if __name__ == '__main__':
    from wsgiref.simple_server import make_server
    http_server = make_server('localhost', 5000, app)
    http_server.serve_forever()