def test_serializer_outputs_expected_schema(self): experiment = ExperimentFactory(pref_type=Experiment.PREF_TYPE_STR) variant = ExperimentVariantFactory.create(experiment=experiment) serializer = ExperimentRecipeVariantSerializer(variant) self.assertDictEqual( serializer.data, {"ratio": variant.ratio, "slug": variant.slug, "value": variant.value}, )
def test_serializer_outputs_expected_int_val(self): experiment = ExperimentFactory(pref_type=Experiment.PREF_TYPE_INT) variant = ExperimentVariantFactory.create(experiment=experiment, value="28") serializer = ExperimentRecipeVariantSerializer(variant) self.assertEqual(type(serializer.data["value"]), int) self.assertEqual(serializer.data, { "ratio": variant.ratio, "slug": variant.slug, "value": 28 })
def test_serializer_outputs_expected_schema_with_json_str(self): experiment = ExperimentFactory(pref_type=Experiment.PREF_TYPE_JSON_STR) serializer = ExperimentRecipePrefArgumentsSerializer(experiment) self.assertDictEqual( serializer.data, { "preferenceBranchType": experiment.pref_branch, "slug": experiment.recipe_slug, "experimentDocumentUrl": experiment.experiment_url, "preferenceName": experiment.pref_name, "preferenceType": "string", "branches": [ ExperimentRecipeVariantSerializer(variant).data for variant in experiment.variants.all() ], }, )