Initial setup of CLI
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
from rolltable import tables
|
||||
|
||||
fixture_metadata = """
|
||||
metadata:
|
||||
headers:
|
||||
- Header 1
|
||||
- Header 2
|
||||
- Header 3
|
||||
die: 10
|
||||
frequencies:
|
||||
default:
|
||||
Option 1: 0.3
|
||||
Option 2: 0.5
|
||||
Option 3: 0.2
|
||||
nondefault:
|
||||
Option 1: 0.0
|
||||
Option 2: 0.1
|
||||
Option 3: 0.9
|
||||
"""
|
||||
|
||||
fixture_source = """
|
||||
Option 1:
|
||||
- choice 1: description 1
|
||||
- choice 2: description 2
|
||||
- choice 3: description 3
|
||||
Option 2:
|
||||
- choice 1: description 4
|
||||
- choice 2: description 5
|
||||
- choice 3: description 6
|
||||
Option 3:
|
||||
- choice 1: description 7
|
||||
- choice 2: description 8
|
||||
- choice 3: description 9
|
||||
"""
|
||||
|
||||
fixture_one_choice = """
|
||||
option 1:
|
||||
- choice 1: description 1
|
||||
"""
|
||||
|
||||
fixture_repeated_choices = """
|
||||
option 1:
|
||||
- choice 1: description 1
|
||||
- choice 1: description 1
|
||||
- choice 1: description 1
|
||||
"""
|
||||
|
||||
fixture_no_descriptions = """
|
||||
option 1:
|
||||
- choice 1
|
||||
"""
|
||||
|
||||
|
||||
def test_table_end_to_end():
|
||||
assert str(tables.RollTable(fixture_source))
|
||||
|
||||
|
||||
def test_table_end_to_end_with_metadata():
|
||||
assert str(tables.RollTable(fixture_metadata + fixture_source))
|
||||
|
||||
|
||||
def test_table_frequency():
|
||||
t = tables.RollTable(fixture_metadata + fixture_source, frequency='nondefault')
|
||||
assert t.frequencies['Option 1'] == 0.0
|
||||
assert t.frequencies['Option 2'] == 0.1
|
||||
assert t.frequencies['Option 3'] == 0.9
|
||||
|
||||
|
||||
def test_one_option():
|
||||
t = tables.RollTable(fixture_one_choice, die=1)
|
||||
assert t.values == [('option 1', {'choice 1': 'description 1'})]
|
||||
|
||||
|
||||
def test_collapsed():
|
||||
t = tables.RollTable(fixture_repeated_choices, die=6, collapsed=True)
|
||||
assert len(list(t.rows)) == 1
|
||||
|
||||
|
||||
def test_not_collapsed():
|
||||
t = tables.RollTable(fixture_repeated_choices, die=6, collapsed=False)
|
||||
assert len(list(t.rows)) == 6
|
||||
|
||||
|
||||
def test_no_descriptions():
|
||||
t = tables.RollTable(fixture_no_descriptions, die=1)
|
||||
assert 'd1' in str(t)
|
||||
assert 'option 1' in str(t)
|
||||
Reference in New Issue
Block a user