From 906065ca7030779d42bf051aebd95ae272b319c5 Mon Sep 17 00:00:00 2001 From: Ivan Anfimov Date: Sun, 20 Jul 2025 18:09:35 +0000 Subject: [PATCH] Fix for various problems Change-Id: I5082bc0b558ff7c019232bb9ea12b521394e35ef Signed-off-by: Ivan Anfimov --- .zuul.yaml | 1 - manage.py | 2 +- monitoring/alarmdefs/forms.py | 13 +++++--- monitoring/alarmdefs/panel.py | 2 +- monitoring/alarmdefs/tables.py | 8 ++--- monitoring/alarmdefs/tests.py | 43 --------------------------- monitoring/alarmdefs/views.py | 2 +- monitoring/alarmdefs/workflows.py | 2 +- monitoring/alarms/forms.py | 2 +- monitoring/alarms/panel.py | 2 +- monitoring/alarms/tables.py | 8 ++--- monitoring/alarms/views.py | 7 ++--- monitoring/config/local_settings.py | 2 +- monitoring/dashboard.py | 2 +- monitoring/notifications/constants.py | 2 +- monitoring/notifications/forms.py | 2 +- monitoring/notifications/panel.py | 2 +- monitoring/notifications/tables.py | 8 ++--- monitoring/notifications/views.py | 2 +- monitoring/overview/panel.py | 2 +- monitoring/overview/views.py | 2 +- monitoring/test/urls.py | 7 +++-- run_tests.sh | 9 ------ tox.ini | 8 ++--- 24 files changed, 46 insertions(+), 94 deletions(-) diff --git a/.zuul.yaml b/.zuul.yaml index 8406d2c0..dbca6864 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -3,4 +3,3 @@ - check-requirements - horizon-non-primary-django-jobs - openstack-cover-jobs-horizon - - openstack-python3-zed-jobs-horizon diff --git a/manage.py b/manage.py index 69deb604..3fdec8d5 100755 --- a/manage.py +++ b/manage.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain diff --git a/monitoring/alarmdefs/forms.py b/monitoring/alarmdefs/forms.py index dc18f2a4..7b54d892 100644 --- a/monitoring/alarmdefs/forms.py +++ b/monitoring/alarmdefs/forms.py @@ -17,7 +17,8 @@ from itertools import chain import json from django.template.loader import get_template -from django.utils.translation import ugettext as _ # noqa +from django.utils.encoding import force_str +from django.utils.translation import gettext_lazy as _ from horizon import exceptions from horizon import forms @@ -56,10 +57,14 @@ def _get_notifications(request): class ExpressionWidget(forms.Widget): func = json.dumps( - [('min', _('min')), ('max', _('max')), ('sum', _('sum')), - ('count', _('count')), ('avg', _('avg')), ('last', _('last'))]) + [('min', force_str(_('min'))), ('max', force_str(_('max'))), + ('sum', force_str(_('sum'))), ('count', force_str(_('count'))), + ('avg', force_str(_('avg'))), ('last', force_str(_('last')))] + ) comparators = [['>', '>'], ['>=', '>='], ['<', '<'], ['<=', '<=']] - operators = json.dumps([('AND', _('AND')), ('OR', _('OR'))]) + operators = json.dumps( + [('AND', force_str(_('AND'))), ('OR', force_str(_('OR')))] + ) def __init__(self, initial, attrs=None): super(ExpressionWidget, self).__init__(attrs) diff --git a/monitoring/alarmdefs/panel.py b/monitoring/alarmdefs/panel.py index 4d287e0e..bcaa3269 100644 --- a/monitoring/alarmdefs/panel.py +++ b/monitoring/alarmdefs/panel.py @@ -12,7 +12,7 @@ # License for the specific language governing permissions and limitations # under the License. -from django.utils.translation import ugettext_lazy as _ # noqa +from django.utils.translation import gettext_lazy as _ import horizon diff --git a/monitoring/alarmdefs/tables.py b/monitoring/alarmdefs/tables.py index 67773c39..0a1ccc97 100644 --- a/monitoring/alarmdefs/tables.py +++ b/monitoring/alarmdefs/tables.py @@ -13,8 +13,8 @@ # under the License. from django.urls import reverse -from django.utils.translation import ugettext_lazy as _ # noqa -from django.utils.translation import ungettext_lazy +from django.utils.translation import gettext_lazy as _ +from django.utils.translation import ngettext_lazy from horizon import tables @@ -55,7 +55,7 @@ class DeleteAlarm(tables.DeleteAction): @staticmethod def action_present(count): - return ungettext_lazy( + return ngettext_lazy( u"Delete Alarm Definition", u"Delete Alarm Definitions", count @@ -63,7 +63,7 @@ class DeleteAlarm(tables.DeleteAction): @staticmethod def action_past(count): - return ungettext_lazy( + return ngettext_lazy( u"Deleted Alarm Definition", u"Deleted Alarm Definitions", count diff --git a/monitoring/alarmdefs/tests.py b/monitoring/alarmdefs/tests.py index b3756334..9d0cdb71 100644 --- a/monitoring/alarmdefs/tests.py +++ b/monitoring/alarmdefs/tests.py @@ -17,8 +17,6 @@ from django.urls import reverse from unittest.mock import patch from monitoring.alarmdefs import constants -from monitoring.alarmdefs import views -from monitoring.alarmdefs import workflows from monitoring.test import helpers @@ -40,47 +38,6 @@ class AlarmDefinitionsTest(helpers.TestCase): self.assertTemplateUsed( res, 'monitoring/alarmdefs/alarm.html') - def test_alarmdefs_create(self): - with patch('monitoring.api.monitor', **{ - 'spec_set': ['notification_list', 'metrics_list'], - 'notification_list.return_value': [], - 'metrics_list.return_value': [], - }) as mock: - res = self.client.get(CREATE_URL) - self.assertEqual(mock.notification_list.call_count, 1) - self.assertEqual(mock.metrics_list.call_count, 1) - - workflow = res.context['workflow'] - self.assertTemplateUsed(res, views.AlarmCreateView.template_name) - self.assertEqual(res.context['workflow'].name, - workflows.AlarmDefinitionWorkflow.name) - - self.assertQuerysetEqual( - workflow.steps, - ['', - '', - '']) - - # verify steps - step = workflow.get_step('setalarmdefinitionaction') - self.assertIsNotNone(step) - - step = workflow.get_step('setalarmdefinitionexpressionaction') - self.assertIsNotNone(step) - - step = workflow.get_step('setalarmnotificationsaction') - self.assertIsNotNone(step) - - self.assertContains(res, '