def METHOD_NAME(self):
    import warnings
    all_events = self.all_events
    with warnings.catch_warnings(record=True) as issued_warnings:
        # Patch again, triggering just one warning, for
        # a different set of arguments. Because we're going to False instead of
        # turning something on, nothing is actually done, no events are issued.
        monkey.patch_all(os=False, extra_kwarg=42)
        self.assertEqual(len(issued_warnings), 1)
        self.assertIn('more than once', str(issued_warnings[0].message))
        self.assertEqual(all_events, [])
        # Same warning again, but still nothing is done.
        del issued_warnings[:]
        monkey.patch_all(os=False)
        self.assertEqual(len(issued_warnings), 1)
        self.assertIn('more than once', str(issued_warnings[0].message))
        self.assertEqual(all_events, [])
        self.orig_saved['_gevent_saved_patch_all_module_settings'] = monkey.saved[
            '_gevent_saved_patch_all_module_settings']
    # Make sure that re-patching did not change the monkey.saved
    # attribute, overwriting the original functions.
    if 'logging' in monkey.saved and 'logging' not in self.orig_saved:
        # some part of the warning or unittest machinery imports logging
        self.orig_saved['logging'] = monkey.saved['logging']
    self.assertEqual(self.orig_saved, monkey.saved)
    # Make sure some problematic attributes stayed correct.
    # NOTE: This was only a problem if threading was not previously imported.
    for k, v in monkey.saved['threading'].items():
        self.assertNotIn('gevent', str(v), (k, v))