diff --git a/poem/Poem/api/tests/test_helpers.py b/poem/Poem/api/tests/test_helpers.py index da35884d1..6465a5a2d 100644 --- a/poem/Poem/api/tests/test_helpers.py +++ b/poem/Poem/api/tests/test_helpers.py @@ -3256,6 +3256,27 @@ def test_update_all_metrics_on_metrictemplate_change(self, mock_update): ) ], any_order=True) + @patch("Poem.helpers.metrics_helpers.update_metric_in_schema") + def test_update_all_passive_metrics_on_metrictemplate_change( + self, mock_update + ): + mock_update.side_effect = mocked_func + metrictemplate = admin_models.MetricTemplate.objects.get( + name="org.apel.APEL-Pub" + ) + update_metrics(metrictemplate, "org.apel.APEL-Pub", None) + self.assertEqual(mock_update.call_count, 2) + mock_update.assert_has_calls([ + call( + mt_id=metrictemplate.id, name="org.apel.APEL-Pub", + pk_id=None, schema="test", user="" + ), + call( + mt_id=metrictemplate.id, name="org.apel.APEL-Pub", + pk_id=None, schema="test2", user="" + ) + ], any_order=True) + class MetricsInProfilesTests(TenantTestCase): def setUp(self): diff --git a/poem/Poem/helpers/metrics_helpers.py b/poem/Poem/helpers/metrics_helpers.py index 7f995c24a..6169c0a57 100644 --- a/poem/Poem/helpers/metrics_helpers.py +++ b/poem/Poem/helpers/metrics_helpers.py @@ -266,10 +266,18 @@ def update_metrics(metrictemplate, name, probekey, user=''): msgs = [] for schema in schemas: - msg = update_metric_in_schema( - mt_id=metrictemplate.id, name=name, pk_id=probekey.id, - schema=schema, user=user - ) + if probekey: + msg = update_metric_in_schema( + mt_id=metrictemplate.id, name=name, pk_id=probekey.id, + schema=schema, user=user + ) + + else: + msg = update_metric_in_schema( + mt_id=metrictemplate.id, name=name, pk_id=None, + schema=schema, user=user + ) + if msg: msgs.append(msg)