예제 #1
0
def test_argv_accesskey():
    config = Config([
        __name__,
        '--access-key', '01001'
    ])
    assert config.accesskey == '01001'

    config = Config([
        __name__,
        '--accesskey', '22222'
    ])
    assert config.accesskey == '22222'
예제 #2
0
def test_brain_predict_version():
    """ Tests brain version property """
    config = Config([__name__, '--predict=4'])
    brain = Brain(config)
    assert brain.config.predict is True
    assert brain.config.brain_version == 4
    assert brain.version == 4
예제 #3
0
def logging_config():
    Config([
        __name__,
        '--log',
        'foo',
        'baz',
    ])
예제 #4
0
def test_http_is_fallback_for_https():
    set_proxies(http_proxy=None, https_proxy='pass', all_proxy='all')
    config = Config()
    config.url = 'https://localhost'
    assert config.proxy == 'pass'
    config.url = 'http://localhost'
    assert config.proxy == 'all'
예제 #5
0
def test_no_proxy():
    set_proxies(http_proxy=None,
                https_proxy=None,
                all_proxy=None)
    config = Config()
    assert config.proxy is None
    unset_proxies()
예제 #6
0
def test_just_http_proxy():
    set_proxies(http_proxy='pass',
                https_proxy=None,
                all_proxy='fail')
    config = Config()
    assert config.proxy == 'pass'
    unset_proxies()
예제 #7
0
def test_https_preferred_over_http():
    set_proxies(http_proxy='pass', https_proxy='https', all_proxy=None)
    config = Config()
    config.url = 'https://localhost'
    assert config.proxy == 'https'
    config.url = 'http://localhost'
    assert config.proxy == 'pass'
예제 #8
0
def test_invalid_retry_timeout_throws_error():
    try:
        config = Config([__name__, '--retry-timeout', '-1000'])
    except ValueError as e:
        return

    assert False, "XFAIL"
예제 #9
0
def test_aad_data_plane(temp_dot_bonsai):
    config = Config(argv=sys.argv, profile='dev', use_aad=False)
    assert not config.use_aad
    assert config._aad_client is None
    assert config.accesskey == 'abcdefghijklmnopqrstuvwxyz'
    assert config.username == '123456789'
    assert config.url.startswith('http://127.0.0.1')
예제 #10
0
def record_csv_config_predict():
    set_predict_mode(True)
    return Config([
        __name__, '--accesskey=VALUE', '--username=alice',
        '--url=http://localhost:8889', '--brain=cartpole', '--proxy=VALUE',
        '--record=foobar.csv', '--predict=4'
    ])
예제 #11
0
def test_verbose_logging(capsys, temp_dot_bonsai):
    config = Config([
        __name__,
        '--verbose'
        ])
    log = Logger()
    assert(config.verbose is True)
    assert(log._enable_all is True)
예제 #12
0
def test_http_proxy_fallback_for_https_url():
    set_proxies(http_proxy='pass',
                https_proxy=None,
                all_proxy=None)
    config = Config()
    config.url = 'https://localhost'
    assert config.proxy == 'pass'
    unset_proxies()
예제 #13
0
def test_run_simulator_with_no_dot_bonsai_or_cl_args(
        temp_home_directory_read_only, capsys):
    config = Config()
    brain = Brain(config)
    sim = Simulator(brain, 'sim')
    sim.run()
    captured = capsys.readouterr()
    assert 'Configuration is invalid' in captured.err
예제 #14
0
def pong_config():
    return Config([
        __name__,
        '--accesskey=VALUE',
        '--username=pong',
        '--url=http://127.0.0.1:9000',
        '--brain=cartpole',
    ])
예제 #15
0
def eofstream_config():
    return Config([
        __name__,
        '--accesskey=VALUE',
        '--username=eofstream',
        '--url=http://127.0.0.1:9000',
        '--brain=cartpole',
    ])
예제 #16
0
def flaky_train_config():
    return Config([
        __name__,
        '--accesskey=VALUE',
        '--username=flake',
        '--url=http://127.0.0.1:9000',
        '--brain=cartpole',
    ])
예제 #17
0
def auth_config():
    return Config([
        __name__,
        '--accesskey=VALUE',
        '--username=needsauth',
        '--url=http://127.0.0.1:9000',
        '--brain=cartpole',
    ])
예제 #18
0
def test_brain_with_proxy():
    # Patch and Mock out requests/responses
    set_proxies(http_proxy='pass',
                https_proxy=None,
                all_proxy=None)
    config = Config([__name__])
    brain = Brain(config)
    assert brain._proxy_header() is not None
예제 #19
0
def test_logging_config():
    config = Config([__name__, '--log', 'v1', 'v2', 'v3'])
    log = Logger()
    assert (config.verbose is False)
    assert ('v1' in log._enabled_keys)
    assert ('v2' in log._enabled_keys)
    assert ('v3' in log._enabled_keys)
    assert ('v4' not in log._enabled_keys)
예제 #20
0
def test_invalid_pong_interval_throws_error():
    config = Config()
    with pytest.raises(ValueError):
        config.pong_interval = -1
    with pytest.raises(ValueError):
        config.pong_interval = 0.1
    with pytest.raises(ValueError):
        config.pong_interval = 250
예제 #21
0
def test_invalid_predict_version(invalid_value):
    # to verify error log, catch and inspect instead of expecting fail (xfail)
    try:
        config = Config([__name__, invalid_value])
    except (RuntimeError, ValueError) as e:
        return

    assert False, "XFAIL"
예제 #22
0
def test_invalid_retry_timeout_argv_throws_error():
    """ Incorrect values in argparse raise a SystemExit """
    try:
        config = Config([__name__, '--pong-interval', 'foo'])
    except SystemExit as e:
        return

    assert False, "XFAIL"
예제 #23
0
def test_assignment_of_poorly_formatted_proxy():
    try:
        config = Config()
        config.proxy = "http://foo:bar"
    except (RuntimeError, ValueError) as e:
        return

    assert False, "XFAIL"
예제 #24
0
def train_config():
    return Config([
        __name__,
        '--accesskey=VALUE',
        '--username=alice',
        '--url=http://localhost:8889',
        '--brain=cartpole',
        '--proxy=VALUE',
    ])
예제 #25
0
def record_csv_config():
    return Config([
        __name__,
        '--accesskey=VALUE',
        '--username=alice',
        '--url=http://127.0.0.1:9000',
        '--brain=cartpole',
        '--record=foobar.csv',
    ])
예제 #26
0
def train_config_proxy_pair(proxy_server):
    config = Config([
        __name__,
        '--accesskey=VALUE',
        '--username=alice',
        '--url=http://127.0.0.1:9000',
        '--proxy={}'.format(proxy_server.uri),
        '--brain=cartpole',
    ])
    return {'config': config, 'log_dir': proxy_server.log_dir}
예제 #27
0
def main():
    config = Config(sys.argv)

    brain = Brain(config)

    sim = ElevatorSimulator(brain, 'elevator_simulator')
    while sim.run():
        continue

    print('finished.')
예제 #28
0
def predict_config():
    # set_flaky_mode(False)
    return Config([
        __name__,
        '--accesskey=VALUE',
        '--username=alice',
        '--url=http://127.0.0.1:9000',
        '--brain=cartpole',
        '--predict=4',
    ])
예제 #29
0
def train_config():
    set_flaky_mode(False)
    set_unauthorized_mode(False)
    return Config([
        __name__,
        '--accesskey=VALUE',
        '--username=alice',
        '--url=http://localhost:8889',
        '--brain=cartpole',
        '--proxy=VALUE',
    ])
예제 #30
0
def predict_config():
    set_predict_mode(True)
    return Config([
        __name__,
        '--accesskey=VALUE',
        '--username=alice',
        '--url=http://localhost:8889',
        '--brain=cartpole',
        '--proxy=VALUE',
        '--predict=4',
    ])