Example #1
0
def run_test(test, graphql=False, log_data=True):
    """
    Runs a test stored in the database.
    Return: Tuple. First element is a boolean that is True if passed with an "OK" error code,
     False otherwise. Second is the Result object to be stored in the database.
     If log_data is False, it will only return the boolean (no tuple)
    """
    # Here "valid" means its a 200 code
    is_valid_error_code = lambda code: code - 200 < 100 and code - 200 >= 0
    # Get info for test
    endpoint = test.url
    method = test.method
    try:
        if graphql:  # Make graphql request
            parameters = test.parameters
            no_whitespace = parameters.replace(' ', '').replace('\n',
                                                                '').replace(
                                                                    '\t', '')
            endpoint = endpoint + '?query=' + no_whitespace
            parameters = ''
        else:  # normal request
            parameters = dict(test.parameters)
    except:  # Error, likely from graphql/normal request mismatch
        # Treat as failure
        if log_data:
            unix_time = int(time.time())
            result = Result(test_id=test.id,
                            success=False,
                            createdAt=unix_time,
                            updatedAt=unix_time)
            return False, result
        else:
            return False

    # Make request
    request_type = method.get_requests_method()
    response = request_type(endpoint, data=parameters)

    # Get result and store in database
    result_bool = is_valid_error_code(response.status_code)

    if log_data:
        unix_time = int(time.time())
        result = Result(test_id=test.id,
                        success=result_bool,
                        createdAt=unix_time,
                        updatedAt=unix_time)
        return result_bool, result
    else:
        return result_bool
Example #2
0
def run(model, description):
    run_id = str(uuid4())

    model.run(run_id)
    K.clear_session()

    model_instance = evaluate.load(os.path.join(
        config.MODEL_DIR,
        "{}-{}.h5".format(run_id, model.MODEL_NAME),
        ))

    train, validation, test_data = data()
    train_data_stats = characterize_data(train)
    validation_data_stats = characterize_data(validation)
    test_data_stats = characterize_data(test_data)
    results = test(model_instance, train, validation, test_data)

    result = Result(
        model.MODEL_NAME,
        run_id,
        train_data_stats,
        validation_data_stats,
        test_data_stats,
        description,
        **results
        )
    db.session.add(result)
    db.session.commit()
Example #3
0
def run(model,
        description,
        input_form,
        label_form="shrunk",
        split_id=None,
        loaded_data=None,
        hyperparameters=dict()):
    run_id = uuid4()
    if split_id is None:
        split_id = run_id

    history = model.run(run_id,
                        input_form=input_form,
                        loaded_data=loaded_data,
                        label_form=label_form,
                        hyperparameters=hyperparameters)
    K.clear_session()

    model_instance = evaluate.load(
        os.path.join(
            config.MODEL_DIR,
            "{}-{}.h5".format(str(run_id), model.MODEL_NAME),
        ))

    if loaded_data is None:
        train, validation, test = data(split_id,
                                       input_form=input_form,
                                       label_form=label_form,
                                       balanced_train=True)
    else:
        train, validation, test = loaded_data
        train.reset()
        validation.reset()
        test.reset()

    train_data_stats = characterize_data(train)
    validation_data_stats = characterize_data(validation)
    test_data_stats = characterize_data(test)
    results = test_model(model_instance, train, validation, test)
    training.reset()
    validation.reset()
    test.reset()

    result = Result(model.MODEL_NAME,
                    str(run_id),
                    str(split_id),
                    train_data_stats,
                    validation_data_stats,
                    test_data_stats,
                    description,
                    input_form,
                    label=label_form,
                    hyperparameters=hyperparameters,
                    history=history,
                    **results)
    db.session.add(result)
    db.session.commit()
Example #4
0
def submit():
    for key in flask.request.form:
        question_id = int(key[key.find('-') + 1:])
        answer_id = int(flask.request.form[key])
        respondent_id = str(uuid4())
        result = Result()
        result.respondent_id = respondent_id
        result.question_id = question_id
        result.answer_id = answer_id
        session.add(result)
    session.commit()
    return flask.render_template('strona.html')
Example #5
0
from db import session, Result, Entry_Requirement, Entry

# add possible results
session.add_all(
    [Result(result='win'),
     Result(result='lose'),
     Result(result='deferred')])

# add possible entry conditions
session.add_all([
    Entry_Requirement(
        giveaway_type='Watch a short video',
        query_selector="('.continue_button_inner', '.boxClickTarget')"),
    Entry_Requirement(giveaway_type='No entry requirement',
                      query_selector="('.boxClickTarget', '.a-button-input')"),
    Entry_Requirement(
        giveaway_type='Follow * on *',
        query_selector=
        "('.a-button-input','.a-button-input', '.boxClickTarget')"),
    Entry_Requirement(giveaway_type='Subscribe to a newsletter',
                      query_selector="('.a-button-input')"),
])

session.commit()

#result: a-size-base-plus a-color-secondary qa-giveaway-result-text a-text-bold
#deferred result: a-size-base-plus a-color-secondary qa-giveaway-result-text a-text-bold
#time: a-size-small a-color-secondary qa-giveaway-winner-declare-time-text
#Aug 17, 2018 11:59 PM PDT

# prize_image in #prize-image