Code Duplication    Length = 13-16 lines in 2 locations

didyoumean/didyoumean_sugg_tests.py 2 locations

@@ 1145-1160 (lines=16) @@
1142
                self.runs(set1, after)
1143
1144
    def test_unmatched_msg(self):
1145
        """Test that arbitrary strings are supported."""
1146
        code = 'raise AttributeError("unmatched ATTRIBUTEERROR")'
1147
        self.throws(code, UNKNOWN_ATTRIBUTEERROR)
1148
1149
    # TODO: Add sugg for situation where self/cls is the missing parameter
1150
1151
1152
class TypeErrorTests(GetSuggestionsTests):
1153
    """Class for tests related to TypeError."""
1154
1155
    def test_unhashable(self):
1156
        """Test for UNHASHABLE exception."""
1157
        # NICE_TO_HAVE : suggest hashable equivalent
1158
        self.throws('s = set([list()])', UNHASHABLE)
1159
        self.throws('s = set([dict()])', UNHASHABLE)
1160
        self.throws('s = set([set()])', UNHASHABLE)
1161
        self.runs('s = set([tuple()])')
1162
        self.runs('s = set([frozenset()])')
1163
@@ 2160-2172 (lines=13) @@
2157
2158
    def test_nonlocal3(self):
2159
        """nonlocal must be used only when binding to non-global exists."""
2160
        # just a way to say that this_is_a_global_list is needed in globals
2161
        name = 'this_is_a_global_list'
2162
        this_is_a_global_list
2163
        self.assertFalse(name in locals())
2164
        self.assertTrue(name in globals())
2165
        before, after = before_and_after((3, 0))
2166
        code = 'def func():\n\tdef nested():\n\t\t{0} ' + name
2167
        typo, good = 'nonlocal', 'global'
2168
        sugg = "'{0} {1}'".format(good, name)
2169
        bad_code, good_code = format_str(code, typo, good)
2170
        self.runs(good_code)
2171
        self.throws(bad_code, INVALIDSYNTAX, [], before)
2172
        self.throws(bad_code, NOBINDING, sugg, after)
2173
2174
    def test_nonlocal4(self):
2175
        """suggest close matches to variable name."""