def test_argv_accesskey(): config = Config([ __name__, '--access-key', '01001' ]) assert config.accesskey == '01001' config = Config([ __name__, '--accesskey', '22222' ]) assert config.accesskey == '22222'
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
def logging_config(): Config([ __name__, '--log', 'foo', 'baz', ])
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'
def test_no_proxy(): set_proxies(http_proxy=None, https_proxy=None, all_proxy=None) config = Config() assert config.proxy is None unset_proxies()
def test_just_http_proxy(): set_proxies(http_proxy='pass', https_proxy=None, all_proxy='fail') config = Config() assert config.proxy == 'pass' unset_proxies()
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'
def test_invalid_retry_timeout_throws_error(): try: config = Config([__name__, '--retry-timeout', '-1000']) except ValueError as e: return assert False, "XFAIL"
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')
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' ])
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)
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()
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
def pong_config(): return Config([ __name__, '--accesskey=VALUE', '--username=pong', '--url=http://127.0.0.1:9000', '--brain=cartpole', ])
def eofstream_config(): return Config([ __name__, '--accesskey=VALUE', '--username=eofstream', '--url=http://127.0.0.1:9000', '--brain=cartpole', ])
def flaky_train_config(): return Config([ __name__, '--accesskey=VALUE', '--username=flake', '--url=http://127.0.0.1:9000', '--brain=cartpole', ])
def auth_config(): return Config([ __name__, '--accesskey=VALUE', '--username=needsauth', '--url=http://127.0.0.1:9000', '--brain=cartpole', ])
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
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)
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
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"
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"
def test_assignment_of_poorly_formatted_proxy(): try: config = Config() config.proxy = "http://foo:bar" except (RuntimeError, ValueError) as e: return assert False, "XFAIL"
def train_config(): return Config([ __name__, '--accesskey=VALUE', '--username=alice', '--url=http://localhost:8889', '--brain=cartpole', '--proxy=VALUE', ])
def record_csv_config(): return Config([ __name__, '--accesskey=VALUE', '--username=alice', '--url=http://127.0.0.1:9000', '--brain=cartpole', '--record=foobar.csv', ])
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}
def main(): config = Config(sys.argv) brain = Brain(config) sim = ElevatorSimulator(brain, 'elevator_simulator') while sim.run(): continue print('finished.')
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', ])
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', ])
def predict_config(): set_predict_mode(True) return Config([ __name__, '--accesskey=VALUE', '--username=alice', '--url=http://localhost:8889', '--brain=cartpole', '--proxy=VALUE', '--predict=4', ])