fix bug with sources that only have lists

This commit is contained in:
evilchili 2023-12-22 23:22:17 -08:00
parent 15904a51d2
commit e579d11cfa
2 changed files with 13 additions and 8 deletions

View File

@ -128,9 +128,6 @@ class DataSource:
]
else:
# If the option is either a list or a string, just select it.
if rand:
choices = [random.choice(self.data[option])]
else:
choices = self.data[option]
for choice in choices:
@ -153,6 +150,7 @@ class DataSource:
flattened.append(choice)
return flattened
class RollTable:
"""
Generate a roll table using weighted distributions of random options.

View File

@ -204,7 +204,14 @@ def test_text():
assert repr(tables.RollTable([fixture_source]))
def test_as_dict():
source = tables.RollTable([fixture_no_descriptions]).datasources[0]
ds = source.as_dict()
assert ds['option 1']['choice'] == 'choice 1'
@pytest.mark.parametrize('table', [
tables.RollTable([fixture_no_options]),
tables.RollTable([fixture_one_choice]),
tables.RollTable([fixture_metadata + fixture_source]),
tables.RollTable([fixture_source]),
tables.RollTable([fixture_no_options]),
tables.RollTable([fixture_lists_and_dicts]),
])
def test_as_dict(table):
for src in table.datasources:
assert src.as_dict()