Browse Source

Use unicode_literals in all modules (with upgrading flakeplus to use 2.7 target)

Ask Solem 10 năm trước cách đây
mục cha
commit
016629f75e
100 tập tin đã thay đổi với 141 bổ sung169 xóa
  1. 6 5
      Makefile
  2. 1 1
      celery/app/annotations.py
  3. 3 3
      celery/app/base.py
  4. 1 1
      celery/app/builtins.py
  5. 1 1
      celery/app/control.py
  6. 1 1
      celery/app/defaults.py
  7. 1 1
      celery/app/log.py
  8. 1 1
      celery/app/registry.py
  9. 1 1
      celery/app/routes.py
  10. 1 1
      celery/app/task.py
  11. 1 1
      celery/app/trace.py
  12. 1 1
      celery/app/utils.py
  13. 1 1
      celery/backends/__init__.py
  14. 1 1
      celery/backends/amqp.py
  15. 1 1
      celery/backends/base.py
  16. 1 1
      celery/backends/cache.py
  17. 1 1
      celery/backends/cassandra.py
  18. 1 1
      celery/backends/couchbase.py
  19. 1 1
      celery/backends/couchdb.py
  20. 2 1
      celery/backends/database/__init__.py
  21. 1 1
      celery/backends/database/models.py
  22. 1 1
      celery/backends/database/session.py
  23. 1 1
      celery/backends/filesystem.py
  24. 1 1
      celery/backends/mongodb.py
  25. 1 1
      celery/backends/redis.py
  26. 1 1
      celery/backends/riak.py
  27. 1 1
      celery/backends/rpc.py
  28. 1 1
      celery/beat.py
  29. 1 1
      celery/bin/__init__.py
  30. 1 1
      celery/bin/beat.py
  31. 1 1
      celery/bin/celeryd_detach.py
  32. 1 1
      celery/concurrency/__init__.py
  33. 1 1
      celery/concurrency/asynpool.py
  34. 1 1
      celery/concurrency/base.py
  35. 1 1
      celery/concurrency/eventlet.py
  36. 1 1
      celery/concurrency/gevent.py
  37. 1 1
      celery/concurrency/prefork.py
  38. 1 1
      celery/concurrency/solo.py
  39. 1 1
      celery/concurrency/threads.py
  40. 1 1
      celery/contrib/abortable.py
  41. 1 1
      celery/contrib/batches.py
  42. 1 1
      celery/contrib/sphinx.py
  43. 1 1
      celery/events/__init__.py
  44. 1 1
      celery/events/cursesmon.py
  45. 1 1
      celery/events/snapshot.py
  46. 1 1
      celery/events/state.py
  47. 1 1
      celery/exceptions.py
  48. 3 2
      celery/five.py
  49. 1 1
      celery/fixups/django.py
  50. 1 1
      celery/loaders/__init__.py
  51. 1 1
      celery/loaders/app.py
  52. 1 1
      celery/loaders/base.py
  53. 1 1
      celery/loaders/default.py
  54. 3 3
      celery/local.py
  55. 1 1
      celery/security/__init__.py
  56. 1 1
      celery/security/certificate.py
  57. 1 1
      celery/security/key.py
  58. 8 3
      celery/security/serialization.py
  59. 1 1
      celery/security/utils.py
  60. 1 1
      celery/task/__init__.py
  61. 1 1
      celery/task/base.py
  62. 1 1
      celery/task/http.py
  63. 1 1
      celery/tests/__init__.py
  64. 1 1
      celery/tests/app/test_amqp.py
  65. 1 1
      celery/tests/app/test_annotations.py
  66. 1 1
      celery/tests/app/test_app.py
  67. 1 1
      celery/tests/app/test_beat.py
  68. 1 1
      celery/tests/app/test_builtins.py
  69. 2 1
      celery/tests/app/test_celery.py
  70. 1 1
      celery/tests/app/test_control.py
  71. 1 1
      celery/tests/app/test_defaults.py
  72. 1 1
      celery/tests/app/test_exceptions.py
  73. 3 2
      celery/tests/app/test_loaders.py
  74. 3 3
      celery/tests/app/test_log.py
  75. 1 1
      celery/tests/app/test_registry.py
  76. 1 1
      celery/tests/app/test_routes.py
  77. 1 1
      celery/tests/app/test_schedules.py
  78. 1 1
      celery/tests/app/test_utils.py
  79. 1 1
      celery/tests/backends/test_amqp.py
  80. 1 1
      celery/tests/backends/test_backends.py
  81. 13 7
      celery/tests/backends/test_base.py
  82. 4 4
      celery/tests/backends/test_cache.py
  83. 1 1
      celery/tests/backends/test_cassandra.py
  84. 1 1
      celery/tests/backends/test_couchbase.py
  85. 1 1
      celery/tests/backends/test_couchdb.py
  86. 1 1
      celery/tests/backends/test_filesystem.py
  87. 1 1
      celery/tests/backends/test_mongodb.py
  88. 1 1
      celery/tests/backends/test_redis.py
  89. 1 46
      celery/tests/backends/test_riak.py
  90. 1 1
      celery/tests/backends/test_rpc.py
  91. 1 1
      celery/tests/bin/proj/__init__.py
  92. 1 1
      celery/tests/bin/proj/app.py
  93. 1 1
      celery/tests/bin/test_amqp.py
  94. 3 2
      celery/tests/bin/test_base.py
  95. 1 1
      celery/tests/bin/test_beat.py
  96. 1 1
      celery/tests/bin/test_celery.py
  97. 1 1
      celery/tests/bin/test_celeryd_detach.py
  98. 1 1
      celery/tests/bin/test_celeryevdump.py
  99. 1 1
      celery/tests/bin/test_events.py
  100. 1 1
      celery/tests/bin/test_multi.py

+ 6 - 5
Makefile

@@ -1,3 +1,4 @@
+PROJ=celery
 PYTHON=python
 SPHINX_DIR="docs/"
 SPHINX_BUILDDIR="${SPHINX_DIR}/.build"
@@ -22,7 +23,7 @@ htmlclean:
 	-rm -rf "$(SPHINX)"
 
 apicheck:
-	extra/release/doc4allmods celery
+	extra/release/doc4allmods "$(PROJ)"
 
 indexcheck:
 	extra/release/verify-reference-index.sh
@@ -31,13 +32,13 @@ configcheck:
 	PYTHONPATH=. $(PYTHON) extra/release/verify_config_reference.py $(CONFIGREF_SRC)
 
 flakecheck:
-	flake8 celery
+	flake8 "$(PROJ)"
 
 flakediag:
 	-$(MAKE) flakecheck
 
 flakepluscheck:
-	flakeplus celery --2.6
+	flakeplus --2.7 "$(PROJ)"
 
 flakeplusdiag:
 	-$(MAKE) flakepluscheck
@@ -64,10 +65,10 @@ $(CONTRIBUTING):
 contributing: contributingclean $(CONTRIBUTING)
 
 test:
-	nosetests -xv celery.tests
+	nosetests -xv "$(PROJ).tests"
 
 cov:
-	nosetests -xv celery.tests --with-coverage --cover-html --cover-branch
+	nosetests -xv "$(PROJ)" --with-coverage --cover-html --cover-branch
 
 removepyc:
 	-find . -type f -a \( -name "*.pyc" -o -name "*$$py.class" \) | xargs rm

+ 1 - 1
celery/app/annotations.py

@@ -10,7 +10,7 @@
     :setting:`task_annotations` setting.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 from celery.five import string_t
 from celery.utils.functional import firstmethod, mlazy

+ 3 - 3
celery/app/base.py

@@ -6,7 +6,7 @@
     Actual App instance implementation.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import os
 import threading
@@ -32,7 +32,7 @@ from celery._state import (
 )
 from celery.datastructures import AttributeDictMixin
 from celery.exceptions import AlwaysEagerIgnored, ImproperlyConfigured
-from celery.five import UserDict, values
+from celery.five import UserDict, module_name_t, values
 from celery.loaders import get_loader_cls
 from celery.local import PromiseProxy, maybe_evaluate
 from celery.utils import abstract
@@ -944,7 +944,7 @@ class Celery(object):
         if not keep_reduce:
             attrs['__reduce__'] = __reduce__
 
-        return type(name or Class.__name__, (Class,), attrs)
+        return type(module_name_t(name or Class.__name__), (Class,), attrs)
 
     def _rgetattr(self, path):
         return attrgetter(path)(self)

+ 1 - 1
celery/app/builtins.py

@@ -7,7 +7,7 @@
     app instances. E.g. chord, group and xmap.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 from celery._state import connect_on_app_finalize
 from celery.utils.log import get_logger

+ 1 - 1
celery/app/control.py

@@ -7,7 +7,7 @@
     Server implementation is in :mod:`celery.worker.control`.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import warnings
 

+ 1 - 1
celery/app/defaults.py

@@ -6,7 +6,7 @@
     Configuration introspection and defaults.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import sys
 

+ 1 - 1
celery/app/log.py

@@ -10,7 +10,7 @@
     related compatibility fixes, and so on.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import logging
 import os

+ 1 - 1
celery/app/registry.py

@@ -6,7 +6,7 @@
     Registry of available tasks.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import inspect
 

+ 1 - 1
celery/app/routes.py

@@ -7,7 +7,7 @@
     (:setting:`task_routes`).
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import re
 import string

+ 1 - 1
celery/app/task.py

@@ -6,7 +6,7 @@
     Task Implementation: Task request context, and the base task class.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import sys
 

+ 1 - 1
celery/app/trace.py

@@ -7,7 +7,7 @@
     errors are recorded, handlers are applied and so on.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 # ## ---
 # This is the heart of the worker, the inner loop so to speak.

+ 1 - 1
celery/app/utils.py

@@ -6,7 +6,7 @@
     App utilities: Compat settings, bugreport tool, pickling apps.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import os
 import platform as _platform

+ 1 - 1
celery/backends/__init__.py

@@ -6,7 +6,7 @@
     Backend abstract factory (...did I just say that?) and alias definitions.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import sys
 import types

+ 1 - 1
celery/backends/amqp.py

@@ -8,7 +8,7 @@
     This backend publishes results as messages.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 from kombu import Exchange, Queue, Producer, Consumer
 from kombu.utils import register_after_fork

+ 1 - 1
celery/backends/base.py

@@ -11,7 +11,7 @@
       using K/V semantics like _get and _put.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import sys
 import time

+ 1 - 1
celery/backends/cache.py

@@ -6,7 +6,7 @@
     Memcache and in-memory cache result backend.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import sys
 

+ 1 - 1
celery/backends/cassandra.py

@@ -6,7 +6,7 @@
     Apache Cassandra result store backend using DataStax driver
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import sys
 try:  # pragma: no cover

+ 1 - 1
celery/backends/couchbase.py

@@ -6,7 +6,7 @@
     CouchBase result store backend.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import logging
 

+ 1 - 1
celery/backends/couchdb.py

@@ -6,7 +6,7 @@
     CouchDB result store backend.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 try:
     import pycouchdb

+ 2 - 1
celery/backends/database/__init__.py

@@ -6,9 +6,10 @@
     SQLAlchemy result store backend.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import logging
+
 from contextlib import contextmanager
 from functools import wraps
 

+ 1 - 1
celery/backends/database/models.py

@@ -6,7 +6,7 @@
     Database tables for the SQLAlchemy result store backend.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 from datetime import datetime
 

+ 1 - 1
celery/backends/database/session.py

@@ -6,7 +6,7 @@
     SQLAlchemy sessions.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 from sqlalchemy import create_engine
 from sqlalchemy.ext.declarative import declarative_base

+ 1 - 1
celery/backends/filesystem.py

@@ -5,7 +5,7 @@
 
     Filesystem result store backend.
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 from kombu.utils.encoding import ensure_bytes
 

+ 1 - 1
celery/backends/mongodb.py

@@ -6,7 +6,7 @@
     MongoDB result store backend.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 from datetime import datetime, timedelta
 

+ 1 - 1
celery/backends/redis.py

@@ -6,7 +6,7 @@
     Redis result store backend.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 from functools import partial
 

+ 1 - 1
celery/backends/riak.py

@@ -6,7 +6,7 @@
     Riak result store backend.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import sys
 

+ 1 - 1
celery/backends/rpc.py

@@ -6,7 +6,7 @@
     RPC-style result backend, using reply-to and one queue per client.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 from kombu import Consumer, Exchange
 from kombu.common import maybe_declare

+ 1 - 1
celery/beat.py

@@ -6,7 +6,7 @@
     The periodic task scheduler.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import errno
 import heapq

+ 1 - 1
celery/bin/__init__.py

@@ -1,4 +1,4 @@
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 from .base import Option
 

+ 1 - 1
celery/bin/beat.py

@@ -38,7 +38,7 @@ The :program:`celery beat` command.
     `ERROR`, `CRITICAL`, or `FATAL`.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 from functools import partial
 

+ 1 - 1
celery/bin/celeryd_detach.py

@@ -10,7 +10,7 @@
     could have something to do with the threading mutex bug)
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import celery
 import os

+ 1 - 1
celery/concurrency/__init__.py

@@ -6,7 +6,7 @@
     Pool implementation abstract factory, and alias definitions.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 # Import from kombu directly as it's used
 # early in the import stage, where celery.utils loads

+ 1 - 1
celery/concurrency/asynpool.py

@@ -16,7 +16,7 @@
         3) Safely shutting down this system.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import errno
 import gc

+ 1 - 1
celery/concurrency/base.py

@@ -6,7 +6,7 @@
     TaskPool interface.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import logging
 import os

+ 1 - 1
celery/concurrency/eventlet.py

@@ -6,7 +6,7 @@
     Eventlet pool implementation.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import sys
 

+ 1 - 1
celery/concurrency/gevent.py

@@ -6,7 +6,7 @@
     gevent pool implementation.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 from time import time
 

+ 1 - 1
celery/concurrency/prefork.py

@@ -6,7 +6,7 @@
     Pool implementation using :mod:`multiprocessing`.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import os
 

+ 1 - 1
celery/concurrency/solo.py

@@ -6,7 +6,7 @@
     Single-threaded pool implementation.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import os
 

+ 1 - 1
celery/concurrency/threads.py

@@ -6,7 +6,7 @@
     Pool implementation using threads.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 from celery.five import UserDict
 

+ 1 - 1
celery/contrib/abortable.py

@@ -84,7 +84,7 @@ have it block until the task is finished.
    database backends.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 from celery import Task
 from celery.result import AsyncResult

+ 1 - 1
celery/contrib/batches.py

@@ -81,7 +81,7 @@ Using the API is done as follows::
         app.backend.mark_as_done(request.id, response)
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 from itertools import count
 

+ 1 - 1
celery/contrib/sphinx.py

@@ -30,7 +30,7 @@ using `:task:proj.tasks.add` syntax.
 Use ``.. autotask::`` to manually document a task.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 from sphinx.domains.python import PyModulelevel
 from sphinx.ext.autodoc import FunctionDocumenter

+ 1 - 1
celery/events/__init__.py

@@ -8,7 +8,7 @@
     is enabled), used for monitoring purposes.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import os
 import time

+ 1 - 1
celery/events/cursesmon.py

@@ -6,7 +6,7 @@
     Graphical monitor of Celery events using curses.
 
 """
-from __future__ import absolute_import, print_function
+from __future__ import absolute_import, print_function, unicode_literals
 
 import curses
 import sys

+ 1 - 1
celery/events/snapshot.py

@@ -10,7 +10,7 @@
     in :mod:`djcelery.snapshots` in the `django-celery` distribution.
 
 """
-from __future__ import absolute_import, print_function
+from __future__ import absolute_import, print_function, unicode_literals
 
 from kombu.utils.limits import TokenBucket
 

+ 1 - 1
celery/events/state.py

@@ -16,7 +16,7 @@
     to e.g. store that in a database.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import bisect
 import sys

+ 1 - 1
celery/exceptions.py

@@ -6,7 +6,7 @@
     This module contains all exceptions used by the Celery API.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import numbers
 

+ 3 - 2
celery/five.py

@@ -8,7 +8,7 @@
 
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import operator
 import sys
@@ -190,7 +190,8 @@ def create_module(name, attrs, cls_attrs=None, pkg=None,
         attr_name: (prepare_attr(attr) if prepare_attr else attr)
         for attr_name, attr in items(attrs)
     }
-    module = sys.modules[fqdn] = type(modname, (base,), cls_attrs)(name)
+    module = sys.modules[fqdn] = type(
+        module_name_t(modname), (base,), cls_attrs)(module_name_t(name))
     module.__dict__.update(attrs)
     return module
 

+ 1 - 1
celery/fixups/django.py

@@ -1,4 +1,4 @@
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import os
 import sys

+ 1 - 1
celery/loaders/__init__.py

@@ -7,7 +7,7 @@
     when workers start, when tasks are executed and so on.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 from celery.utils.imports import symbol_by_name, import_from_cwd
 

+ 1 - 1
celery/loaders/app.py

@@ -6,7 +6,7 @@
     The default loader used with custom app instances.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 from .base import BaseLoader
 

+ 1 - 1
celery/loaders/base.py

@@ -6,7 +6,7 @@
     Loader base class.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import imp as _imp
 import importlib

+ 1 - 1
celery/loaders/default.py

@@ -6,7 +6,7 @@
     The default loader used when no custom app has been initialized.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import os
 import warnings

+ 3 - 3
celery/local.py

@@ -10,12 +10,12 @@
     Parts of this module is Copyright by Werkzeug Team.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import importlib
 import sys
 
-from .five import string
+from .five import module_name_t, string
 
 __all__ = ['Proxy', 'PromiseProxy', 'try_import', 'maybe_evaluate']
 
@@ -39,7 +39,7 @@ def _default_cls_attr(name, type_, cls_value):
     def __get__(self, obj, cls=None):
         return self.__getter(obj) if obj is not None else self
 
-    return type(name, (type_,), {
+    return type(module_name_t(name), (type_,), {
         '__new__': __new__, '__get__': __get__,
     })
 

+ 1 - 1
celery/security/__init__.py

@@ -6,7 +6,7 @@
     Module implementing the signing message serializer.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 from kombu.serialization import (
     registry, disable_insecure_serializers as _disable_insecure_serializers,

+ 1 - 1
celery/security/certificate.py

@@ -6,7 +6,7 @@
     X.509 certificates.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import glob
 import os

+ 1 - 1
celery/security/key.py

@@ -6,7 +6,7 @@
     Private key for the security serializer.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 from kombu.utils.encoding import ensure_bytes
 

+ 8 - 3
celery/security/serialization.py

@@ -6,18 +6,23 @@
     Secure serializer.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
+
+import sys
 
 from kombu.serialization import registry, dumps, loads
 from kombu.utils.encoding import bytes_to_str, str_to_bytes, ensure_bytes
 
+from celery.utils.serialization import b64encode, b64decode
+
 from .certificate import Certificate, FSCertStore
 from .key import PrivateKey
 from .utils import reraise_errors
-from celery.utils.serialization import b64encode, b64decode
 
 __all__ = ['SecureSerializer', 'register_auth']
 
+PY3 = sys.version_info[0] == 3
+
 
 class SecureSerializer(object):
 
@@ -26,7 +31,7 @@ class SecureSerializer(object):
         self._key = key
         self._cert = cert
         self._cert_store = cert_store
-        self._digest = digest
+        self._digest = str_to_bytes(digest) if not PY3 else digest
         self._serializer = serializer
 
     def serialize(self, data):

+ 1 - 1
celery/security/utils.py

@@ -6,7 +6,7 @@
     Utilities used by the message signing serializer.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import sys
 

+ 1 - 1
celery/task/__init__.py

@@ -9,7 +9,7 @@
     ``celery.app.base.Celery.task``.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 from celery._state import current_app, current_task as current
 from celery.five import LazyModule, recreate_module

+ 1 - 1
celery/task/base.py

@@ -9,7 +9,7 @@
     and shouldn't be used in new applications.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 from kombu import Exchange
 

+ 1 - 1
celery/task/http.py

@@ -6,7 +6,7 @@
     Webhook task implementation.
 
 """
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import sys
 

+ 1 - 1
celery/tests/__init__.py

@@ -1,4 +1,4 @@
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import logging
 import os

+ 1 - 1
celery/tests/app/test_amqp.py

@@ -1,4 +1,4 @@
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 from datetime import datetime, timedelta
 

+ 1 - 1
celery/tests/app/test_annotations.py

@@ -1,4 +1,4 @@
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 from celery.app.annotations import MapAnnotation, prepare
 from celery.utils.imports import qualname

+ 1 - 1
celery/tests/app/test_app.py

@@ -1,4 +1,4 @@
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import gc
 import os

+ 1 - 1
celery/tests/app/test_beat.py

@@ -1,4 +1,4 @@
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import errno
 

+ 1 - 1
celery/tests/app/test_builtins.py

@@ -1,4 +1,4 @@
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 from celery import group, chord
 from celery.app import builtins

+ 2 - 1
celery/tests/app/test_celery.py

@@ -1,4 +1,5 @@
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
+
 from celery.tests.case import AppCase
 
 import celery

+ 1 - 1
celery/tests/app/test_control.py

@@ -1,4 +1,4 @@
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 from functools import wraps
 

+ 1 - 1
celery/tests/app/test_defaults.py

@@ -1,4 +1,4 @@
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import sys
 

+ 1 - 1
celery/tests/app/test_exceptions.py

@@ -1,4 +1,4 @@
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import pickle
 

+ 3 - 2
celery/tests/app/test_loaders.py

@@ -1,4 +1,4 @@
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import os
 import sys
@@ -6,6 +6,7 @@ import warnings
 
 from celery import loaders
 from celery.exceptions import NotConfigured
+from celery.five import module_name_t
 from celery.loaders import base
 from celery.loaders import default
 from celery.loaders.app import AppLoader
@@ -167,7 +168,7 @@ class test_DefaultLoader(AppCase):
             pass
 
         configname = os.environ.get('CELERY_CONFIG_MODULE') or 'celeryconfig'
-        celeryconfig = ConfigModule(configname)
+        celeryconfig = ConfigModule(module_name_t(configname))
         celeryconfig.imports = ('os', 'sys')
 
         prevconfig = sys.modules.get(configname)

+ 3 - 3
celery/tests/app/test_log.py

@@ -1,4 +1,4 @@
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import sys
 import logging
@@ -105,9 +105,9 @@ class test_ColorFormatter(AppCase):
 
     @patch('logging.Formatter.formatException')
     @patch('celery.utils.log.safe_str')
-    def test_formatException_string(self, safe_str, fe):
+    def test_formatException_bytes(self, safe_str, fe):
         x = ColorFormatter()
-        fe.return_value = 'HELLO'
+        fe.return_value = b'HELLO'
         try:
             raise Exception()
         except Exception:

+ 1 - 1
celery/tests/app/test_registry.py

@@ -1,4 +1,4 @@
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 from celery.app.registry import _unpickle_task, _unpickle_task_v2
 from celery.tests.case import AppCase, depends_on_current_app

+ 1 - 1
celery/tests/app/test_routes.py

@@ -1,4 +1,4 @@
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 from kombu import Exchange, Queue
 from kombu.utils.functional import maybe_evaluate

+ 1 - 1
celery/tests/app/test_schedules.py

@@ -1,4 +1,4 @@
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import time
 

+ 1 - 1
celery/tests/app/test_utils.py

@@ -1,4 +1,4 @@
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 from collections import Mapping, MutableMapping
 

+ 1 - 1
celery/tests/backends/test_amqp.py

@@ -1,4 +1,4 @@
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import pickle
 

+ 1 - 1
celery/tests/backends/test_backends.py

@@ -1,4 +1,4 @@
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 from celery import backends
 from celery.backends.amqp import AMQPBackend

+ 13 - 7
celery/tests/backends/test_base.py

@@ -1,4 +1,4 @@
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import sys
 import types
@@ -6,7 +6,7 @@ import types
 from contextlib import contextmanager
 
 from celery.exceptions import ChordError, TimeoutError
-from celery.five import items, range
+from celery.five import items, module_name_t, range
 from celery.utils import serialization
 from celery.utils.serialization import subclass_exception
 from celery.utils.serialization import find_pickleable_exception as fnpe
@@ -36,10 +36,16 @@ class wrapobject(object):
 if sys.version_info[0] == 3 or getattr(sys, 'pypy_version_info', None):
     Oldstyle = None
 else:
-    Oldstyle = types.ClassType('Oldstyle', (), {})
-Unpickleable = subclass_exception('Unpickleable', KeyError, 'foo.module')
-Impossible = subclass_exception('Impossible', object, 'foo.module')
-Lookalike = subclass_exception('Lookalike', wrapobject, 'foo.module')
+    Oldstyle = types.ClassType(module_name_t('Oldstyle'), (), {})
+Unpickleable = subclass_exception(
+    module_name_t('Unpickleable'), KeyError, 'foo.module',
+)
+Impossible = subclass_exception(
+    module_name_t('Impossible'), object, 'foo.module',
+)
+Lookalike = subclass_exception(
+    module_name_t('Lookalike'), wrapobject, 'foo.module',
+)
 
 
 class test_nulldict(Case):
@@ -191,7 +197,7 @@ class test_BaseBackend_dict(AppCase):
         self.assertIn('exc_type', e)
         e = x.exception_to_python(e)
         self.assertEqual(e.__class__.__name__, 'KeyError')
-        self.assertEqual(str(e), "'foo'")
+        self.assertEqual(str(e).strip('u'), "'foo'")
 
     def test_save_group(self):
         b = BaseBackend(self.app)

+ 4 - 4
celery/tests/backends/test_cache.py

@@ -1,4 +1,4 @@
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import sys
 import types
@@ -12,7 +12,7 @@ from celery import states
 from celery import group
 from celery.backends.cache import CacheBackend, DummyClient, backends
 from celery.exceptions import ImproperlyConfigured
-from celery.five import items, string, text_t
+from celery.five import items, module_name_t, string, text_t
 from celery.utils import uuid
 
 from celery.tests.case import (
@@ -169,7 +169,7 @@ class MockCacheMixin(object):
 
     @contextmanager
     def mock_memcache(self):
-        memcache = types.ModuleType('memcache')
+        memcache = types.ModuleType(module_name_t('memcache'))
         memcache.Client = MemcachedClient
         memcache.Client.__module__ = memcache.__name__
         prev, sys.modules['memcache'] = sys.modules.get('memcache'), memcache
@@ -181,7 +181,7 @@ class MockCacheMixin(object):
 
     @contextmanager
     def mock_pylibmc(self):
-        pylibmc = types.ModuleType('pylibmc')
+        pylibmc = types.ModuleType(module_name_t('pylibmc'))
         pylibmc.Client = MemcachedClient
         pylibmc.Client.__module__ = pylibmc.__name__
         prev = sys.modules.get('pylibmc')

+ 1 - 1
celery/tests/backends/test_cassandra.py

@@ -1,4 +1,4 @@
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 from pickle import loads, dumps
 from datetime import datetime

+ 1 - 1
celery/tests/backends/test_couchbase.py

@@ -1,6 +1,6 @@
 """Tests for the CouchBaseBackend."""
 
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 from kombu.utils.encoding import str_t
 

+ 1 - 1
celery/tests/backends/test_couchdb.py

@@ -1,4 +1,4 @@
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 from celery.backends import couchdb as module
 from celery.backends.couchdb import CouchBackend

+ 1 - 1
celery/tests/backends/test_filesystem.py

@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import os
 import shutil

+ 1 - 1
celery/tests/backends/test_mongodb.py

@@ -1,4 +1,4 @@
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import datetime
 

+ 1 - 1
celery/tests/backends/test_redis.py

@@ -1,4 +1,4 @@
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 from datetime import timedelta
 

+ 1 - 46
celery/tests/backends/test_riak.py

@@ -1,6 +1,6 @@
 # -*- coding: utf-8 -*-
 
-from __future__ import absolute_import, with_statement
+from __future__ import absolute_import, unicode_literals
 
 from celery.backends import riak as module
 from celery.backends.riak import RiakBackend, riak
@@ -25,9 +25,6 @@ class test_RiakBackend(AppCase):
         return self.app.backend
 
     def test_init_no_riak(self):
-        """
-        test init no riak raises
-        """
         prev, module.riak = module.riak, None
         try:
             with self.assertRaises(ImproperlyConfigured):
@@ -36,20 +33,15 @@ class test_RiakBackend(AppCase):
             module.riak = prev
 
     def test_init_no_settings(self):
-        """Test init no settings."""
         self.app.conf.riak_backend_settings = []
         with self.assertRaises(ImproperlyConfigured):
             RiakBackend(app=self.app)
 
     def test_init_settings_is_None(self):
-        """
-        Test init settings is None
-        """
         self.app.conf.riak_backend_settings = None
         self.assertTrue(self.app.backend)
 
     def test_get_client_client_exists(self):
-        """Test get existing client."""
         with patch('riak.client.RiakClient') as mock_connection:
             self.backend._client = sentinel._client
 
@@ -60,13 +52,6 @@ class test_RiakBackend(AppCase):
             self.assertFalse(mock_connection.called)
 
     def test_get(self):
-        """Test get
-
-        RiakBackend.get
-        should return  and take two params
-        db conn to riak is mocked
-        TODO Should test on key not exists
-        """
         self.app.conf.couchbase_backend_settings = {}
         self.backend._client = Mock(name='_client')
         self.backend._bucket = Mock(name='_bucket')
@@ -77,13 +62,6 @@ class test_RiakBackend(AppCase):
         self.backend._bucket.get.assert_called_once_with('1f3fab')
 
     def test_set(self):
-        """Test set
-
-        RiakBackend.set
-        should return None and take two params
-        db conn to couchbase is mocked.
-
-        """
         self.app.conf.couchbase_backend_settings = None
         self.backend._client = MagicMock()
         self.backend._bucket = MagicMock()
@@ -92,14 +70,6 @@ class test_RiakBackend(AppCase):
         self.assertIsNone(self.backend.set(sentinel.key, sentinel.value))
 
     def test_delete(self):
-        """Test get
-
-        RiakBackend.get
-        should return  and take two params
-        db conn to couchbase is mocked
-        TODO Should test on key not exists
-
-        """
         self.app.conf.couchbase_backend_settings = {}
 
         self.backend._client = Mock(name='_client')
@@ -111,11 +81,6 @@ class test_RiakBackend(AppCase):
         self.backend._bucket.delete.assert_called_once_with('1f3fab')
 
     def test_config_params(self):
-        """
-        test celery.conf.riak_backend_settingS
-        celery.conf.riak_backend_settingS
-        is properly set
-        """
         self.app.conf.riak_backend_settings = {
             'bucket': 'mycoolbucket',
             'host': 'there.host.com',
@@ -126,9 +91,6 @@ class test_RiakBackend(AppCase):
         self.assertEqual(self.backend.port, 1234)
 
     def test_backend_by_url(self, url='riak://myhost/mycoolbucket'):
-        """
-        test get backend by url
-        """
         from celery import backends
         from celery.backends.riak import RiakBackend
         backend, url_ = backends.get_backend_by_url(url, self.app.loader)
@@ -136,19 +98,12 @@ class test_RiakBackend(AppCase):
         self.assertEqual(url_, url)
 
     def test_backend_params_by_url(self):
-        """
-        test get backend params by url
-        """
         self.app.conf.result_backend = 'riak://myhost:123/mycoolbucket'
         self.assertEqual(self.backend.bucket_name, 'mycoolbucket')
         self.assertEqual(self.backend.host, 'myhost')
         self.assertEqual(self.backend.port, 123)
 
     def test_non_ASCII_bucket_raises(self):
-        """test app.conf.riak_backend_settings and
-        app.conf.riak_backend_settings
-        is properly set
-        """
         self.app.conf.riak_backend_settings = {
             'bucket': 'héhé',
             'host': 'there.host.com',

+ 1 - 1
celery/tests/backends/test_rpc.py

@@ -1,4 +1,4 @@
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 from celery.backends.rpc import RPCBackend
 from celery._state import _task_stack

+ 1 - 1
celery/tests/bin/proj/__init__.py

@@ -1,4 +1,4 @@
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 from celery import Celery
 

+ 1 - 1
celery/tests/bin/proj/app.py

@@ -1,4 +1,4 @@
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 from celery import Celery
 

+ 1 - 1
celery/tests/bin/test_amqp.py

@@ -1,4 +1,4 @@
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 from celery.bin.amqp import (
     AMQPAdmin,

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

@@ -1,4 +1,4 @@
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import os
 
@@ -8,6 +8,7 @@ from celery.bin.base import (
     Extensions,
     HelpFormatter,
 )
+from celery.five import module_name_t
 from celery.utils.objects import Bunch
 
 from celery.tests.case import (
@@ -352,7 +353,7 @@ class test_Command(AppCase):
         cmd = MockCommand(app=self.app)
         with patch('celery.bin.base.symbol_by_name') as sbn:
             from types import ModuleType
-            x = ModuleType('proj')
+            x = ModuleType(module_name_t('proj'))
 
             def on_sbn(*args, **kwargs):
 

+ 1 - 1
celery/tests/bin/test_beat.py

@@ -1,4 +1,4 @@
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import logging
 import sys

+ 1 - 1
celery/tests/bin/test_celery.py

@@ -1,4 +1,4 @@
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import sys
 

+ 1 - 1
celery/tests/bin/test_celeryd_detach.py

@@ -1,4 +1,4 @@
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 from celery.platforms import IS_WINDOWS
 from celery.bin.celeryd_detach import (

+ 1 - 1
celery/tests/bin/test_celeryevdump.py

@@ -1,4 +1,4 @@
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 from time import time
 

+ 1 - 1
celery/tests/bin/test_events.py

@@ -1,4 +1,4 @@
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 from celery.bin import events
 

+ 1 - 1
celery/tests/bin/test_multi.py

@@ -1,4 +1,4 @@
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
 
 import errno
 import signal

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác