def update_settings(self, new_settings, override=False):
<EOL>from rez.utils.data_utils import deep_update<EOL>self.teardown_config()<EOL>if override:<EOL><INDENT>self.settings = dict(new_settings)<EOL><DEDENT>else:<EOL><INDENT>self.settings = dict(type(self).settings)<EOL>deep_update(self.settings, new_settings)<EOL><DEDENT>self.setup_config()<EOL>
Can be called within test methods to modify settings on a
        per-test basis (as opposed cls.settings, which modifies it for all
        tests on the class)

        Note that multiple calls will not "accumulate" updates, but will
        instead patch the class's settings with the new_settings each time.

        new_settings : dict
            the updated settings to override the config with
        override : bool
            normally, the resulting config will be the result of merging
            the base cls.settings with the new_settings - ie, like doing
            cls.settings.update(new_settings).  If this is True, however,
            then the cls.settings will be ignored entirely, and the
            new_settings will be the only configuration settings applied