Skip to content

Commit 10b8eb8

Browse files
committed
parametrize multisession teamocil import test
1 parent 4316aa0 commit 10b8eb8

File tree

1 file changed

+30
-62
lines changed

1 file changed

+30
-62
lines changed

tests/test_config_teamocil.py

Lines changed: 30 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import os
99

1010
import kaptan
11+
import pytest
1112

1213
from tmuxp import config
1314

@@ -103,70 +104,37 @@ def test_config_to_dict(self):
103104
)
104105

105106

106-
class TeamocilLayoutsTest(TestCase):
107-
108-
"""Import configurations from teamocil's <fixtures/layout.yml>.
109-
110-
https://github.com/remiprev/teamocil/blob/master/spec/fixtures/layouts.yml
111-
112-
LICENSE: https://github.com/remiprev/teamocil/blob/master/LICENSE
113-
114-
"""
107+
@pytest.fixture(scope='module')
108+
def multisession_config():
109+
"""Return loaded multisession teamocil config as a dictionary.
115110
111+
Also prevents re-running assertion the loads the yaml, since ordering of
112+
deep list items like panes will be inconsistent."""
116113
teamocil_yaml = fixtures.layouts.teamocil_yaml
114+
configparser = kaptan.Kaptan(handler='yaml')
115+
test_config = configparser.import_config(teamocil_yaml)
117116
teamocil_dict = fixtures.layouts.teamocil_dict
118-
two_windows = fixtures.layouts.two_windows
119-
two_windows_with_filters = fixtures.layouts.two_windows_with_filters
120-
two_windows_with_custom_command_options = \
121-
fixtures.layouts.two_windows_with_custom_command_options
122-
three_windows_within_a_session = \
123-
fixtures.layouts.three_windows_within_a_session
124-
125-
def test_config_to_dict(self):
126-
self.maxDiff = None
127-
configparser = kaptan.Kaptan(handler='yaml')
128-
test_config = configparser.import_config(self.teamocil_yaml)
129-
yaml_to_dict = test_config.get()
130-
assert yaml_to_dict == self.teamocil_dict
131-
132-
assert config.import_teamocil(self.teamocil_dict['two-windows']) == \
133-
self.two_windows
134-
135-
config.validate_schema(
136-
config.import_teamocil(
137-
self.teamocil_dict['two-windows']
138-
)
139-
)
140117

141-
assert config.import_teamocil(
142-
self.teamocil_dict['two-windows-with-filters'],
143-
) == self.two_windows_with_filters
144-
145-
config.validate_schema(
146-
config.import_teamocil(
147-
self.teamocil_dict['two-windows-with-filters']
148-
)
118+
assert test_config.get() == teamocil_dict
119+
return teamocil_dict
120+
121+
122+
@pytest.mark.parametrize("session_name,expected", [
123+
('two-windows', fixtures.layouts.two_windows),
124+
('two-windows-with-filters', fixtures.layouts.two_windows_with_filters),
125+
('two-windows-with-custom-command-options',
126+
fixtures.layouts.two_windows_with_custom_command_options),
127+
('three-windows-within-a-session',
128+
fixtures.layouts.three_windows_within_a_session),
129+
])
130+
def test_multisession_config(session_name, expected, multisession_config):
131+
# teamocil can fit multiple sessions in a config
132+
assert config.import_teamocil(
133+
multisession_config[session_name]
134+
) == expected
135+
136+
config.validate_schema(
137+
config.import_teamocil(
138+
multisession_config[session_name]
149139
)
150-
151-
assert config.import_teamocil(
152-
self.teamocil_dict['two-windows-with-custom-command-options'],
153-
) == self.two_windows_with_custom_command_options
154-
155-
config.validate_schema(
156-
config.import_teamocil(
157-
self.teamocil_dict['two-windows-with-custom-command-options']
158-
)
159-
)
160-
161-
assert config.import_teamocil(
162-
self.teamocil_dict['three-windows-within-a-session'],
163-
) == self.three_windows_within_a_session
164-
165-
config.validate_schema(
166-
config.import_teamocil(
167-
self.teamocil_dict['three-windows-within-a-session']
168-
)
169-
)
170-
171-
# this configuration contains multiple sessions in a single file.
172-
# tmuxp can split them into files, proceed?
140+
)

0 commit comments

Comments
 (0)