15
0
forked from pool/python-flower

Accepting request 988794 from devel:languages:python

- Update to 1.1.0:
  * Disable authentication of /metrics endpoint. (#1129)
  * read custom histogram latency buckets from env (#1134)
  * making PrometheusMetrics class singleton (#1149)
  * Fix attribute error caused by newest humanize package. (#1156)
  * pass sentinel_kwargs to Sentinel() broker (#1208)
  * Fixing CORS support (#1200)
  * Encode worker and task names in URL (#1204)
  * Add compatibility with older humanize versions (#1196)
  * Diable API if auth is enabled (#1225)
- Remove patch python-flower-new-humanize.patch:
  * Included upstream.
- Add patch remove-mock.patch:
  * Remove dependency on mock.
- Remove python-mock from BuildRequires
- Clean up python 2 bcond, it is no longer supported.

OBS-URL: https://build.opensuse.org/request/show/988794
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-flower?expand=0&rev=8
This commit is contained in:
2022-07-13 11:45:29 +00:00
committed by Git OBS Bridge
6 changed files with 150 additions and 82 deletions

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2e17c4fb55c569508f3bfee7fe41f44b8362d30dbdf77b604a9d9f4740fe8cbd
size 4266671

3
flower-1.1.0.tar.gz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f920ca2902d7539fc180ab15e51f1d918355e5cc23da854ff9d59c6e5a1725b6
size 1974126

View File

@@ -1,67 +0,0 @@
diff --git a/flower/utils/__init__.py b/flower/utils/__init__.py
index 45289d51..29486ac9 100644
--- a/flower/utils/__init__.py
+++ b/flower/utils/__init__.py
@@ -20,11 +20,11 @@ def bugreport(app=None):
return 'flower -> flower:%s tornado:%s humanize:%s%s' % (
__version__,
tornado.version,
- humanize.VERSION,
+ humanize.__version__,
app.bugreport()
)
- except (ImportError, AttributeError):
- return 'Unknown Celery version'
+ except (ImportError, AttributeError) as e:
+ return f"Error when generating bug report: {e}. Have you installed correct versions of Flower's dependencies?"
def abs_path(path):
diff --git a/requirements/default.txt b/requirements/default.txt
index 93c831ef..9ffa2f89 100644
--- a/requirements/default.txt
+++ b/requirements/default.txt
@@ -1,5 +1,5 @@
celery>=5.0.5
tornado>=5.0.0,<7.0.0
prometheus_client>=0.8.0
-humanize
+humanize==3.12.0
pytz
diff --git a/tests/unit/utils/test_utils.py b/tests/unit/utils/test_utils.py
index a0032619..4e4fada4 100644
--- a/tests/unit/utils/test_utils.py
+++ b/tests/unit/utils/test_utils.py
@@ -1,4 +1,5 @@
import unittest
+from unittest.mock import Mock
from flower.utils import bugreport
from celery import Celery
@@ -7,7 +8,7 @@
class BugreportTests(unittest.TestCase):
def test_default(self):
report = bugreport()
- self.assertFalse('Unknown Celery version' in report)
+ self.assertFalse('Error when generating bug report' in report)
self.assertTrue('tornado' in report)
self.assertTrue('humanize' in report)
self.assertTrue('celery' in report)
@@ -15,7 +16,15 @@ def test_default(self):
def test_with_app(self):
app = Celery()
report = bugreport(app)
- self.assertFalse('Unknown Celery version' in report)
+ self.assertFalse('Error when generating bug report' in report)
self.assertTrue('tornado' in report)
self.assertTrue('humanize' in report)
self.assertTrue('celery' in report)
+
+ def test_when_unable_to_generate_report(self):
+ fake_app = Mock()
+ fake_app.bugreport.side_effect = ImportError('import error message')
+ report = bugreport(fake_app)
+ self.assertTrue('Error when generating bug report' in report)
+ self.assertTrue('import error message' in report)
+ self.assertTrue("Have you installed correct versions of Flower's dependencies?" in report)

View File

@@ -1,3 +1,23 @@
-------------------------------------------------------------------
Wed Jul 13 01:41:44 UTC 2022 - Steve Kowalik <steven.kowalik@suse.com>
- Update to 1.1.0:
* Disable authentication of /metrics endpoint. (#1129)
* read custom histogram latency buckets from env (#1134)
* making PrometheusMetrics class singleton (#1149)
* Fix attribute error caused by newest humanize package. (#1156)
* pass sentinel_kwargs to Sentinel() broker (#1208)
* Fixing CORS support (#1200)
* Encode worker and task names in URL (#1204)
* Add compatibility with older humanize versions (#1196)
* Diable API if auth is enabled (#1225)
- Remove patch python-flower-new-humanize.patch:
* Included upstream.
- Add patch remove-mock.patch:
* Remove dependency on mock.
- Remove python-mock from BuildRequires
- Clean up python 2 bcond, it is no longer supported.
-------------------------------------------------------------------
Tue May 17 12:28:23 UTC 2022 - pgajdos@suse.com

View File

@@ -16,25 +16,22 @@
#
%bcond_without python2
Name: python-flower
Version: 1.0.0
Version: 1.1.0
Release: 0
Summary: A web frontend for monitoring and administrating Celery clusters
License: BSD-3-Clause
Group: Development/Languages/Python
URL: https://github.com/mher/flower
Source: https://files.pythonhosted.org/packages/source/f/flower/flower-%{version}.tar.gz
# Tornado 5+ update blocked by salt, so backport the missing piece
Patch0: backport_run_in_executor.patch
# https://github.com/mher/flower/commit/70b1ae40b467a3febab9abef3ef52dea56ca6f12
Patch1: python-flower-new-humanize.patch
# PATCH-FIX-UPSTREAM gh#mher/flower#1228
Patch1: remove-mock.patch
BuildRequires: %{python_module Babel >= 1.0}
BuildRequires: %{python_module celery >= 5.0.0}
BuildRequires: %{python_module certifi}
BuildRequires: %{python_module humanize}
BuildRequires: %{python_module kombu}
BuildRequires: %{python_module mock}
BuildRequires: %{python_module prometheus_client >= 0.8.0}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module pytz}
@@ -52,12 +49,6 @@ Requires: python-tornado >= 5.0.0
Requires(post): update-alternatives
Requires(postun):update-alternatives
BuildArch: noarch
%if %{with python2}
BuildRequires: python-futures
%endif
%ifpython2
Requires: python-futures
%endif
%python_subpackages
%description

124
remove-mock.patch Normal file
View File

@@ -0,0 +1,124 @@
Index: flower-1.1.0/tests/unit/__init__.py
===================================================================
--- flower-1.1.0.orig/tests/unit/__init__.py
+++ flower-1.1.0/tests/unit/__init__.py
@@ -1,3 +1,4 @@
+from unittest import mock
from urllib.parse import urlencode
import tornado.testing
@@ -6,7 +7,6 @@ from tornado.options import options
from tornado.concurrent import Future
import celery
-import mock
from flower.app import Flower
from flower.urls import handlers
Index: flower-1.1.0/tests/unit/api/test_control.py
===================================================================
--- flower-1.1.0.orig/tests/unit/api/test_control.py
+++ flower-1.1.0/tests/unit/api/test_control.py
@@ -1,5 +1,4 @@
-from mock import MagicMock
-import mock
+from unittest.mock import MagicMock, patch
from flower.api.control import ControlHandler
from tests.unit import AsyncHTTPTestCase
@@ -174,7 +173,7 @@ class TaskControlTests(AsyncHTTPTestCase
class ControlAuthTests(WorkerControlTests):
def test_auth(self):
- with mock.patch.object(options.mockable(), 'basic_auth', ['user1:password1']):
+ with patch.object(options.mockable(), 'basic_auth', ['user1:password1']):
app = self._app.capp
app.control.broadcast = MagicMock()
r = self.post('/api/worker/shutdown/test', body={})
Index: flower-1.1.0/tests/unit/api/test_workers.py
===================================================================
--- flower-1.1.0.orig/tests/unit/api/test_workers.py
+++ flower-1.1.0/tests/unit/api/test_workers.py
@@ -1,6 +1,6 @@
import json
-import mock
+from unittest import mock
from flower.api.control import ControlHandler
from flower.inspector import Inspector
Index: flower-1.1.0/tests/unit/test_command.py
===================================================================
--- flower-1.1.0.orig/tests/unit/test_command.py
+++ flower-1.1.0/tests/unit/test_command.py
@@ -5,7 +5,6 @@ import unittest
import subprocess
from unittest.mock import Mock, patch
-import mock
from prometheus_client import Histogram
from flower.command import apply_options, warn_about_celery_args_used_in_flower_command, apply_env_options
@@ -49,7 +48,7 @@ class TestFlowerCommand(AsyncHTTPTestCas
- create flower command
"""
celery_app = self._get_celery_app()
- with mock.patch.object(celery_app, '_autodiscover_tasks') as autodiscover:
+ with patch.object(celery_app, '_autodiscover_tasks') as autodiscover:
celery_app.autodiscover_tasks()
self.get_app(capp=celery_app)
Index: flower-1.1.0/tests/unit/api/test_tasks.py
===================================================================
--- flower-1.1.0.orig/tests/unit/api/test_tasks.py
+++ flower-1.1.0/tests/unit/api/test_tasks.py
@@ -1,4 +1,4 @@
-from mock import Mock, patch
+from unittest.mock import Mock, patch
from datetime import datetime, timedelta
from celery.result import AsyncResult
@@ -16,7 +16,7 @@ from collections import OrderedDict
class ApplyTests(AsyncHTTPTestCase):
def test_apply(self):
- from mock import patch, PropertyMock
+ from unittest.mock import patch, PropertyMock
import json
result = 'result'
Index: flower-1.1.0/tests/unit/utils/test_broker.py
===================================================================
--- flower-1.1.0.orig/tests/unit/utils/test_broker.py
+++ flower-1.1.0/tests/unit/utils/test_broker.py
@@ -1,6 +1,6 @@
import unittest
-from mock import MagicMock
+from unittest.mock import MagicMock
from flower.utils import broker
from flower.utils.broker import RabbitMQ, Redis, RedisBase, RedisSocket, Broker, RedisSentinel
Index: flower-1.1.0/tests/unit/views/test_dashboard.py
===================================================================
--- flower-1.1.0.orig/tests/unit/views/test_dashboard.py
+++ flower-1.1.0/tests/unit/views/test_dashboard.py
@@ -1,17 +1,11 @@
import time
import unittest
-import sys
+from unittest.mock import patch
from tests.unit import AsyncHTTPTestCase
from tests.unit.utils import task_succeeded_events, task_failed_events
from tests.unit.utils import HtmlTableParser
-if sys.version_info >= (2, 7):
- from mock import patch
-else:
- from unittest.mock import patch
-
-
from celery.events import Event
from celery.utils import uuid