def test_saves_existing_experiment_with_changelog(self): experiment = NimbusExperimentFactory.create_with_status( NimbusExperiment.Status.DRAFT, application=NimbusExperiment.Application.FENIX, hypothesis="Existing hypothesis", name="Existing Name", slug="existing-name", public_description="Existing public description", ) self.assertEqual(experiment.changes.count(), 1) data = { "application": NimbusExperiment.Application.DESKTOP, "hypothesis": "New Hypothesis", "name": "New Name", "public_description": "New public description", } serializer = NimbusExperimentOverviewSerializer( experiment, data=data, context={"user": self.user}) self.assertTrue(serializer.is_valid()) experiment = serializer.save() self.assertEqual(experiment.changes.count(), 2) self.assertEqual(experiment.application, NimbusExperiment.Application.DESKTOP) self.assertEqual(experiment.hypothesis, "New Hypothesis") self.assertEqual(experiment.name, "New Name") self.assertEqual(experiment.slug, "existing-name") self.assertEqual(experiment.public_description, "New public description")
def test_saves_new_experiment_with_changelog(self): data = { "application": NimbusExperiment.Application.DESKTOP, "hypothesis": "It does the thing", "name": "The Thing", "public_description": "Does it do the thing?", } serializer = NimbusExperimentOverviewSerializer( data=data, context={"user": self.user}) self.assertTrue(serializer.is_valid()) experiment = serializer.save() self.assertEqual(experiment.changes.count(), 1) self.assertEqual(experiment.application, NimbusExperiment.Application.DESKTOP) self.assertEqual(experiment.hypothesis, "It does the thing") self.assertEqual(experiment.name, "The Thing") self.assertEqual(experiment.slug, "the-thing")
def test_serializer_creates_experiment_and_sets_slug_and_owner(self): data = { "name": "Test 1234", "hypothesis": "Test hypothesis", "application": NimbusExperiment.Application.DESKTOP.value, "public_description": "Test description", } serializer = NimbusExperimentOverviewSerializer( data=data, context={"user": self.user}) self.assertTrue(serializer.is_valid()) experiment = serializer.save() self.assertEqual(experiment.slug, slugify(data["name"])) self.assertEqual(experiment.name, data["name"]) self.assertEqual(experiment.application, data["application"]) self.assertEqual(experiment.hypothesis, data["hypothesis"]) self.assertEqual(experiment.public_description, data["public_description"]) # Owner should match the email of the user who created the experiment self.assertEqual(experiment.owner, self.user)