def test_freeze_config(session): yaml_config = loadfixture("workspacefreezer/sampleconfig.yaml") sconfig = kaptan.Kaptan(handler='yaml') sconfig = sconfig.import_config(yaml_config).get() builder = WorkspaceBuilder(sconf=sconfig) builder.build(session=session) assert session == builder.session time.sleep(.50) session = session sconf = freeze(session) config.validate_schema(sconf) sconf = config.inline(sconf) kaptanconf = kaptan.Kaptan() kaptanconf = kaptanconf.import_config(sconf) kaptanconf.export( 'json', indent=2 ) kaptanconf.export( 'yaml', indent=2, default_flow_style=False, safe=True )
def test_multisession_config(session_name, expected, multisession_config): # teamocil can fit multiple sessions in a config assert config.import_teamocil( multisession_config[session_name]) == expected config.validate_schema( config.import_teamocil(multisession_config[session_name]))
def test_in_session_scope(): sconfig = load_yaml(fixtures.shell_command_before_session.before) config.validate_schema(sconfig) assert config.expand(sconfig) == sconfig assert config.expand(config.trickle(sconfig)) == load_yaml( fixtures.shell_command_before_session.expected)
def test_in_session_scope(): sconfig = load_yaml(fixtures.shell_command_before_session.before) config.validate_schema(sconfig) assert config.expand(sconfig) == sconfig assert config.expand(config.trickle(sconfig)) == \ load_yaml(fixtures.shell_command_before_session.expected)
def test_config_to_dict(teamocil_yaml, teamocil_dict, tmuxp_dict): configparser = kaptan.Kaptan(handler='yaml') test_config = configparser.import_config(teamocil_yaml) yaml_to_dict = test_config.get() assert yaml_to_dict == teamocil_dict assert config.import_teamocil(teamocil_dict) == tmuxp_dict config.validate_schema(config.import_teamocil(teamocil_dict))
def test_config_to_dict(tmuxinator_yaml, tmuxinator_dict, tmuxp_dict): configparser = kaptan.Kaptan(handler="yaml") test_config = configparser.import_config(tmuxinator_yaml) yaml_to_dict = test_config.get() assert yaml_to_dict == tmuxinator_dict assert config.import_tmuxinator(tmuxinator_dict) == tmuxp_dict config.validate_schema(config.import_tmuxinator(tmuxinator_dict))
def test_config_to_dict(tmuxinator_yaml, tmuxinator_dict, tmuxp_dict): configparser = kaptan.Kaptan(handler='yaml') test_config = configparser.import_config(tmuxinator_yaml) yaml_to_dict = test_config.get() assert yaml_to_dict == tmuxinator_dict assert config.import_tmuxinator(tmuxinator_dict) == tmuxp_dict config.validate_schema(config.import_tmuxinator(tmuxinator_dict))
def test_no_windows(): yaml_config = """ session_name: test session """ sconfig = kaptan.Kaptan(handler='yaml') sconfig = sconfig.import_config(yaml_config).get() with pytest.raises(exc.ConfigError) as excinfo: config.validate_schema(sconfig) assert excinfo.match(r'list of "windows"')
def test_multisession_config(session_name, expected, multisession_config): # teamocil can fit multiple sessions in a config assert config.import_teamocil( multisession_config[session_name] ) == expected config.validate_schema( config.import_teamocil( multisession_config[session_name] ) )
def test_no_windows(): yaml_config = """ session_name: test session """ sconfig = kaptan.Kaptan(handler='yaml') sconfig = sconfig.import_config(yaml_config).get() with pytest.raises(exc.ConfigError) as excinfo: config.validate_schema(sconfig) assert excinfo.match(r'list of "windows"')
def test_trickle_window_with_no_pane_config(): test_yaml = """ session_name: test_session windows: - window_name: test_1 panes: - shell_command: - ls -l - window_name: test_no_panes """ sconfig = load_yaml(test_yaml) config.validate_schema(sconfig) assert config.expand(config.trickle(sconfig))["windows"][1]["panes"][0] == { "shell_command": [] }
def test_trickle_window_with_no_pane_config(): test_yaml = """ session_name: test_session windows: - window_name: test_1 panes: - shell_command: - ls -l - window_name: test_no_panes """ sconfig = load_yaml(test_yaml) config.validate_schema(sconfig) assert config.expand(config.trickle(sconfig))['windows'][1]['panes'][0] == { 'shell_command': [] }
def test_plugins(): yaml_config = """ session_name: test session plugins: tmuxp-plugin-one.plugin.TestPluginOne windows: - window_name: editor panes: shell_command: - tail -F /var/log/syslog start_directory: /var/log """ sconfig = kaptan.Kaptan(handler='yaml') sconfig = sconfig.import_config(yaml_config).get() with pytest.raises(exc.ConfigError) as excinfo: config.validate_schema(sconfig) assert excinfo.matches('only supports list type')
def test_no_session_name(): yaml_config = """ - window_name: editor panes: shell_command: - tail -F /var/log/syslog start_directory: /var/log - window_name: logging automatic-rename: true panes: - shell_command: - htop """ sconfig = kaptan.Kaptan(handler='yaml') sconfig = sconfig.import_config(yaml_config).get() with pytest.raises(exc.ConfigError) as excinfo: config.validate_schema(sconfig) assert excinfo.matches(r'requires "session_name"')
def test_no_session_name(): yaml_config = """ - window_name: editor panes: shell_command: - tail -F /var/log/syslog start_directory: /var/log - window_name: logging automatic-rename: true panes: - shell_command: - htop """ sconfig = kaptan.Kaptan(handler='yaml') sconfig = sconfig.import_config(yaml_config).get() with pytest.raises(exc.ConfigError) as excinfo: config.validate_schema(sconfig) assert excinfo.matches(r'requires "session_name"')