Parcourir la source

[tests] Use moar .utils.objects.Bunch

Ask Solem il y a 9 ans
Parent
commit
1497a54871

+ 4 - 10
celery/tests/app/test_app.py

@@ -16,7 +16,7 @@ from celery import _state
 from celery.app import base as _appbase
 from celery.app import defaults
 from celery.exceptions import ImproperlyConfigured
-from celery.five import items, keys
+from celery.five import keys
 from celery.loaders.base import BaseLoader, unconfigured
 from celery.platforms import pyimplementation
 from celery.utils.serialization import pickle
@@ -38,6 +38,7 @@ from celery.tests.case import (
 )
 from celery.utils import uuid
 from celery.utils.mail import ErrorMail
+from celery.utils.objects import Bunch
 
 THIS_IS_A_KEY = 'this is a value'
 
@@ -58,13 +59,6 @@ class ObjectConfig2(object):
     UNDERSTAND_ME = True
 
 
-class Object(object):
-
-    def __init__(self, **kwargs):
-        for key, value in items(kwargs):
-            setattr(self, key, value)
-
-
 def _get_test_config():
     return deepcopy(CELERY_TEST_CONFIG)
 test_config = _get_test_config()
@@ -647,10 +641,10 @@ class test_App(AppCase):
 
         _args = {'foo': 'bar', 'spam': 'baz'}
 
-        self.app.config_from_object(Object())
+        self.app.config_from_object(Bunch())
         self.assertEqual(self.app.conf.broker_transport_options, {})
 
-        self.app.config_from_object(Object(broker_transport_options=_args))
+        self.app.config_from_object(Bunch(broker_transport_options=_args))
         self.assertEqual(self.app.conf.broker_transport_options, _args)
 
     def test_Windows_log_color_disabled(self):

+ 5 - 6
celery/tests/app/test_beat.py

@@ -9,11 +9,9 @@ from celery import beat
 from celery.five import keys, string_t
 from celery.schedules import schedule
 from celery.utils import uuid
-from celery.tests.case import AppCase, Mock, SkipTest, call, patch
-
+from celery.utils.objects import Bunch
 
-class Object(object):
-    pass
+from celery.tests.case import AppCase, Mock, SkipTest, call, patch
 
 
 class MockShelve(dict):
@@ -353,8 +351,9 @@ def create_persistent_scheduler(shelv=None):
 
     class MockPersistentScheduler(beat.PersistentScheduler):
         sh = shelv
-        persistence = Object()
-        persistence.open = lambda *a, **kw: shelv
+        persistence = Bunch(
+            open=lambda *a, **kw: shelv,
+        )
         tick_raises_exit = False
         shutdown_service = None
 

+ 4 - 6
celery/tests/backends/test_cassandra.py

@@ -5,6 +5,7 @@ from datetime import datetime
 
 from celery import states
 from celery.exceptions import ImproperlyConfigured
+from celery.utils.objects import Bunch
 from celery.tests.case import (
     AppCase, Mock, mock_module, depends_on_current_app
 )
@@ -12,10 +13,6 @@ from celery.tests.case import (
 CASSANDRA_MODULES = ['cassandra', 'cassandra.auth', 'cassandra.cluster']
 
 
-class Object(object):
-    pass
-
-
 class test_CassandraBackend(AppCase):
 
     def setup(self):
@@ -42,8 +39,9 @@ class test_CassandraBackend(AppCase):
             from celery.backends import cassandra as mod
             mod.cassandra = Mock()
 
-            cons = mod.cassandra.ConsistencyLevel = Object()
-            cons.LOCAL_QUORUM = 'foo'
+            cons = mod.cassandra.ConsistencyLevel = Bunch(
+                LOCAL_QUORUM='foo',
+            )
 
             self.app.conf.cassandra_read_consistency = 'LOCAL_FOO'
             self.app.conf.cassandra_write_consistency = 'LOCAL_FOO'

+ 3 - 7
celery/tests/bin/test_base.py

@@ -8,15 +8,13 @@ from celery.bin.base import (
     Extensions,
     HelpFormatter,
 )
+from celery.utils.objects import Bunch
+
 from celery.tests.case import (
     AppCase, Mock, depends_on_current_app, override_stdouts, patch,
 )
 
 
-class Object(object):
-    pass
-
-
 class MyApp(object):
     user_options = {'preload': None}
 
@@ -27,9 +25,7 @@ class MockCommand(Command):
     mock_args = ('arg1', 'arg2', 'arg3')
 
     def parse_options(self, prog_name, arguments, command=None):
-        options = Object()
-        options.foo = 'bar'
-        options.prog_name = prog_name
+        options = Bunch(foo='bar', prog_name=prog_name)
         return options, self.mock_args
 
     def run(self, *args, **kwargs):

+ 6 - 9
celery/tests/concurrency/test_prefork.py

@@ -9,9 +9,12 @@ from itertools import cycle
 
 from celery.app.defaults import DEFAULTS
 from celery.datastructures import AttributeDict
-from celery.five import items, range
+from celery.five import range
 from celery.utils.functional import noop
+from celery.utils.objects import Bunch
+
 from celery.tests.case import AppCase, Mock, SkipTest, patch, restore_logging
+
 try:
     from celery.concurrency import prefork as mp
     from celery.concurrency import asynpool
@@ -38,12 +41,6 @@ except ImportError:
     asynpool = None  # noqa
 
 
-class Object(object):   # for writeable attributes.
-
-    def __init__(self, **kwargs):
-        [setattr(self, k, v) for k, v in items(kwargs)]
-
-
 class MockResult(object):
 
     def __init__(self, value, pid):
@@ -132,7 +129,7 @@ class MockPool(object):
         self.maintain_pool = Mock()
         self._state = mp.RUN
         self._processes = kwargs.get('processes')
-        self._pool = [Object(pid=i, inqW_fd=1, outqR_fd=2)
+        self._pool = [Bunch(pid=i, inqW_fd=1, outqR_fd=2)
                       for i in range(self._processes)]
         self._current_proc = cycle(range(self._processes))
 
@@ -405,7 +402,7 @@ class test_TaskPool(PoolCase):
 
     def test_info(self):
         pool = TaskPool(10)
-        procs = [Object(pid=i) for i in range(pool.limit)]
+        procs = [Bunch(pid=i) for i in range(pool.limit)]
 
         class _Pool(object):
             _pool = procs

+ 2 - 4
celery/tests/fixups/test_django.py

@@ -10,6 +10,7 @@ from celery.fixups.django import (
     DjangoFixup,
     DjangoWorkerFixup,
 )
+from celery.utils.objects import Bunch
 
 from celery.tests.case import (
     AppCase, Mock, patch, patch_modules, mask_modules,
@@ -275,10 +276,7 @@ class test_DjangoWorkerFixup(FixupCase):
             with self.assertRaises(KeyError):
                 f._close_database()
 
-            class Object(object):
-                pass
-            o = Object()
-            o.close_connection = Mock()
+            o = Bunch(close_connection=Mock())
             f._db = o
             f._close_database()
             o.close_connection.assert_called_with()

+ 7 - 12
celery/tests/utils/test_datastructures.py

@@ -17,18 +17,15 @@ from celery.datastructures import (
     DependencyGraph,
 )
 from celery.five import items
+from celery.utils.objects import Bunch
 
-from celery.tests.case import Case, Mock, WhateverIO, SkipTest, patch
-
-
-class Object(object):
-    pass
+from celery.tests.case import Case, Mock, WhateverIO, SkipTest
 
 
 class test_DictAttribute(Case):
 
     def test_get_set_keys_values_items(self):
-        x = DictAttribute(Object())
+        x = DictAttribute(Bunch())
         x['foo'] = 'The quick brown fox'
         self.assertEqual(x['foo'], 'The quick brown fox')
         self.assertEqual(x['foo'], x.obj.foo)
@@ -46,21 +43,20 @@ class test_DictAttribute(Case):
         self.assertIn('The quick yellow fox', list(x.values()))
 
     def test_setdefault(self):
-        x = DictAttribute(Object())
+        x = DictAttribute(Bunch())
         x.setdefault('foo', 'NEW')
         self.assertEqual(x['foo'], 'NEW')
         x.setdefault('foo', 'XYZ')
         self.assertEqual(x['foo'], 'NEW')
 
     def test_contains(self):
-        x = DictAttribute(Object())
+        x = DictAttribute(Bunch())
         x['foo'] = 1
         self.assertIn('foo', x)
         self.assertNotIn('bar', x)
 
     def test_items(self):
-        obj = Object()
-        obj.attr1 = 1
+        obj = Bunch(attr1=1)
         x = DictAttribute(obj)
         x['attr2'] = 2
         self.assertEqual(x['attr1'], 1)
@@ -123,8 +119,7 @@ class test_ConfigurationView(Case):
         self.assertEqual(self.view.foo, 10)
 
     def test_add_defaults_object(self):
-        defaults = Object()
-        defaults.foo = 10
+        defaults = Bunch(foo=10)
         self.view.add_defaults(defaults)
         self.assertEqual(self.view.foo, 10)
 

+ 2 - 6
celery/tests/worker/test_autoscale.py

@@ -7,10 +7,7 @@ from celery.five import monotonic
 from celery.worker import state
 from celery.worker import autoscale
 from celery.tests.case import AppCase, Mock, patch, sleepdeprived
-
-
-class Object(object):
-    pass
+from celery.utils.objects import Bunch
 
 
 class MockPool(BasePool):
@@ -19,8 +16,7 @@ class MockPool(BasePool):
 
     def __init__(self, *args, **kwargs):
         super(MockPool, self).__init__(*args, **kwargs)
-        self._pool = Object()
-        self._pool._processes = self.limit
+        self._pool = Bunch(_processes=self.limit)
 
     def grow(self, n=1):
         self._pool._processes += n