in experimenter/experimenter/experiments/api/v5/serializers.py [0:0]
def _validate_swapped_branch_names(self, data):
if "reference_branch" in data and "treatment_branches" in data:
name_ids = defaultdict(set)
for branch_data in data["treatment_branches"] + [data["reference_branch"]]:
name_ids[branch_data["name"]].add(branch_data.get("id"))
for branch in self.instance.branches.all():
name_ids[branch.name].add(branch.id)
swapped_branches = [name for (name, ids) in name_ids.items() if len(ids) > 1]
if len(swapped_branches) > 1:
raise serializers.ValidationError(
{
"reference_branch": {"name": NimbusConstants.ERROR_BRANCH_SWAP},
"treatment_branches": [
{"name": NimbusConstants.ERROR_BRANCH_SWAP}
for _ in data["treatment_branches"]
],
}
)
return data