diff --git a/tests/unit/test_zk.py b/tests/unit/test_zk.py index b6a05c2045..f3b664da20 100644 --- a/tests/unit/test_zk.py +++ b/tests/unit/test_zk.py @@ -1634,9 +1634,17 @@ class TestZKObject(ZooKeeperBaseTestCase): '/zuul/pipeline/fake_tenant') self.assertEqual(pipeline2.foo, 'bar') - compressed_size, uncompressed_size = pipeline1.estimateDataSize() + compressed_size, uncompressed_size = pipeline2.estimateDataSize() self.assertTrue(compressed_size != uncompressed_size != 0) + # Test that nested ZKObject sizes are summed up correctly + p1_compressed, p1_uncompressed = pipeline1.estimateDataSize() + p2_compressed, p2_uncompressed = pipeline2.estimateDataSize() + pipeline2._set(other=pipeline1) + compressed_size, uncompressed_size = pipeline2.estimateDataSize() + self.assertEqual(compressed_size, p1_compressed + p2_compressed) + self.assertEqual(uncompressed_size, p1_uncompressed + p2_uncompressed) + def get_ltime(obj): zstat = self.zk_client.client.exists(obj.getPath()) return zstat.last_modified_transaction_id diff --git a/zuul/zk/zkobject.py b/zuul/zk/zkobject.py index 1f2c12b558..3905e254ce 100644 --- a/zuul/zk/zkobject.py +++ b/zuul/zk/zkobject.py @@ -210,7 +210,7 @@ class ZKObject: if obj in seen: return 0, 0 seen.add(obj) - compress, uncompressed = obj.estimateDataSize(seen) + compressed, uncompressed = obj.estimateDataSize(seen) elif (isinstance(obj, dict) or isinstance(obj, types.MappingProxyType)): for sub in obj.values():