def test_make_poem(get_random_line): with patch.object(poems, 'fix_repitition', lambda s: s): # Poems have a random ordering with patch('helga.plugins.poems.random') as random: random.choice.side_effect = [0, 1] get_random_line.side_effect = ['one', 'two', 'three'] assert poems.make_poem() == ['one', 'two', 'three'] get_random_line.side_effect = ['one', 'two', 'three'] assert poems.make_poem() == ['three', 'two', 'one']
def test_make_poem_adds_about_or_by_kwargs(get_random_line, fix_rep): poem = ['one', 'two', 'three'] fix_rep.return_value = poem get_random_line.side_effect = poem poems.make_poem(about='me') args, kwargs = fix_rep.call_args assert sorted(args[0]) == sorted(poem) assert kwargs == {'about': 'me'} poem = ['one', 'two', 'three'] get_random_line.side_effect = poem poems.make_poem(by='me') args, kwargs = fix_rep.call_args assert sorted(args[0]) == sorted(poem) assert kwargs == {'by': 'me'}
def test_make_poem_tanka(get_random_line): get_random_line.side_effect = ['one', 'two', 'three', 'four', 'five'] poem = poems.make_poem(poem_type='tanka') # Poems have a random ordering assert poem in ( ['one', 'two', 'three', 'four', 'five'], ['three', 'two', 'one', 'four', 'five'], )
def test_make_poem_none_if_incomplete(get_random_line): get_random_line.side_effect = ['foo', 'bar', ''] assert poems.make_poem(poem_type='haiku') is None
def test_make_poem_tanka(get_random_line): get_random_line.side_effect = ['one', 'two', 'three', 'four', 'five'] poem = poems.make_poem(poem_type='tanka') assert poem == ['one', 'two', 'three', 'four', 'five']
def test_make_poem_tanka(get_random_line): get_random_line.side_effect = ["one", "two", "three", "four", "five"] poem = poems.make_poem(poem_type="tanka") # Poems have a random ordering assert poem in (["one", "two", "three", "four", "five"], ["three", "two", "one", "four", "five"])