def test_disabling_recipe_removes_approval(self): recipe = RecipeFactory(approver=UserFactory(), enabled=True) assert recipe.is_approved recipe.enabled = False recipe.save() recipe.refresh_from_db() assert not recipe.is_approved
def test_signatures_update_correctly_on_enable(self, mocker): mock_autograph = mocker.patch('normandy.recipes.models.Autographer') def fake_sign(datas): sigs = [] for d in datas: sigs.append({'signature': hashlib.sha256(d).hexdigest()}) return sigs mock_autograph.return_value.sign_data.side_effect = fake_sign recipe = RecipeFactory(enabled=False, signed=False) recipe.enabled = True recipe.save() recipe.refresh_from_db() assert recipe.signature is not None assert recipe.signature.signature == hashlib.sha256(recipe.canonical_json()).hexdigest()
def test_signatures_update_correctly_on_enable(self, mocker): mock_autograph = mocker.patch('normandy.recipes.models.Autographer') def fake_sign(datas): sigs = [] for d in datas: sigs.append({'signature': hashlib.sha256(d).hexdigest()}) return sigs mock_autograph.return_value.sign_data.side_effect = fake_sign recipe = RecipeFactory(enabled=False, signed=False) recipe.enabled = True recipe.save() recipe.refresh_from_db() assert recipe.signature is not None assert recipe.signature.signature == hashlib.sha256( recipe.canonical_json()).hexdigest()
def test_cannot_enable_unapproved_recipe(self): recipe = RecipeFactory(enabled=False) with pytest.raises(Recipe.NotApproved): recipe.enabled = True recipe.save()