def create_app(): app = Flask(__name__) word_finder = WordFinder(AnagramFinder(_get_words())) routes = [AcknowledgeRoute(), WordRoute(word_finder), FrontEndRoute()] _set_up_routes(routes, app) return app
def test_when_anagram_finder_gives_duplicates_then_only_choose_uniques( monkeypatch): results_of_get_anagrams = [['bib'], ['bib'], ['bib'], ['bib']] monkeypatch.setattr(AnagramFinder, 'get_anagrams', Mock(side_effect=results_of_get_anagrams)) word_finder = WordFinder(AnagramFinder([])) assert ['bib'] == word_finder.get_words('ibb')
def create_app(): app = Flask(__name__) app.config['SEND_FILE_MAX_AGE_DEFAULT'] = 0 word_finder = WordFinder(AnagramFinder(_get_words())) routes = [AcknowledgeRoute(), WordRoute(word_finder), FrontEndRoute()] _set_up_routes(routes, app) return app
def test_when_letters_string_is_abc_then_word_finder_calls_anagram_finder_with_all_combinations_of_abc( monkeypatch): results_of_get_anagrams = [['cab'], ['ab', 'ba'], [], []] monkeypatch.setattr(AnagramFinder, 'get_anagrams', Mock(side_effect=results_of_get_anagrams)) word_finder = WordFinder(AnagramFinder([])) assert ['cab', 'ab', 'ba'] == word_finder.get_words('abc') expected_calls = [call('ab'), call('ac'), call('bc'), call('abc')] AnagramFinder.get_anagrams.assert_has_calls(expected_calls) assert 4 == AnagramFinder.get_anagrams.call_count
def test_when_there_is_an_anagram_then_return_it(): words = ['read'] anagram_finder = AnagramFinder(words) assert ['read'] == anagram_finder.get_anagrams('ader')
def test_when_there_are_no_words_then_get_anagrams_returns_nothing(): words = [] anagram_finder = AnagramFinder(words) assert [] == anagram_finder.get_anagrams('ader')
def test_when_there_are_multiple_anagrams_then_return_them(): words = ['read', 'dear', 'cat'] anagram_finder = AnagramFinder(words) assert ['dear', 'read'] == anagram_finder.get_anagrams('reda')
def test_when_letters_are_not_sorted_then_sort_them_before_searching_for_anagrams( ): words = ['read'] anagram_finder = AnagramFinder(words) assert ['read'] == anagram_finder.get_anagrams('dera')
def test_when_there_are_multiple_words_then_return_correct_anagram(): words = ['read', 'cat'] anagram_finder = AnagramFinder(words) assert ['read'] == anagram_finder.get_anagrams('ader')
def test_when_letters_string_is_empty_then_word_finder_calls_anagram_finder_with_empty_string( monkeypatch): monkeypatch.setattr(AnagramFinder, 'get_anagrams', Mock(return_value=[])) word_finder = WordFinder(AnagramFinder([])) assert [] == word_finder.get_words('')