def test_get_with_fields(self): """Get data and filter in some fields.""" z = ZkFarmer(self.client) self.client.ensure_path("/something/mysql2") self.client.set("/something/mysql2", json.dumps(dict(enabled="1", maintainance="0", weight="10"))) self.assertEqual(z.get("/something/mysql2", ["enabled"]), {"enabled": "1"}) self.assertEqual(z.get("/something/mysql2", ["enabled", "maintainance"]), {"enabled": "1", "maintainance": "0"}) self.assertEqual(z.get("/something/mysql2", ["disabled", "maintainance"]), {"disabled": None, "maintainance": "0"})
def test_get(self): """Get data from a regular node.""" z = ZkFarmer(self.client) self.client.ensure_path("/something/here") self.client.set("/something/here", json.dumps({1:"2", 3:"4"})) self.assertEqual(z.get("/something/here"), {"1": "2", "3": "4"})
def test_get_with_children(self): """Get data from a regular node with children.""" z = ZkFarmer(self.client) self.client.ensure_path("/something/here") self.client.ensure_path("/something/not") self.client.set("/something", json.dumps({1: "2", 3: "4"})) self.assertEqual(z.get("/something"), {"1": "2", "3": "4"})
def test_get_with_fields(self): """Get data and filter in some fields.""" z = ZkFarmer(self.client) self.client.ensure_path("/something/mysql2") self.client.set( "/something/mysql2", json.dumps(dict(enabled="1", maintainance="0", weight="10"))) self.assertEqual(z.get("/something/mysql2", ["enabled"]), {"enabled": "1"}) self.assertEqual( z.get("/something/mysql2", ["enabled", "maintainance"]), { "enabled": "1", "maintainance": "0" }) self.assertEqual( z.get("/something/mysql2", ["disabled", "maintainance"]), { "disabled": None, "maintainance": "0" })
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"))
def test_get_inexistent_node(self): """Get a node which does not exist.""" z = ZkFarmer(self.client) self.assertEqual(z.get("/nothing"), {"size": 0})