fix bug with sources that only have lists
This commit is contained in:
parent
15904a51d2
commit
e579d11cfa
|
@ -128,10 +128,7 @@ 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]
|
||||
choices = self.data[option]
|
||||
|
||||
for choice in choices:
|
||||
# If the randomly-selected choice is a dict, choose a random item and return a list consisting
|
||||
|
@ -153,6 +150,7 @@ class DataSource:
|
|||
flattened.append(choice)
|
||||
return flattened
|
||||
|
||||
|
||||
class RollTable:
|
||||
"""
|
||||
Generate a roll table using weighted distributions of random options.
|
||||
|
|
|
@ -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()
|
||||
|
|
Loading…
Reference in New Issue
Block a user