Skip to content

Commit

Permalink
replace deprecated_worker_class with deprecatedWorkerModuleAttribute
Browse files Browse the repository at this point in the history
Also simplify tests.
  • Loading branch information
rutsky committed Feb 6, 2016
1 parent 98f4ef4 commit cb53065
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 45 deletions.
19 changes: 11 additions & 8 deletions master/buildbot/buildslave/__init__.py
Expand Up @@ -16,7 +16,7 @@
# This module is left for backward compatibility of old-named worker API.
# It should never be imported by Buildbot.

from buildbot.worker_transition import deprecated_worker_class
from buildbot.worker_transition import deprecatedWorkerModuleAttribute
from buildbot.worker_transition import on_deprecated_module_usage

on_deprecated_module_usage(
Expand All @@ -27,11 +27,14 @@
from buildbot.worker import AbstractWorker as _AbstractWorker
from buildbot.worker import Worker as _Worker

AbstractBuildSlave = deprecated_worker_class(
_AbstractWorker, class_name="AbstractBuildSlave")
BuildSlave = deprecated_worker_class(
_Worker, class_name="BuildSlave")
AbstractLatentBuildSlave = deprecated_worker_class(
_AbstractLatentWorker, class_name="AbstractLatentBuildSlave")
deprecatedWorkerModuleAttribute(locals(), _AbstractWorker,
compat_name="AbstractBuildSlave",
new_name="AbstractWorker")

__all__ = ("AbstractBuildSlave", "BuildSlave", "AbstractLatentBuildSlave")
deprecatedWorkerModuleAttribute(locals(), _Worker,
compat_name="BuildSlave",
new_name="Worker")

deprecatedWorkerModuleAttribute(locals(), _AbstractLatentWorker,
compat_name="AbstractLatentBuildSlave",
new_name="AbstractLatentWorker")
4 changes: 2 additions & 2 deletions master/buildbot/test/integration/test_configs.py
Expand Up @@ -63,7 +63,7 @@ def test_0_7_12_config(self):
with assertProducesWarnings(
DeprecatedWorkerNameWarning,
messages_patterns=[
r"'BuildSlave' class is deprecated",
r"BuildSlave was deprecated",
r"c\['slavePortnum'\] key is deprecated",
r"'slavename' keyword argument is deprecated",
r"c\['slaves'\] key is deprecated"]):
Expand All @@ -75,7 +75,7 @@ def test_0_7_6_config(self):
with assertProducesWarnings(
DeprecatedWorkerNameWarning,
messages_patterns=[
r"'BuildSlave' class is deprecated",
r"BuildSlave was deprecated",
r"c\['slavePortnum'\] key is deprecated",
r"'slavename' keyword argument is deprecated",
r"c\['slaves'\] key is deprecated"]):
Expand Down
53 changes: 21 additions & 32 deletions master/buildbot/test/unit/test_worker_base.py
Expand Up @@ -475,52 +475,41 @@ def test_shutdownRequested(self):

class TestWorkerTransition(unittest.TestCase):

def test_abstract_worker(self):
def test_AbstractBuildSlave_deprecated_worker(self):
from buildbot.worker import AbstractWorker
with ignoreWarning(DeprecatedWorkerModuleWarning):
from buildbot.buildslave import AbstractBuildSlave

class Worker(AbstractBuildSlave):

def __init__(self):
pass
with ignoreWarning(DeprecatedWorkerModuleWarning):
import buildbot.buildslave as bs

with assertProducesWarning(
DeprecatedWorkerNameWarning,
message_pattern="'AbstractBuildSlave' class "
"is deprecated"):
w = Worker()
self.assertIsInstance(w, AbstractWorker)
message_pattern="AbstractBuildSlave was deprecated"):
deprecated = bs.AbstractBuildSlave

def test_abstract_latent_worker(self):
from buildbot.worker import AbstractLatentWorker
with ignoreWarning(DeprecatedWorkerModuleWarning):
from buildbot.buildslave import AbstractLatentBuildSlave
self.assertIdentical(deprecated, AbstractWorker)

class Worker(AbstractLatentBuildSlave):
def test_AbstractLatentBuildSlave_deprecated_worker(self):
from buildbot.worker import AbstractLatentWorker

def __init__(self):
pass
with ignoreWarning(DeprecatedWorkerModuleWarning):
import buildbot.buildslave as bs

with assertProducesWarning(
DeprecatedWorkerNameWarning,
message_pattern="'AbstractLatentBuildSlave' class "
"is deprecated"):
w = Worker()
self.assertIsInstance(w, AbstractLatentWorker)
message_pattern="AbstractLatentBuildSlave was deprecated"):
deprecated = bs.AbstractLatentBuildSlave

def test_worker(self):
from buildbot.worker import Worker
with ignoreWarning(DeprecatedWorkerModuleWarning):
from buildbot.buildslave import BuildSlave
self.assertIdentical(deprecated, AbstractLatentWorker)

class CustomWorker(BuildSlave):
def test_BuildSlave_deprecated_worker(self):
from buildbot.worker import Worker

def __init__(self):
pass
with ignoreWarning(DeprecatedWorkerModuleWarning):
import buildbot.buildslave as bs

with assertProducesWarning(
DeprecatedWorkerNameWarning,
message_pattern="'BuildSlave' class is deprecated"):
w = CustomWorker()
self.assertIsInstance(w, Worker)
message_pattern="BuildSlave was deprecated"):
deprecated = bs.BuildSlave

self.assertIdentical(deprecated, Worker)
5 changes: 2 additions & 3 deletions master/buildbot/worker_transition.py
Expand Up @@ -36,7 +36,6 @@
"define_old_worker_class", "define_old_worker_property",
"define_old_worker_method", "define_old_worker_func",
"WorkerAPICompatMixin",
"deprecated_worker_class",
"setupWorkerTransition",
"deprecatedWorkerModuleAttribute",
)
Expand Down Expand Up @@ -206,7 +205,7 @@ def deprecatedWorkerModuleAttribute(scope, attribute, compat_name=None,
module_name, compat_name)


def deprecated_worker_class(cls, class_name=None):
def _deprecated_worker_class(cls, class_name=None):
assert issubclass(cls, object)

compat_name = _compat_name(cls.__name__, compat_name=class_name)
Expand Down Expand Up @@ -239,7 +238,7 @@ def define_old_worker_class(scope, cls, compat_name=None):
Useful for instantiable classes.
"""

compat_class = deprecated_worker_class(cls, class_name=compat_name)
compat_class = _deprecated_worker_class(cls, class_name=compat_name)
scope[compat_class.__name__] = compat_class


Expand Down

0 comments on commit cb53065

Please sign in to comment.