Pārlūkot izejas kodu

[tests] Use moar .utils.objects.Bunch

Ask Solem 9 gadi atpakaļ
vecāks
revīzija
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 base as _appbase
 from celery.app import defaults
 from celery.app import defaults
 from celery.exceptions import ImproperlyConfigured
 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.loaders.base import BaseLoader, unconfigured
 from celery.platforms import pyimplementation
 from celery.platforms import pyimplementation
 from celery.utils.serialization import pickle
 from celery.utils.serialization import pickle
@@ -38,6 +38,7 @@ from celery.tests.case import (
 )
 )
 from celery.utils import uuid
 from celery.utils import uuid
 from celery.utils.mail import ErrorMail
 from celery.utils.mail import ErrorMail
+from celery.utils.objects import Bunch
 
 
 THIS_IS_A_KEY = 'this is a value'
 THIS_IS_A_KEY = 'this is a value'
 
 
@@ -58,13 +59,6 @@ class ObjectConfig2(object):
     UNDERSTAND_ME = True
     UNDERSTAND_ME = True
 
 
 
 
-class Object(object):
-
-    def __init__(self, **kwargs):
-        for key, value in items(kwargs):
-            setattr(self, key, value)
-
-
 def _get_test_config():
 def _get_test_config():
     return deepcopy(CELERY_TEST_CONFIG)
     return deepcopy(CELERY_TEST_CONFIG)
 test_config = _get_test_config()
 test_config = _get_test_config()
@@ -647,10 +641,10 @@ class test_App(AppCase):
 
 
         _args = {'foo': 'bar', 'spam': 'baz'}
         _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.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)
         self.assertEqual(self.app.conf.broker_transport_options, _args)
 
 
     def test_Windows_log_color_disabled(self):
     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.five import keys, string_t
 from celery.schedules import schedule
 from celery.schedules import schedule
 from celery.utils import uuid
 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):
 class MockShelve(dict):
@@ -353,8 +351,9 @@ def create_persistent_scheduler(shelv=None):
 
 
     class MockPersistentScheduler(beat.PersistentScheduler):
     class MockPersistentScheduler(beat.PersistentScheduler):
         sh = shelv
         sh = shelv
-        persistence = Object()
-        persistence.open = lambda *a, **kw: shelv
+        persistence = Bunch(
+            open=lambda *a, **kw: shelv,
+        )
         tick_raises_exit = False
         tick_raises_exit = False
         shutdown_service = None
         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 import states
 from celery.exceptions import ImproperlyConfigured
 from celery.exceptions import ImproperlyConfigured
+from celery.utils.objects import Bunch
 from celery.tests.case import (
 from celery.tests.case import (
     AppCase, Mock, mock_module, depends_on_current_app
     AppCase, Mock, mock_module, depends_on_current_app
 )
 )
@@ -12,10 +13,6 @@ from celery.tests.case import (
 CASSANDRA_MODULES = ['cassandra', 'cassandra.auth', 'cassandra.cluster']
 CASSANDRA_MODULES = ['cassandra', 'cassandra.auth', 'cassandra.cluster']
 
 
 
 
-class Object(object):
-    pass
-
-
 class test_CassandraBackend(AppCase):
 class test_CassandraBackend(AppCase):
 
 
     def setup(self):
     def setup(self):
@@ -42,8 +39,9 @@ class test_CassandraBackend(AppCase):
             from celery.backends import cassandra as mod
             from celery.backends import cassandra as mod
             mod.cassandra = Mock()
             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_read_consistency = 'LOCAL_FOO'
             self.app.conf.cassandra_write_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,
     Extensions,
     HelpFormatter,
     HelpFormatter,
 )
 )
+from celery.utils.objects import Bunch
+
 from celery.tests.case import (
 from celery.tests.case import (
     AppCase, Mock, depends_on_current_app, override_stdouts, patch,
     AppCase, Mock, depends_on_current_app, override_stdouts, patch,
 )
 )
 
 
 
 
-class Object(object):
-    pass
-
-
 class MyApp(object):
 class MyApp(object):
     user_options = {'preload': None}
     user_options = {'preload': None}
 
 
@@ -27,9 +25,7 @@ class MockCommand(Command):
     mock_args = ('arg1', 'arg2', 'arg3')
     mock_args = ('arg1', 'arg2', 'arg3')
 
 
     def parse_options(self, prog_name, arguments, command=None):
     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
         return options, self.mock_args
 
 
     def run(self, *args, **kwargs):
     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.app.defaults import DEFAULTS
 from celery.datastructures import AttributeDict
 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.functional import noop
+from celery.utils.objects import Bunch
+
 from celery.tests.case import AppCase, Mock, SkipTest, patch, restore_logging
 from celery.tests.case import AppCase, Mock, SkipTest, patch, restore_logging
+
 try:
 try:
     from celery.concurrency import prefork as mp
     from celery.concurrency import prefork as mp
     from celery.concurrency import asynpool
     from celery.concurrency import asynpool
@@ -38,12 +41,6 @@ except ImportError:
     asynpool = None  # noqa
     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):
 class MockResult(object):
 
 
     def __init__(self, value, pid):
     def __init__(self, value, pid):
@@ -132,7 +129,7 @@ class MockPool(object):
         self.maintain_pool = Mock()
         self.maintain_pool = Mock()
         self._state = mp.RUN
         self._state = mp.RUN
         self._processes = kwargs.get('processes')
         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)]
                       for i in range(self._processes)]
         self._current_proc = cycle(range(self._processes))
         self._current_proc = cycle(range(self._processes))
 
 
@@ -405,7 +402,7 @@ class test_TaskPool(PoolCase):
 
 
     def test_info(self):
     def test_info(self):
         pool = TaskPool(10)
         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):
         class _Pool(object):
             _pool = procs
             _pool = procs

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

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

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

@@ -17,18 +17,15 @@ from celery.datastructures import (
     DependencyGraph,
     DependencyGraph,
 )
 )
 from celery.five import items
 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):
 class test_DictAttribute(Case):
 
 
     def test_get_set_keys_values_items(self):
     def test_get_set_keys_values_items(self):
-        x = DictAttribute(Object())
+        x = DictAttribute(Bunch())
         x['foo'] = 'The quick brown fox'
         x['foo'] = 'The quick brown fox'
         self.assertEqual(x['foo'], 'The quick brown fox')
         self.assertEqual(x['foo'], 'The quick brown fox')
         self.assertEqual(x['foo'], x.obj.foo)
         self.assertEqual(x['foo'], x.obj.foo)
@@ -46,21 +43,20 @@ class test_DictAttribute(Case):
         self.assertIn('The quick yellow fox', list(x.values()))
         self.assertIn('The quick yellow fox', list(x.values()))
 
 
     def test_setdefault(self):
     def test_setdefault(self):
-        x = DictAttribute(Object())
+        x = DictAttribute(Bunch())
         x.setdefault('foo', 'NEW')
         x.setdefault('foo', 'NEW')
         self.assertEqual(x['foo'], 'NEW')
         self.assertEqual(x['foo'], 'NEW')
         x.setdefault('foo', 'XYZ')
         x.setdefault('foo', 'XYZ')
         self.assertEqual(x['foo'], 'NEW')
         self.assertEqual(x['foo'], 'NEW')
 
 
     def test_contains(self):
     def test_contains(self):
-        x = DictAttribute(Object())
+        x = DictAttribute(Bunch())
         x['foo'] = 1
         x['foo'] = 1
         self.assertIn('foo', x)
         self.assertIn('foo', x)
         self.assertNotIn('bar', x)
         self.assertNotIn('bar', x)
 
 
     def test_items(self):
     def test_items(self):
-        obj = Object()
-        obj.attr1 = 1
+        obj = Bunch(attr1=1)
         x = DictAttribute(obj)
         x = DictAttribute(obj)
         x['attr2'] = 2
         x['attr2'] = 2
         self.assertEqual(x['attr1'], 1)
         self.assertEqual(x['attr1'], 1)
@@ -123,8 +119,7 @@ class test_ConfigurationView(Case):
         self.assertEqual(self.view.foo, 10)
         self.assertEqual(self.view.foo, 10)
 
 
     def test_add_defaults_object(self):
     def test_add_defaults_object(self):
-        defaults = Object()
-        defaults.foo = 10
+        defaults = Bunch(foo=10)
         self.view.add_defaults(defaults)
         self.view.add_defaults(defaults)
         self.assertEqual(self.view.foo, 10)
         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 state
 from celery.worker import autoscale
 from celery.worker import autoscale
 from celery.tests.case import AppCase, Mock, patch, sleepdeprived
 from celery.tests.case import AppCase, Mock, patch, sleepdeprived
-
-
-class Object(object):
-    pass
+from celery.utils.objects import Bunch
 
 
 
 
 class MockPool(BasePool):
 class MockPool(BasePool):
@@ -19,8 +16,7 @@ class MockPool(BasePool):
 
 
     def __init__(self, *args, **kwargs):
     def __init__(self, *args, **kwargs):
         super(MockPool, self).__init__(*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):
     def grow(self, n=1):
         self._pool._processes += n
         self._pool._processes += n