Exemplo n.º 1
0
 def test_serializer_outputs_expected_schema_for_addon_experiment(self):
     experiment = ExperimentFactory.create_with_status(
         Experiment.STATUS_SHIP,
         type=Experiment.TYPE_ADDON,
         locales=[LocaleFactory.create()],
         countries=[CountryFactory.create()],
     )
     serializer = ExperimentRecipeSerializer(experiment)
     self.assertEqual(serializer.data["action_name"], "opt-out-study")
     self.assertEqual(serializer.data["name"], experiment.name)
     self.assertEqual(
         serializer.data["comment"], experiment.client_matching
     )
     self.assertEqual(
         serializer.data["filter_object"],
         [
             FilterObjectBucketSampleSerializer(experiment).data,
             FilterObjectChannelSerializer(experiment).data,
             FilterObjectLocaleSerializer(experiment).data,
             FilterObjectCountrySerializer(experiment).data,
         ],
     )
     self.assertEqual(
         serializer.data["arguments"],
         ExperimentRecipeAddonArgumentsSerializer(experiment).data,
     )
Exemplo n.º 2
0
    def test_serializer_outputs_expected_schema_for_pref_experiment(self):
        experiment = ExperimentFactory.create_with_status(
            Experiment.STATUS_SHIP,
            type=Experiment.TYPE_PREF,
            locales=[LocaleFactory.create()],
            countries=[CountryFactory.create()],
        )
        serializer = ExperimentRecipeSerializer(experiment)
        self.assertEqual(serializer.data["action_name"],
                         "preference-experiment")
        self.assertEqual(serializer.data["name"], experiment.name)
        self.assertEqual(serializer.data["comment"],
                         experiment.client_matching)
        self.assertEqual(
            serializer.data["filter_object"],
            [
                FilterObjectBucketSampleSerializer(experiment).data,
                FilterObjectChannelSerializer(experiment).data,
                FilterObjectVersionsSerializer(experiment).data,
                FilterObjectLocaleSerializer(experiment).data,
                FilterObjectCountrySerializer(experiment).data,
            ],
        )
        self.assertEqual(
            serializer.data["arguments"],
            ExperimentRecipePrefArgumentsSerializer(experiment).data,
        )

        self.assertEqual(serializer.data["experimenter_slug"], experiment.slug)
Exemplo n.º 3
0
 def test_normandy_recipe_json_serializes_pref_study(self):
     experiment = ExperimentFactory.create_with_status(
         Experiment.STATUS_SHIP
     )
     recipe_json = json.loads(experiment.normandy_recipe_json)
     self.assertEqual(
         recipe_json, ExperimentRecipeSerializer(experiment).data
     )
Exemplo n.º 4
0
 def test_serializer_excludes_countries_if_none_set(self):
     experiment = ExperimentFactory.create_with_status(
         Experiment.STATUS_SHIP, type=Experiment.TYPE_ADDON)
     experiment.countries.all().delete()
     serializer = ExperimentRecipeSerializer(experiment)
     filter_object_types = [
         f["type"] for f in serializer.data["filter_object"]
     ]
     self.assertNotIn("country", filter_object_types)
Exemplo n.º 5
0
    def test_get_experiment_recipe_returns_recipe_info(self):
        user_email = "*****@*****.**"
        experiment = ExperimentFactory.create_with_variants()

        response = self.client.get(
            reverse("experiments-api-recipe", kwargs={"slug":
                                                      experiment.slug}),
            **{settings.OPENIDC_EMAIL_HEADER: user_email},
        )

        self.assertEqual(response.status_code, 200)
        json_data = json.loads(response.content)
        serialized_experiment = ExperimentRecipeSerializer(experiment).data
        self.assertEqual(serialized_experiment, json_data)
Exemplo n.º 6
0
    def normandy_recipe_json(self):
        from experimenter.experiments.serializers import (
            ExperimentRecipeSerializer
        )

        return json.dumps(ExperimentRecipeSerializer(self).data, indent=2)