This is what I get with 4.2:
import pymc as pm
with pm.Model() as model:
y = pm.MutableData('y', [1., 2., 3.])
beta = pm.Normal('beta', 0, 1)
obs = pm.Normal('obs', beta, 1, observed=y)
idata = pm.sample(1000, tune=1000)
with model:
pm.set_data({'y': [1,2,3,4]})
y_test = pm.sample_posterior_predictive(idata)
y_test.posterior_predictive['obs'].mean(('chain', 'draw'))
#<xarray.DataArray 'obs' (obs_dim_0: 4)>
#array([1.5213813 , 1.50321493, 1.51028904, 1.52245995])
#Coordinates:
# * obs_dim_0 (obs_dim_0) int64 0 1 2 3