Completed
Push — master ( 615fea...9fd2d2 )
by Thomas
7s
created

ppp_core.get_engine()   A

Complexity

Conditions 1

Size

Total Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1
Metric Value
cc 1
dl 0
loc 5
ccs 4
cts 4
cp 1
crap 1
rs 9.4285
1
"""Store whole answers to a database, for profiling purposes."""
2
3 1
import json
4
5 1
from sqlalchemy import create_engine
6 1
from sqlalchemy import Table, Column
7 1
from sqlalchemy import Boolean, Float, Integer, String, Text, DateTime
8 1
from sqlalchemy import MetaData, ForeignKey
9
10 1
metadata = MetaData()
11
12 1
requests = Table('requests', metadata,
13
                 Column('request_handling_start_time', Float),
14
                 Column('request_handling_end_time', Float),
15
                 Column('request_answers_json', Text),
16
                )
17
18 1
def get_engine(uri):
19
    """Asks SQLAlchemy to create an engine to connect to the URI and return it."""
20 1
    engine = create_engine(uri)
21 1
    metadata.create_all(engine)
22 1
    return engine
23
24 1
def log_answers(config, answers, start_time, end_time):
25 1
    url = config.verbose_log_url
26 1
    if not url:
27 1
        return
28 1
    conn = get_engine(url).connect()
29 1
    answers = json.dumps([x.as_dict() for x in answers])
30 1
    ins = requests.insert().values(
31
            request_handling_start_time=start_time,
32
            request_handling_end_time=end_time,
33
            request_answers_json=answers)
34
    res = conn.execute(ins)
35