本文整理汇总了Python中tmuxp.workspacebuilder.WorkspaceBuilder.build方法的典型用法代码示例。如果您正苦于以下问题:Python WorkspaceBuilder.build方法的具体用法?Python WorkspaceBuilder.build怎么用?Python WorkspaceBuilder.build使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类tmuxp.workspacebuilder.WorkspaceBuilder
的用法示例。
在下文中一共展示了WorkspaceBuilder.build方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_before_load_throw_error_if_file_not_exists
# 需要导入模块: from tmuxp.workspacebuilder import WorkspaceBuilder [as 别名]
# 或者: from tmuxp.workspacebuilder.WorkspaceBuilder import build [as 别名]
def test_before_load_throw_error_if_file_not_exists(server):
config_script_not_exists = loadfixture(
"workspacebuilder/config_script_not_exists.yaml"
)
sconfig = kaptan.Kaptan(handler='yaml')
yaml = config_script_not_exists.format(
fixtures_dir=fixtures_dir,
script_not_exists=os.path.join(
fixtures_dir, 'script_not_exists.sh'
)
)
sconfig = sconfig.import_config(yaml).get()
sconfig = config.expand(sconfig)
sconfig = config.trickle(sconfig)
builder = WorkspaceBuilder(sconf=sconfig)
with temp_session(server) as sess:
session_name = sess.name
temp_session_exists = server.has_session(
sess.name
)
assert temp_session_exists
with pytest.raises(
(exc.BeforeLoadScriptNotExists, OSError),
) as excinfo:
builder.build(session=sess)
excinfo.match(r'No such file or directory')
result = server.has_session(session_name)
assert not result, "Kills session if before_script doesn't exist"
示例2: test_freeze_config
# 需要导入模块: from tmuxp.workspacebuilder import WorkspaceBuilder [as 别名]
# 或者: from tmuxp.workspacebuilder.WorkspaceBuilder import build [as 别名]
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
)
示例3: test_start_directory
# 需要导入模块: from tmuxp.workspacebuilder import WorkspaceBuilder [as 别名]
# 或者: from tmuxp.workspacebuilder.WorkspaceBuilder import build [as 别名]
def test_start_directory(session, tmpdir):
yaml_config = loadfixture("workspacebuilder/start_directory.yaml")
test_dir = str(tmpdir.mkdir('foo bar'))
test_config = yaml_config.format(TMP_DIR=str(tmpdir), TEST_DIR=test_dir)
sconfig = kaptan.Kaptan(handler='yaml')
sconfig = sconfig.import_config(test_config).get()
sconfig = config.expand(sconfig)
sconfig = config.trickle(sconfig)
builder = WorkspaceBuilder(sconf=sconfig)
builder.build(session=session)
assert session == builder.session
dirs = ['/usr/bin', '/dev', test_dir, '/usr', '/usr']
for path, window in zip(dirs, session.windows):
for p in window.panes:
while retry():
p.server._update_panes()
pane_path = p.current_path
if pane_path is None:
pass
elif path in pane_path or pane_path == path:
result = path == pane_path or path in pane_path
break
# handle case with OS X adding /private/ to /tmp/ paths
assert result
示例4: test_before_load_throw_error_if_retcode_error
# 需要导入模块: from tmuxp.workspacebuilder import WorkspaceBuilder [as 别名]
# 或者: from tmuxp.workspacebuilder.WorkspaceBuilder import build [as 别名]
def test_before_load_throw_error_if_retcode_error(server):
config_script_fails = loadfixture(
"workspacebuilder/config_script_fails.yaml"
)
sconfig = kaptan.Kaptan(handler='yaml')
yaml = config_script_fails.format(
fixtures_dir=fixtures_dir,
script_failed=os.path.join(fixtures_dir, 'script_failed.sh')
)
sconfig = sconfig.import_config(yaml).get()
sconfig = config.expand(sconfig)
sconfig = config.trickle(sconfig)
builder = WorkspaceBuilder(sconf=sconfig)
with temp_session(server) as sess:
session_name = sess.name
with pytest.raises(exc.BeforeLoadScriptError):
builder.build(session=sess)
result = server.has_session(session_name)
assert not result, \
"Kills session if before_script exits with errcode"
示例5: test_environment_variables
# 需要导入模块: from tmuxp.workspacebuilder import WorkspaceBuilder [as 别名]
# 或者: from tmuxp.workspacebuilder.WorkspaceBuilder import build [as 别名]
def test_environment_variables(session):
yaml_config = loadfixture("workspacebuilder/environment_vars.yaml")
sconfig = kaptan.Kaptan(handler='yaml')
sconfig = sconfig.import_config(yaml_config).get()
sconfig = config.expand(sconfig)
builder = WorkspaceBuilder(sconf=sconfig)
builder.build(session)
assert session.show_environment('FOO') == 'BAR'
assert session.show_environment('PATH') == '/tmp'
示例6: test_global_options
# 需要导入模块: from tmuxp.workspacebuilder import WorkspaceBuilder [as 别名]
# 或者: from tmuxp.workspacebuilder.WorkspaceBuilder import build [as 别名]
def test_global_options(session):
yaml_config = loadfixture("workspacebuilder/global_options.yaml")
s = session
sconfig = kaptan.Kaptan(handler='yaml')
sconfig = sconfig.import_config(yaml_config).get()
sconfig = config.expand(sconfig)
builder = WorkspaceBuilder(sconf=sconfig)
builder.build(session=session)
assert "top" in s.show_option('status-position', _global=True)
assert 493 == s.show_option('repeat-time', _global=True)
示例7: test_session_options
# 需要导入模块: from tmuxp.workspacebuilder import WorkspaceBuilder [as 别名]
# 或者: from tmuxp.workspacebuilder.WorkspaceBuilder import build [as 别名]
def test_session_options(session):
yaml_config = loadfixture("workspacebuilder/session_options.yaml")
s = session
sconfig = kaptan.Kaptan(handler='yaml')
sconfig = sconfig.import_config(yaml_config).get()
sconfig = config.expand(sconfig)
builder = WorkspaceBuilder(sconf=sconfig)
builder.build(session=session)
assert "/bin/sh" in s.show_option('default-shell')
assert "/bin/sh" in s.show_option('default-command')
示例8: test_suppress_history
# 需要导入模块: from tmuxp.workspacebuilder import WorkspaceBuilder [as 别名]
# 或者: from tmuxp.workspacebuilder.WorkspaceBuilder import build [as 别名]
def test_suppress_history(session):
yaml_config = loadfixture("workspacebuilder/suppress_history.yaml")
sconfig = kaptan.Kaptan(handler='yaml')
sconfig = sconfig.import_config(yaml_config).get()
sconfig = config.expand(sconfig)
sconfig = config.trickle(sconfig)
builder = WorkspaceBuilder(sconf=sconfig)
builder.build(session=session)
inHistoryWindow = session.find_where({'window_name': 'inHistory'})
isMissingWindow = session.find_where({'window_name': 'isMissing'})
def assertHistory(cmd, hist):
return 'inHistory' in cmd and cmd.endswith(hist)
def assertIsMissing(cmd, hist):
return 'isMissing' in cmd and not cmd.endswith(hist)
for w, window_name, assertCase in [
(inHistoryWindow, 'inHistory', assertHistory),
(isMissingWindow, 'isMissing', assertIsMissing),
]:
assert w.name == window_name
correct = False
w.select_window()
p = w.attached_pane
p.select_pane()
# Print the last-in-history command in the pane
p.cmd('send-keys', ' fc -ln -1')
p.cmd('send-keys', 'Enter')
buffer_name = 'test'
while retry():
# from v0.7.4 libtmux session.cmd adds target -t self.id by default
# show-buffer doesn't accept -t, use global cmd.
# Get the contents of the pane
p.cmd('capture-pane', '-b', buffer_name)
captured_pane = session.server.cmd('show-buffer', '-b', buffer_name)
session.server.cmd('delete-buffer', '-b', buffer_name)
# Parse the sent and last-in-history commands
sent_cmd = captured_pane.stdout[0].strip()
history_cmd = captured_pane.stdout[-2].strip()
if assertCase(sent_cmd, history_cmd):
correct = True
break
assert correct, "Unknown sent command: [%s] in %s" % (sent_cmd, assertCase)
示例9: test_start_directory_relative
# 需要导入模块: from tmuxp.workspacebuilder import WorkspaceBuilder [as 别名]
# 或者: from tmuxp.workspacebuilder.WorkspaceBuilder import build [as 别名]
def test_start_directory_relative(session, tmpdir):
"""Same as above test, but with relative start directory, mimicing
loading it from a location of project file. Like::
$ tmuxp load ~/workspace/myproject/.tmuxp.yaml
instead of::
$ cd ~/workspace/myproject/.tmuxp.yaml
$ tmuxp load .
"""
yaml_config = loadfixture("workspacebuilder/start_directory_relative.yaml")
test_dir = str(tmpdir.mkdir('foo bar'))
config_dir = str(tmpdir.mkdir('testRelConfigDir'))
test_config = yaml_config.format(TEST_DIR=test_dir)
sconfig = kaptan.Kaptan(handler='yaml')
sconfig = sconfig.import_config(test_config).get()
# the second argument of os.getcwd() mimics the behavior
# the CLI loader will do, but it passes in the config file's location.
sconfig = config.expand(sconfig, config_dir)
sconfig = config.trickle(sconfig)
assert os.path.exists(config_dir)
assert os.path.exists(test_dir)
builder = WorkspaceBuilder(sconf=sconfig)
builder.build(session=session)
assert session == builder.session
dirs = ['/usr/bin', '/dev', test_dir, config_dir, config_dir]
for path, window in zip(dirs, session.windows):
for p in window.panes:
while retry():
p.server._update_panes()
# Handle case where directories resolve to /private/ in OSX
pane_path = p.current_path
if pane_path is None:
pass
elif path in pane_path or pane_path == path:
result = path == pane_path or path in pane_path
break
assert result
示例10: test_suppress_history
# 需要导入模块: from tmuxp.workspacebuilder import WorkspaceBuilder [as 别名]
# 或者: from tmuxp.workspacebuilder.WorkspaceBuilder import build [as 别名]
def test_suppress_history(session):
yaml_config = loadfixture("workspacebuilder/suppress_history.yaml")
sconfig = kaptan.Kaptan(handler='yaml')
sconfig = sconfig.import_config(yaml_config).get()
sconfig = config.expand(sconfig)
sconfig = config.trickle(sconfig)
builder = WorkspaceBuilder(sconf=sconfig)
builder.build(session=session)
inHistoryPane = session.find_where(
{'window_name': 'inHistory'}).attached_pane
isMissingPane = session.find_where(
{'window_name': 'isMissing'}).attached_pane
def assertHistory(cmd, hist):
return 'inHistory' in cmd and cmd == hist
def assertIsMissing(cmd, hist):
return 'isMissing' in cmd and cmd != hist
for p, assertCase in [
(inHistoryPane, assertHistory,), (isMissingPane, assertIsMissing,)
]:
correct = False
p.window.select_window()
p.select_pane()
# Print the last-in-history command in the pane
session.cmd('send-keys', ' fc -ln -1')
session.cmd('send-keys', 'Enter')
for _ in range(10):
time.sleep(0.1)
# Get the contents of the pane
session.cmd('capture-pane')
captured_pane = session.cmd('show-buffer')
session.cmd('delete-buffer')
# Parse the sent and last-in-history commands
sent_cmd = captured_pane.stdout[0].strip()
history_cmd = captured_pane.stdout[-2].strip()
if assertCase(sent_cmd, history_cmd):
correct = True
break
assert correct, "Unknown sent command: [%s]" % sent_cmd
示例11: test_before_load_true_if_test_passes
# 需要导入模块: from tmuxp.workspacebuilder import WorkspaceBuilder [as 别名]
# 或者: from tmuxp.workspacebuilder.WorkspaceBuilder import build [as 别名]
def test_before_load_true_if_test_passes(server):
config_script_completes = loadfixture(
"workspacebuilder/config_script_completes.yaml"
)
assert os.path.exists(os.path.join(fixtures_dir, 'script_complete.sh'))
sconfig = kaptan.Kaptan(handler='yaml')
yaml = config_script_completes.format(
fixtures_dir=fixtures_dir,
script_complete=os.path.join(fixtures_dir, 'script_complete.sh'),
)
sconfig = sconfig.import_config(yaml).get()
sconfig = config.expand(sconfig)
sconfig = config.trickle(sconfig)
builder = WorkspaceBuilder(sconf=sconfig)
with temp_session(server) as session:
builder.build(session=session)
示例12: test_window_options_after
# 需要导入模块: from tmuxp.workspacebuilder import WorkspaceBuilder [as 别名]
# 或者: from tmuxp.workspacebuilder.WorkspaceBuilder import build [as 别名]
def test_window_options_after(session):
yaml_config = loadfixture("workspacebuilder/window_options_after.yaml")
sconfig = kaptan.Kaptan(handler='yaml')
sconfig = sconfig.import_config(yaml_config).get()
sconfig = config.expand(sconfig)
builder = WorkspaceBuilder(sconf=sconfig)
builder.build(session=session)
def assert_last_line(p, s):
correct = False
while retry():
pane_out = p.cmd('capture-pane', '-p', '-J').stdout
while not pane_out[-1].strip(): # delete trailing lines tmux 1.8
pane_out.pop()
if len(pane_out) > 1 and pane_out[-2].strip() == s:
correct = True
break
# Print output for easier debugging if assertion fails
if not correct:
print('\n'.join(pane_out))
return correct
for i, pane in enumerate(session.attached_window.panes):
assert assert_last_line(
pane, str(i)
), "Initial command did not execute properly/" + str(i)
pane.cmd('send-keys', 'Up') # Will repeat echo
pane.enter() # in each iteration
assert assert_last_line(
pane, str(i)
), "Repeated command did not execute properly/" + str(i)
session.cmd('send-keys', ' echo moo')
session.cmd('send-keys', 'Enter')
for pane in session.attached_window.panes:
assert assert_last_line(
pane, 'moo'
), "Synchronized command did not execute properly"
示例13: test_global_session_env_options
# 需要导入模块: from tmuxp.workspacebuilder import WorkspaceBuilder [as 别名]
# 或者: from tmuxp.workspacebuilder.WorkspaceBuilder import build [as 别名]
def test_global_session_env_options(session, monkeypatch):
visual_silence = 'on'
monkeypatch.setenv(str('VISUAL_SILENCE'), str(visual_silence))
repeat_time = 738
monkeypatch.setenv(str('REPEAT_TIME'), str(repeat_time))
main_pane_height = 8
monkeypatch.setenv(str('MAIN_PANE_HEIGHT'), str(main_pane_height))
yaml_config = loadfixture("workspacebuilder/env_var_options.yaml")
s = session
sconfig = kaptan.Kaptan(handler='yaml')
sconfig = sconfig.import_config(yaml_config).get()
sconfig = config.expand(sconfig)
builder = WorkspaceBuilder(sconf=sconfig)
builder.build(session=session)
assert visual_silence in s.show_option('visual-silence', _global=True)
assert repeat_time == s.show_option('repeat-time')
assert main_pane_height == s.attached_window.show_window_option('main-pane-height')
示例14: test_blank_pane_count
# 需要导入模块: from tmuxp.workspacebuilder import WorkspaceBuilder [as 别名]
# 或者: from tmuxp.workspacebuilder.WorkspaceBuilder import build [as 别名]
def test_blank_pane_count(session):
""":todo: Verify blank panes of various types build into workspaces."""
yaml_config_file = os.path.join(example_dir, 'blank-panes.yaml')
test_config = kaptan.Kaptan().import_config(yaml_config_file).get()
test_config = config.expand(test_config)
builder = WorkspaceBuilder(sconf=test_config)
builder.build(session=session)
assert session == builder.session
window1 = session.find_where({'window_name': 'Blank pane test'})
assert len(window1._panes) == 3
window2 = session.find_where({'window_name': 'More blank panes'})
assert len(window2._panes) == 3
window3 = session.find_where({'window_name': 'Empty string (return)'})
assert len(window3._panes) == 3
window4 = session.find_where({'window_name': 'Blank with options'})
assert len(window4._panes) == 2
示例15: test_focus_pane_index
# 需要导入模块: from tmuxp.workspacebuilder import WorkspaceBuilder [as 别名]
# 或者: from tmuxp.workspacebuilder.WorkspaceBuilder import build [as 别名]
def test_focus_pane_index(session):
yaml_config = loadfixture('workspacebuilder/focus_and_pane.yaml')
sconfig = kaptan.Kaptan(handler='yaml')
sconfig = sconfig.import_config(yaml_config).get()
sconfig = config.expand(sconfig)
sconfig = config.trickle(sconfig)
builder = WorkspaceBuilder(sconf=sconfig)
builder.build(session=session)
assert session.attached_window.name == 'focused window'
pane_base_index = int(
session.attached_window.show_window_option('pane-base-index', g=True)
)
if not pane_base_index:
pane_base_index = 0
else:
pane_base_index = int(pane_base_index)
# get the pane index for each pane
pane_base_indexes = []
for pane in session.attached_window.panes:
pane_base_indexes.append(int(pane.index))
pane_indexes_should_be = [pane_base_index + x for x in range(0, 3)]
assert pane_indexes_should_be == pane_base_indexes
w = session.attached_window
assert w.name != 'man'
pane_path = '/usr'
while retry():
p = w.attached_pane
p.server._update_panes()
if p.current_path == pane_path:
break
assert p.current_path == pane_path
proc = session.cmd('show-option', '-gv', 'base-index')
base_index = int(proc.stdout[0])
session.server._update_windows()
window3 = session.find_where({'window_index': str(base_index + 2)})
assert isinstance(window3, Window)
p = None
pane_path = '/'
while retry():
p = window3.attached_pane
p.server._update_panes()
if p.current_path == pane_path:
break
assert p.current_path == pane_path