예제 #1
0
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
예제 #2
0
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')
예제 #3
0
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
예제 #4
0
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')
예제 #10
0
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('')