def test_set(self): """Set some value.""" z = ZkFarmer(self.client) self.client.ensure_path("/something") z.set("/something", "enabled", "1") z.set("/something", "maintainance", "0") z.set("/something", "weight", "10") self.assertEqual(z.get("/something"), dict(enabled="1", maintainance="0", weight="10")) self.assertEqual(json.loads(self.client.get("/something")[0]), dict(enabled="1", maintainance="0", weight="10"))
def test_set_bad_version(self): """Set some value with a concurrent update.""" z = ZkFarmer(self.client) self.client.ensure_path("/something") orig = self.client.retry # Simulate a BadVersionError with patch.object(self.client, 'retry') as mock: def fail_once(*args, **kwargs): mock.side_effect = orig raise BadVersionError("Baaaad") mock.side_effect = fail_once z.set("/something", "enabled", "1") z.set("/something", "maintainance", "0") z.set("/something", "weight", "10") self.assertEqual(z.get("/something"), dict(enabled="1", maintainance="0", weight="10"))