def check_write_copied_conflict(): fname = writetempfile('[foo]\nbar = x') c0 = wconfig.readfile(fname) c1 = c0.copy() c0.set('foo', 'bar', 'y') wconfig.writefile(c0, fname) wconfig.writefile(c1, fname) # shouldn't override foo.bar = y cr = wconfig.readfile(fname) assert_equals('y', cr.get('foo', 'bar'))
def check_write_copied(): fname = writetempfile('[foo]\nbar = x') c0 = wconfig.readfile(fname) c1 = c0.copy() c1.set('foo', 'baz', 'y') wconfig.writefile(c1, fname) cr = wconfig.readfile(fname) assert_equals('x', cr.get('foo', 'bar')) assert_equals('y', cr.get('foo', 'baz'))
def check_write_conflict_del_del(): fname = writetempfile('[foo]\nbar = x') c0 = wconfig.readfile(fname) c1 = wconfig.readfile(fname) del c1['foo']['bar'] wconfig.writefile(c1, fname) del c0['foo']['bar'] wconfig.writefile(c0, fname) # shouldn't raise KeyError cr = wconfig.readfile(fname) assert not cr.get('foo', 'bar')
def check_write_conflict_set_del(): fname = writetempfile('[foo]\nbar = x') c0 = wconfig.readfile(fname) c1 = wconfig.readfile(fname) c1.set('foo', 'bar', 'y') wconfig.writefile(c1, fname) del c0['foo']['bar'] wconfig.writefile(c0, fname) cr = wconfig.readfile(fname) assert not cr.get('foo', 'bar')
def check_write_conflict_del_set(): fname = writetempfile('[foo]\nbar = x') c0 = wconfig.readfile(fname) c1 = wconfig.readfile(fname) del c1['foo']['bar'] wconfig.writefile(c1, fname) c0.set('foo', 'bar', 'z') wconfig.writefile(c0, fname) cr = wconfig.readfile(fname) assert_equals('z', cr.get('foo', 'bar'))
def check_write_noconflict_del(): fname = writetempfile('[foo]\nbar = x') c0 = wconfig.readfile(fname) c1 = wconfig.readfile(fname) del c1['foo']['bar'] wconfig.writefile(c1, fname) wconfig.writefile(c0, fname) # shouldn't override del foo.bar cr = wconfig.readfile(fname) assert not cr.get('foo', 'bar') assert c0.get('foo', 'bar') # don't reload c1's change implicitly
def check_write_noconflict_set_set(): fname = writetempfile('[foo]\nbar = x') c0 = wconfig.readfile(fname) c1 = wconfig.readfile(fname) c1.set('foo', 'baz', 'y') wconfig.writefile(c1, fname) c0.set('foo', 'bar', 'z') wconfig.writefile(c0, fname) # should not override foo.baz = y cr = wconfig.readfile(fname) assert_equals('z', cr.get('foo', 'bar')) assert_equals('y', cr.get('foo', 'baz')) assert not c0.get('foo', 'baz') # don't reload c1's change implicitly
def setConfigValue(rcfilepath, cfgpath, value): ''' Set a value on a config file, such as an hgrc or a .ini file rcpfilepath: Absolute path to a configuration file cfgpath: Full "path" of a configurable key Format is section.keyNamee.g. 'web.name') value: String value for the selected config key ''' fn, cfg = loadIniFile([rcfilepath]) if not hasattr(cfg, 'write'): return False if fn is None: return False cfgFullKey = cfgpath.split('.') if len(cfgFullKey) < 2: return False cfg.set(cfgFullKey[0], cfgFullKey[1], value) try: wconfig.writefile(cfg, fn) except EnvironmentError, e: return False
def check_writefile(): c = newwconfig({'foo.bar': 'baz'}) fname = writetempfile('') wconfig.writefile(c, fname) assert_equals('[foo]\nbar = baz', open(fname).read().rstrip())
def savewebconf(self, path): """save current webconf to the specified file""" path = hglib.fromunicode(path) wconfig.writefile(self.webconf, path) self.openwebconf(path) # reopen in case file path changed