def test_remove_words_from_edit_json_to_jumble_dict(self):
        """
        Load a list of words to remove from an edit word dict json and remove them from a jumble dict.
        """

        jumble_dict_with_words_to_remove = {
            'aagnorrt': sorted(['arrogant', 'tarragon']),
            'eerst': sorted(['steer', 'ester', 'reset', 'trees']),
            'deirw': sorted(['weird', 'wider', 'wired'])
        }

        jumble_dict_without_words_to_remove = {
            'aagnorrt': sorted(['arrogant', 'tarragon']),
            'eerst': sorted(['steer', 'ester', 'reset', 'trees']),
        }

        with open('./unit_testing_data/test_edit_word_dict.json') as f:
            edit_words_dict = json.load(f)
            words_to_remove = sorted(edit_words_dict.get(
                'words_to_remove', []))

        results = generate_jumble_dict.edit_jumble_dict(
            jumble_dict_with_words_to_remove, words_to_remove=words_to_remove)

        self.assertEqual(jumble_dict_without_words_to_remove, results)
    def test_remove_word_from_jumble_dict(self):
        """
        Remove a single word from an entry in a jumble dict.
        """
        jumble_dict_with_word_to_remove = {
            'aagnorrt': sorted(['arrogant', 'tarragon']),
            'eerst': sorted(['steer', 'ester', 'reset', 'trees']),
            'deirw': sorted(['weird', 'wider', 'wired'])
        }

        jumble_dict_without_word_to_remove = {
            'aagnorrt': sorted(['arrogant', 'tarragon']),
            'eerst': sorted(['steer', 'ester', 'reset', 'trees']),
            'deirw': sorted(['weird', 'wider'])
        }

        results = generate_jumble_dict.edit_jumble_dict(
            jumble_dict_with_word_to_remove, words_to_remove=['wired'])

        self.assertEqual(jumble_dict_without_word_to_remove, results)
    def test_add_entry_to_jumble_dict(self):
        """
        Add multiple words as a new entry to an existing jumble dict.
        """
        jumble_dict_with_added_word = {
            'aagnorrt': sorted(['arrogant', 'tarragon']),
            'eerst': sorted(['steer', 'ester', 'reset', 'trees']),
            'deirw': sorted(['weird', 'wider', 'wired'])
        }

        jumble_dict_without_added_entry = {
            'aagnorrt': sorted(['arrogant', 'tarragon']),
            'eerst': sorted(['steer', 'ester', 'reset', 'trees']),
        }

        results = generate_jumble_dict.edit_jumble_dict(
            jumble_dict_without_added_entry,
            words_to_add=['weird', 'wider', 'wired'])

        self.assertEqual(jumble_dict_with_added_word, results)