From af72e9509a6e835c12c90ac812fd533060987e8a Mon Sep 17 00:00:00 2001 From: Vladimir Rutsky Date: Mon, 8 Feb 2016 05:09:25 +0300 Subject: [PATCH] replace define_old_worker_class() with deprecatedWorkerModuleAttribute() --- master/buildbot/buildslave/ec2.py | 4 +- master/buildbot/buildslave/libvirt.py | 6 +- master/buildbot/buildslave/openstack.py | 7 +- master/buildbot/db/buildslave.py | 7 +- master/buildbot/interfaces.py | 5 +- master/buildbot/locks.py | 4 +- master/buildbot/process/slavebuilder.py | 17 +-- master/buildbot/schedulers/forcesched.py | 6 +- master/buildbot/steps/slave.py | 4 +- master/buildbot/test/unit/test_db_workers.py | 19 +--- master/buildbot/test/unit/test_interfaces.py | 45 +++----- master/buildbot/test/unit/test_locks.py | 16 +-- .../unit/test_process_workerforbuilder.py | 48 +++----- .../test/unit/test_schedulers_forcesched.py | 17 +-- .../buildbot/test/unit/test_steps_worker.py | 18 +-- master/buildbot/test/unit/test_worker_base.py | 2 - master/buildbot/test/unit/test_worker_ec2.py | 18 +-- .../buildbot/test/unit/test_worker_libvirt.py | 17 +-- .../test/unit/test_worker_openstack.py | 17 +-- .../test/unit/test_worker_transition.py | 107 ------------------ master/buildbot/worker_transition.py | 39 +------ 21 files changed, 100 insertions(+), 323 deletions(-) diff --git a/master/buildbot/buildslave/ec2.py b/master/buildbot/buildslave/ec2.py index 9dd9e77be1c..c41e6dec86e 100644 --- a/master/buildbot/buildslave/ec2.py +++ b/master/buildbot/buildslave/ec2.py @@ -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 define_old_worker_class +from buildbot.worker_transition import deprecatedWorkerModuleAttribute from buildbot.worker_transition import reportDeprecatedWorkerModuleUsage reportDeprecatedWorkerModuleUsage( @@ -25,4 +25,4 @@ from buildbot.worker.ec2 import EC2LatentWorker as _EC2LatentWorker -define_old_worker_class(locals(), _EC2LatentWorker, compat_name="EC2LatentBuildSlave") +deprecatedWorkerModuleAttribute(locals(), _EC2LatentWorker, compat_name="EC2LatentBuildSlave") diff --git a/master/buildbot/buildslave/libvirt.py b/master/buildbot/buildslave/libvirt.py index 1cc836da4fc..9cd1363241d 100644 --- a/master/buildbot/buildslave/libvirt.py +++ b/master/buildbot/buildslave/libvirt.py @@ -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 define_old_worker_class +from buildbot.worker_transition import deprecatedWorkerModuleAttribute from buildbot.worker_transition import reportDeprecatedWorkerModuleUsage reportDeprecatedWorkerModuleUsage( @@ -25,4 +25,6 @@ from buildbot.worker.libvirt import LibVirtWorker as _LibVirtWorker -define_old_worker_class(locals(), _LibVirtWorker) +deprecatedWorkerModuleAttribute(locals(), _LibVirtWorker, + compat_name="LibVirtSlave", + new_name="LibVirtWorker") diff --git a/master/buildbot/buildslave/openstack.py b/master/buildbot/buildslave/openstack.py index e1a6b84f256..8062ad0a945 100644 --- a/master/buildbot/buildslave/openstack.py +++ b/master/buildbot/buildslave/openstack.py @@ -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 define_old_worker_class +from buildbot.worker_transition import deprecatedWorkerModuleAttribute from buildbot.worker_transition import reportDeprecatedWorkerModuleUsage reportDeprecatedWorkerModuleUsage( @@ -25,5 +25,6 @@ from buildbot.worker.openstack import OpenStackLatentWorker as _OpenStackLatentWorker -define_old_worker_class(locals(), _OpenStackLatentWorker, - compat_name="OpenStackLatentBuildSlave") +deprecatedWorkerModuleAttribute(locals(), _OpenStackLatentWorker, + compat_name="OpenStackLatentBuildSlave", + new_name="OpenStackLatentWorker") diff --git a/master/buildbot/db/buildslave.py b/master/buildbot/db/buildslave.py index c4d3984690d..4f486b12d3f 100644 --- a/master/buildbot/db/buildslave.py +++ b/master/buildbot/db/buildslave.py @@ -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 define_old_worker_class +from buildbot.worker_transition import deprecatedWorkerModuleAttribute from buildbot.worker_transition import reportDeprecatedWorkerModuleUsage reportDeprecatedWorkerModuleUsage( @@ -25,5 +25,6 @@ from buildbot.db.worker import WorkersConnectorComponent as _WorkersConnectorComponent -define_old_worker_class(locals(), _WorkersConnectorComponent, - compat_name="BuildslavesConnectorComponent") +deprecatedWorkerModuleAttribute(locals(), _WorkersConnectorComponent, + compat_name="BuildslavesConnectorComponent", + new_name="WorkersConnectorComponent") diff --git a/master/buildbot/interfaces.py b/master/buildbot/interfaces.py index 4bb21208601..cfde567b6ca 100644 --- a/master/buildbot/interfaces.py +++ b/master/buildbot/interfaces.py @@ -25,7 +25,6 @@ from zope.interface import Attribute from zope.interface import Interface -from buildbot.worker_transition import define_old_worker_class from buildbot.worker_transition import deprecatedWorkerModuleAttribute # exceptions that can be raised while trying to start a build @@ -45,13 +44,13 @@ class BuilderInUseError(Exception): class WorkerTooOldError(Exception): pass -define_old_worker_class( +deprecatedWorkerModuleAttribute( locals(), WorkerTooOldError, compat_name="BuildSlaveTooOldError") class LatentWorkerFailedToSubstantiate(Exception): pass -define_old_worker_class( +deprecatedWorkerModuleAttribute( locals(), LatentWorkerFailedToSubstantiate, compat_name="LatentBuildSlaveFailedToSubstantiate") diff --git a/master/buildbot/locks.py b/master/buildbot/locks.py index e7128dd0586..53d7e3f4e57 100644 --- a/master/buildbot/locks.py +++ b/master/buildbot/locks.py @@ -18,7 +18,7 @@ from buildbot.util import subscription from buildbot.util.eventual import eventually from buildbot.worker_transition import WorkerAPICompatMixin -from buildbot.worker_transition import define_old_worker_class +from buildbot.worker_transition import deprecatedWorkerModuleAttribute from buildbot.worker_transition import reportDeprecatedWorkerNameUsage from twisted.internet import defer from twisted.python import log @@ -337,4 +337,4 @@ def __init__(self, name, maxCount=1, maxCountForWorker=None, # for comparison purposes, turn this dictionary into a stably-sorted # list of tuples self._maxCountForWorkerList = tuple(sorted(self.maxCountForWorker.items())) -define_old_worker_class(locals(), WorkerLock) +deprecatedWorkerModuleAttribute(locals(), WorkerLock) diff --git a/master/buildbot/process/slavebuilder.py b/master/buildbot/process/slavebuilder.py index 867cc4a187b..1ba91ae1255 100644 --- a/master/buildbot/process/slavebuilder.py +++ b/master/buildbot/process/slavebuilder.py @@ -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 define_old_worker_class +from buildbot.worker_transition import deprecatedWorkerModuleAttribute from buildbot.worker_transition import reportDeprecatedWorkerModuleUsage reportDeprecatedWorkerModuleUsage( @@ -35,9 +35,12 @@ from buildbot.process.workerforbuilder import SUBSTANTIATING # noqa from buildbot.process.workerforbuilder import WorkerForBuilder as _WorkerForBuilder -define_old_worker_class(locals(), _AbstractWorkerForBuilder, - compat_name="AbstractSlaveBuilder") -define_old_worker_class(locals(), _WorkerForBuilder, - compat_name="SlaveBuilder") -define_old_worker_class(locals(), _LatentWorkerForBuilder, - compat_name="LatentSlaveBuilder") +deprecatedWorkerModuleAttribute(locals(), _AbstractWorkerForBuilder, + compat_name="AbstractSlaveBuilder", + new_name="AbstractWorkerForBuilder") +deprecatedWorkerModuleAttribute(locals(), _WorkerForBuilder, + compat_name="SlaveBuilder", + new_name="WorkerForBuilder") +deprecatedWorkerModuleAttribute(locals(), _LatentWorkerForBuilder, + compat_name="LatentSlaveBuilder", + new_name="LatentWorkerForBuilder") diff --git a/master/buildbot/schedulers/forcesched.py b/master/buildbot/schedulers/forcesched.py index a4809f12365..eeda8e24f13 100644 --- a/master/buildbot/schedulers/forcesched.py +++ b/master/buildbot/schedulers/forcesched.py @@ -25,7 +25,7 @@ from buildbot import config from buildbot.process.properties import Properties from buildbot.schedulers import base -from buildbot.worker_transition import define_old_worker_class +from buildbot.worker_transition import deprecatedWorkerModuleAttribute class ValidationError(ValueError): @@ -356,8 +356,8 @@ def getChoices(self, master, scheduler, buildername): workernames.sort() workernames.insert(0, self.anySentinel) return workernames -define_old_worker_class(locals(), WorkerChoiceParameter, - compat_name="BuildslaveChoiceParameter") +deprecatedWorkerModuleAttribute(locals(), WorkerChoiceParameter, + compat_name="BuildslaveChoiceParameter") class NestedParameter(BaseParameter): diff --git a/master/buildbot/steps/slave.py b/master/buildbot/steps/slave.py index 828ff2d9d81..2bd441eddd9 100644 --- a/master/buildbot/steps/slave.py +++ b/master/buildbot/steps/slave.py @@ -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 define_old_worker_class +from buildbot.worker_transition import deprecatedWorkerModuleAttribute from buildbot.worker_transition import reportDeprecatedWorkerModuleUsage reportDeprecatedWorkerModuleUsage( @@ -28,5 +28,5 @@ # pylint: disable=unused-wildcard-import from buildbot.steps.worker import * # noqa -define_old_worker_class(locals(), WorkerBuildStep) +deprecatedWorkerModuleAttribute(locals(), WorkerBuildStep) del WorkerBuildStep # noqa diff --git a/master/buildbot/test/unit/test_db_workers.py b/master/buildbot/test/unit/test_db_workers.py index 825f24cd848..2bcb1116eae 100644 --- a/master/buildbot/test/unit/test_db_workers.py +++ b/master/buildbot/test/unit/test_db_workers.py @@ -21,8 +21,6 @@ from buildbot.test.util import interfaces from buildbot.test.util import validation from buildbot.test.util.warnings import assertProducesWarning -from buildbot.test.util.warnings import ignoreWarning -from buildbot.worker_transition import DeprecatedWorkerModuleWarning from buildbot.worker_transition import DeprecatedWorkerNameWarning from twisted.internet import defer from twisted.trial import unittest @@ -576,19 +574,14 @@ def tearDown(self): class TestWorkerTransition(unittest.TestCase): - def test_WorkerBuildStep(self): - from buildbot.db.buildslave import BuildslavesConnectorComponent - - class C(BuildslavesConnectorComponent): - - def __init__(self): - pass - + def test_BuildslavesConnectorComponent_deprecated(self): with assertProducesWarning( DeprecatedWorkerNameWarning, - message_pattern="'BuildslavesConnectorComponent' class is deprecated"): - c = C() - self.assertIsInstance(c, worker.WorkersConnectorComponent) + message_pattern="BuildslavesConnectorComponent was deprecated"): + from buildbot.db.buildslave import BuildslavesConnectorComponent + + self.assertIdentical(BuildslavesConnectorComponent, + worker.WorkersConnectorComponent) def test_getWorkers_old_api(self): method = mock.Mock(return_value='dummy') diff --git a/master/buildbot/test/unit/test_interfaces.py b/master/buildbot/test/unit/test_interfaces.py index 876487c3d76..928e0095e4d 100644 --- a/master/buildbot/test/unit/test_interfaces.py +++ b/master/buildbot/test/unit/test_interfaces.py @@ -16,21 +16,19 @@ from twisted.trial import unittest from buildbot import interfaces -from buildbot.test.util.warnings import assertNotProducesWarnings from buildbot.test.util.warnings import assertProducesWarning -from buildbot.worker_transition import DeprecatedWorkerAPIWarning from buildbot.worker_transition import DeprecatedWorkerNameWarning class TestWorkerTransition(unittest.TestCase): - def test_NoSlaveError_deprecated_worker(self): + def test_NoSlaveError_deprecated(self): with assertProducesWarning( DeprecatedWorkerNameWarning, message_pattern="NoSlaveError was deprecated"): interfaces.NoSlaveError - def test_IWorker_deprecated_worker(self): + def test_IBuildSlave_deprecated(self): with assertProducesWarning( DeprecatedWorkerNameWarning, message_pattern="IBuildSlave was deprecated"): @@ -38,7 +36,7 @@ def test_IWorker_deprecated_worker(self): self.assertIdentical(deprecated, interfaces.IWorker) - def test_ILatentWorker_deprecated_worker(self): + def test_ILatentBuildSlave_deprecated(self): with assertProducesWarning( DeprecatedWorkerNameWarning, message_pattern="ILatentBuildSlave was deprecated"): @@ -46,7 +44,7 @@ def test_ILatentWorker_deprecated_worker(self): self.assertIdentical(deprecated, interfaces.ILatentWorker) - def test_IWorkerStatus_deprecated_worker(self): + def test_ISlaveStatus_deprecated(self): with assertProducesWarning( DeprecatedWorkerNameWarning, message_pattern="ISlaveStatus was deprecated"): @@ -54,37 +52,24 @@ def test_IWorkerStatus_deprecated_worker(self): self.assertIdentical(deprecated, interfaces.IWorkerStatus) - -class TestWorkerTooOldError(unittest.TestCase): - - def test_use(self): + def test_BuildSlaveTooOldError_deprecated(self): from buildbot.interfaces import WorkerTooOldError - from buildbot.interfaces import BuildSlaveTooOldError - - with assertNotProducesWarnings(DeprecatedWorkerAPIWarning): - err = WorkerTooOldError() - self.assertIsInstance(err, Exception) with assertProducesWarning( DeprecatedWorkerNameWarning, - message_pattern="'BuildSlaveTooOldError' class is deprecated"): - err = BuildSlaveTooOldError() - assert isinstance(err, Exception) + message_pattern="BuildSlaveTooOldError was deprecated"): + from buildbot.interfaces import BuildSlaveTooOldError + self.assertIdentical(BuildSlaveTooOldError, WorkerTooOldError) -class TestLatentWorkerFailedToSubstantiate(unittest.TestCase): - - def test_use(self): + def test_LatentBuildSlaveFailedToSubstantiate_deprecated(self): from buildbot.interfaces import LatentWorkerFailedToSubstantiate - from buildbot.interfaces import LatentBuildSlaveFailedToSubstantiate - - with assertNotProducesWarnings(DeprecatedWorkerAPIWarning): - err = LatentWorkerFailedToSubstantiate() - self.assertIsInstance(err, Exception) with assertProducesWarning( DeprecatedWorkerNameWarning, - message_pattern="'LatentBuildSlaveFailedToSubstantiate' class " - "is deprecated"): - err = LatentBuildSlaveFailedToSubstantiate() - assert isinstance(err, Exception) + message_pattern="LatentBuildSlaveFailedToSubstantiate " + "was deprecated"): + from buildbot.interfaces import LatentBuildSlaveFailedToSubstantiate + + self.assertIdentical(LatentBuildSlaveFailedToSubstantiate, + LatentWorkerFailedToSubstantiate) diff --git a/master/buildbot/test/unit/test_locks.py b/master/buildbot/test/unit/test_locks.py index e306fbf8c40..0454b30348b 100644 --- a/master/buildbot/test/unit/test_locks.py +++ b/master/buildbot/test/unit/test_locks.py @@ -23,19 +23,13 @@ class TestWorkerTransition(unittest.TestCase): - def test_worker_status(self): - from buildbot.locks import SlaveLock - - class WL(SlaveLock): - - def __init__(self): - pass - + def test_SlaveLock_deprecated(self): with assertProducesWarning( DeprecatedWorkerNameWarning, - message_pattern="'SlaveLock' class is deprecated"): - l = WL() - self.assertIsInstance(l, WorkerLock) + message_pattern="SlaveLock was deprecated"): + from buildbot.locks import SlaveLock + + self.assertIdentical(SlaveLock, WorkerLock) def test_maxCountForWorker_old_api(self): l = WorkerLock("lock") diff --git a/master/buildbot/test/unit/test_process_workerforbuilder.py b/master/buildbot/test/unit/test_process_workerforbuilder.py index 592f5f65e12..433a55a314a 100644 --- a/master/buildbot/test/unit/test_process_workerforbuilder.py +++ b/master/buildbot/test/unit/test_process_workerforbuilder.py @@ -15,10 +15,8 @@ from buildbot.process.workerforbuilder import AbstractWorkerForBuilder from buildbot.test.util.warnings import assertNotProducesWarnings from buildbot.test.util.warnings import assertProducesWarning -from buildbot.test.util.warnings import ignoreWarning from buildbot.worker.base import AbstractWorker from buildbot.worker_transition import DeprecatedWorkerAPIWarning -from buildbot.worker_transition import DeprecatedWorkerModuleWarning from buildbot.worker_transition import DeprecatedWorkerNameWarning from twisted.trial.unittest import TestCase @@ -83,46 +81,30 @@ def test_worker_old_api(self): class TestWorkerTransition(TestCase): - def test_abstract_worker_for_builder(self): - from buildbot.process.slavebuilder import AbstractSlaveBuilder - - class WB(AbstractSlaveBuilder): - - def __init__(self): - pass - + def test_AbstractSlaveBuilder_deprecated(self): with assertProducesWarning( DeprecatedWorkerNameWarning, - message_pattern="'AbstractSlaveBuilder' class is deprecated"): - w = WB() - self.assertIsInstance(w, AbstractWorkerForBuilder) - - def test_worker_for_builder(self): - from buildbot.process.workerforbuilder import WorkerForBuilder - from buildbot.process.slavebuilder import SlaveBuilder + message_pattern="AbstractSlaveBuilder was deprecated"): + from buildbot.process.slavebuilder import AbstractSlaveBuilder - class WB(SlaveBuilder): + self.assertIdentical(AbstractSlaveBuilder, AbstractWorkerForBuilder) - def __init__(self): - pass + def test_SlaveBuilder_deprecated(self): + from buildbot.process.workerforbuilder import WorkerForBuilder with assertProducesWarning( DeprecatedWorkerNameWarning, - message_pattern="'SlaveBuilder' class is deprecated"): - w = WB() - self.assertIsInstance(w, WorkerForBuilder) - - def test_latent_worker_for_builder(self): - from buildbot.process.workerforbuilder import LatentWorkerForBuilder - from buildbot.process.slavebuilder import LatentSlaveBuilder + message_pattern="SlaveBuilder was deprecated"): + from buildbot.process.slavebuilder import SlaveBuilder - class WB(LatentSlaveBuilder): + self.assertIdentical(SlaveBuilder, WorkerForBuilder) - def __init__(self): - pass + def test_LatentSlaveBuilder_deprecated(self): + from buildbot.process.workerforbuilder import LatentWorkerForBuilder with assertProducesWarning( DeprecatedWorkerNameWarning, - message_pattern="'LatentSlaveBuilder' class is deprecated"): - w = WB() - self.assertIsInstance(w, LatentWorkerForBuilder) + message_pattern="LatentSlaveBuilder was deprecated"): + from buildbot.process.slavebuilder import LatentSlaveBuilder + + self.assertIdentical(LatentSlaveBuilder, LatentWorkerForBuilder) diff --git a/master/buildbot/test/unit/test_schedulers_forcesched.py b/master/buildbot/test/unit/test_schedulers_forcesched.py index c7fd8a09235..a7e88b4af21 100644 --- a/master/buildbot/test/unit/test_schedulers_forcesched.py +++ b/master/buildbot/test/unit/test_schedulers_forcesched.py @@ -32,9 +32,7 @@ from buildbot.test.util import scheduler from buildbot.test.util.config import ConfigErrorsMixin from buildbot.test.util.warnings import assertProducesWarning -from buildbot.test.util.warnings import ignoreWarning from buildbot.util import json -from buildbot.worker_transition import DeprecatedWorkerModuleWarning from buildbot.worker_transition import DeprecatedWorkerNameWarning from twisted.internet import defer from twisted.trial import unittest @@ -612,17 +610,12 @@ def test_novalue_to_parameter(self): class TestWorkerTransition(unittest.TestCase): - def test_worker_choice_parameter(self): + def test_BuildslaveChoiceParameter_deprecated(self): from buildbot.schedulers.forcesched import WorkerChoiceParameter - from buildbot.schedulers.forcesched import BuildslaveChoiceParameter - - class WCP(BuildslaveChoiceParameter): - - def __init__(self): - pass with assertProducesWarning( DeprecatedWorkerNameWarning, - message_pattern="'BuildslaveChoiceParameter' class is deprecated"): - w = WCP() - self.assertIsInstance(w, WorkerChoiceParameter) + message_pattern="BuildslaveChoiceParameter was deprecated"): + from buildbot.schedulers.forcesched import BuildslaveChoiceParameter + + self.assertIdentical(BuildslaveChoiceParameter, WorkerChoiceParameter) diff --git a/master/buildbot/test/unit/test_steps_worker.py b/master/buildbot/test/unit/test_steps_worker.py index c3e904607c1..bf6dc0cb04d 100644 --- a/master/buildbot/test/unit/test_steps_worker.py +++ b/master/buildbot/test/unit/test_steps_worker.py @@ -27,8 +27,6 @@ from buildbot.test.fake.remotecommand import Expect from buildbot.test.util import steps from buildbot.test.util.warnings import assertProducesWarning -from buildbot.test.util.warnings import ignoreWarning -from buildbot.worker_transition import DeprecatedWorkerModuleWarning from buildbot.worker_transition import DeprecatedWorkerNameWarning from twisted.internet import defer from twisted.trial import unittest @@ -425,16 +423,10 @@ def test_getFileContentFromWorker_old_api(self): class TestWorkerTransition(unittest.TestCase): - def test_WorkerBuildStep(self): - from buildbot.steps.slave import SlaveBuildStep - - class C(SlaveBuildStep): - - def __init__(self): - pass - + def test_SlaveBuildStep_deprecated(self): with assertProducesWarning( DeprecatedWorkerNameWarning, - message_pattern="'SlaveBuildStep' class is deprecated"): - c = C() - self.assertIsInstance(c, worker.WorkerBuildStep) + message_pattern="SlaveBuildStep was deprecated"): + from buildbot.steps.slave import SlaveBuildStep + + self.assertIdentical(SlaveBuildStep, worker.WorkerBuildStep) diff --git a/master/buildbot/test/unit/test_worker_base.py b/master/buildbot/test/unit/test_worker_base.py index 57a0d5b9553..557dcb264cd 100644 --- a/master/buildbot/test/unit/test_worker_base.py +++ b/master/buildbot/test/unit/test_worker_base.py @@ -25,10 +25,8 @@ from buildbot.test.util import interfaces from buildbot.test.util.warnings import assertNotProducesWarnings from buildbot.test.util.warnings import assertProducesWarning -from buildbot.test.util.warnings import ignoreWarning from buildbot.worker import base from buildbot.worker_transition import DeprecatedWorkerAPIWarning -from buildbot.worker_transition import DeprecatedWorkerModuleWarning from buildbot.worker_transition import DeprecatedWorkerNameWarning from twisted.internet import defer from twisted.internet import reactor diff --git a/master/buildbot/test/unit/test_worker_ec2.py b/master/buildbot/test/unit/test_worker_ec2.py index e1a1c04db3b..c5bd2e8a69a 100644 --- a/master/buildbot/test/unit/test_worker_ec2.py +++ b/master/buildbot/test/unit/test_worker_ec2.py @@ -29,8 +29,6 @@ from buildbot.test.util.warnings import assertNotProducesWarnings from buildbot.test.util.warnings import assertProducesWarning from buildbot.test.util.warnings import assertProducesWarnings -from buildbot.test.util.warnings import ignoreWarning -from buildbot.worker_transition import DeprecatedWorkerModuleWarning from buildbot.worker_transition import DeprecatedWorkerNameWarning from twisted.trial import unittest @@ -332,18 +330,12 @@ def test_use_non_default_keypair_security(self): class TestWorkerTransition(unittest.TestCase): - def test_abstract_worker(self): + def test_EC2LatentBuildSlave_deprecated(self): from buildbot.worker.ec2 import EC2LatentWorker - from buildbot.buildslave.ec2 import EC2LatentBuildSlave - - class Worker(EC2LatentBuildSlave): - - def __init__(self): - pass with assertProducesWarning( DeprecatedWorkerNameWarning, - message_pattern="'EC2LatentBuildSlave' class " - "is deprecated"): - w = Worker() - self.assertIsInstance(w, EC2LatentWorker) + message_pattern="EC2LatentBuildSlave was deprecated"): + from buildbot.buildslave.ec2 import EC2LatentBuildSlave + + self.assertIdentical(EC2LatentBuildSlave, EC2LatentWorker) diff --git a/master/buildbot/test/unit/test_worker_libvirt.py b/master/buildbot/test/unit/test_worker_libvirt.py index d90db3c9bac..aa2e70c9c5f 100644 --- a/master/buildbot/test/unit/test_worker_libvirt.py +++ b/master/buildbot/test/unit/test_worker_libvirt.py @@ -18,9 +18,7 @@ from buildbot import config from buildbot.test.fake import libvirt from buildbot.test.util.warnings import assertProducesWarning -from buildbot.test.util.warnings import ignoreWarning from buildbot.worker import libvirt as libvirtworker -from buildbot.worker_transition import DeprecatedWorkerModuleWarning from buildbot.worker_transition import DeprecatedWorkerNameWarning from twisted.internet import defer from twisted.internet import reactor @@ -292,17 +290,12 @@ def cb3(res): class TestWorkerTransition(unittest.TestCase): - def test_worker(self): + def test_LibVirtSlave_deprecated(self): from buildbot.worker.libvirt import LibVirtWorker - from buildbot.buildslave.libvirt import LibVirtSlave - - class Worker(LibVirtSlave): - - def __init__(self): - pass with assertProducesWarning( DeprecatedWorkerNameWarning, - message_pattern="'LibVirtSlave' class is deprecated"): - w = Worker() - self.assertIsInstance(w, LibVirtWorker) + message_pattern="LibVirtSlave was deprecated"): + from buildbot.buildslave.libvirt import LibVirtSlave + + self.assertIdentical(LibVirtSlave, LibVirtWorker) diff --git a/master/buildbot/test/unit/test_worker_openstack.py b/master/buildbot/test/unit/test_worker_openstack.py index 3326d63e9bb..e7454d238ef 100644 --- a/master/buildbot/test/unit/test_worker_openstack.py +++ b/master/buildbot/test/unit/test_worker_openstack.py @@ -20,9 +20,7 @@ from buildbot import config from buildbot import interfaces from buildbot.test.util.warnings import assertProducesWarning -from buildbot.test.util.warnings import ignoreWarning from buildbot.worker import openstack -from buildbot.worker_transition import DeprecatedWorkerModuleWarning from buildbot.worker_transition import DeprecatedWorkerNameWarning from twisted.internet import defer from twisted.trial import unittest @@ -186,17 +184,12 @@ def test_stop_instance_unknown(self): class TestWorkerTransition(unittest.TestCase): - def test_worker(self): + def test_OpenStackLatentBuildSlave_deprecated(self): from buildbot.worker.openstack import OpenStackLatentWorker - from buildbot.buildslave.openstack import OpenStackLatentBuildSlave - - class Worker(OpenStackLatentBuildSlave): - - def __init__(self): - pass with assertProducesWarning( DeprecatedWorkerNameWarning, - message_pattern="'OpenStackLatentBuildSlave' class is deprecated"): - w = Worker() - self.assertIsInstance(w, OpenStackLatentWorker) + message_pattern="OpenStackLatentBuildSlave was deprecated"): + from buildbot.buildslave.openstack import OpenStackLatentBuildSlave + + self.assertIdentical(OpenStackLatentBuildSlave, OpenStackLatentWorker) diff --git a/master/buildbot/test/unit/test_worker_transition.py b/master/buildbot/test/unit/test_worker_transition.py index 03ef49cbf12..2013dfc4d1d 100644 --- a/master/buildbot/test/unit/test_worker_transition.py +++ b/master/buildbot/test/unit/test_worker_transition.py @@ -26,7 +26,6 @@ from buildbot.worker_transition import DeprecatedWorkerNameWarning from buildbot.worker_transition import WorkerAPICompatMixin from buildbot.worker_transition import _compat_name -from buildbot.worker_transition import define_old_worker_class from buildbot.worker_transition import define_old_worker_func from buildbot.worker_transition import define_old_worker_method from buildbot.worker_transition import define_old_worker_property @@ -207,112 +206,6 @@ def test_module_reload(self): self.assertIdentical(S, Worker) -class ClassWrapper(unittest.TestCase): - - def test_class_wrapper(self): - class Worker(object): - - def __init__(self, arg, **kwargs): - self.arg = arg - self.kwargs = kwargs - - locals = {} - define_old_worker_class(locals, Worker) - self.assertIn("Slave", locals) - Slave = locals["Slave"] - self.assertTrue(issubclass(Slave, Worker)) - - with assertProducesWarning(DeprecatedWorkerNameWarning): - # Trigger a warning. - slave = Slave("arg", a=1, b=2) - - self.assertEqual(slave.arg, "arg") - self.assertEqual(slave.kwargs, dict(a=1, b=2)) - - def test_class_wrapper_with_name(self): - class Worker(object): - - def __init__(self, arg, **kwargs): - self.arg = arg - self.kwargs = kwargs - - locals = {} - define_old_worker_class(locals, Worker, compat_name="Buildslave") - self.assertIn("Buildslave", locals) - Buildslave = locals["Buildslave"] - self.assertTrue(issubclass(Buildslave, Worker)) - - with assertProducesWarning(DeprecatedWorkerNameWarning): - # Trigger a warning. - slave = Buildslave("arg", a=1, b=2) - - self.assertEqual(slave.arg, "arg") - self.assertEqual(slave.kwargs, dict(a=1, b=2)) - - def test_class_with_new_wrapper(self): - class Worker(object): - - def __init__(self, arg, **kwargs): - self.arg = arg - self.kwargs = kwargs - - def __new__(cls, *args, **kwargs): - instance = object.__new__(cls) - instance.new_args = args - instance.new_kwargs = kwargs - return instance - - locals = {} - define_old_worker_class(locals, Worker) - self.assertIn("Slave", locals) - Slave = locals["Slave"] - self.assertTrue(issubclass(Slave, Worker)) - - with assertProducesWarning(DeprecatedWorkerNameWarning): - # Trigger a warning. - slave = Slave("arg", a=1, b=2) - - self.assertEqual(slave.arg, "arg") - self.assertEqual(slave.kwargs, dict(a=1, b=2)) - self.assertEqual(slave.new_args, ("arg",)) - self.assertEqual(slave.new_kwargs, dict(a=1, b=2)) - - def test_class_meta(self): - class Worker(object): - """docstring""" - - locals = {} - define_old_worker_class(locals, Worker) - Slave = locals["Slave"] - self.assertEqual(Slave.__doc__, Worker.__doc__) - self.assertEqual(Slave.__module__, Worker.__module__) - - def test_module_reload(self): - # pylint: disable=function-redefined - locals = {} - - class Worker(object): - - def __init__(self, arg, **kwargs): - self.arg = arg - self.kwargs = kwargs - - define_old_worker_class(locals, Worker) - self.assertIn("Slave", locals) - self.assertTrue(issubclass(locals["Slave"], Worker)) - - # "Reload" module - class Worker(object): - - def __init__(self, arg, **kwargs): - self.arg = arg - self.kwargs = kwargs - - define_old_worker_class(locals, Worker) - self.assertIn("Slave", locals) - self.assertTrue(issubclass(locals["Slave"], Worker)) - - class PropertyWrapper(unittest.TestCase): def test_property_wrapper(self): diff --git a/master/buildbot/worker_transition.py b/master/buildbot/worker_transition.py index fc91fbb86af..e4ac743aba5 100644 --- a/master/buildbot/worker_transition.py +++ b/master/buildbot/worker_transition.py @@ -33,7 +33,7 @@ __all__ = ( "DeprecatedWorkerNameWarning", - "define_old_worker_class", "define_old_worker_property", + "define_old_worker_property", "define_old_worker_method", "define_old_worker_func", "WorkerAPICompatMixin", "setupWorkerTransition", @@ -224,43 +224,6 @@ def deprecatedWorkerModuleAttribute(scope, attribute, compat_name=None, module_name, compat_name) -def _deprecated_worker_class(cls, class_name=None): - assert issubclass(cls, object) - - compat_name = _compat_name(cls.__name__, compat_name=class_name) - - def __new__(instance_cls, *args, **kwargs): - reportDeprecatedWorkerNameUsage( - "'{old}' class is deprecated, use '{new}' instead.".format( - new=cls.__name__, old=compat_name)) - if cls.__new__ is object.__new__: - # object.__new__() doesn't accept arguments. - instance = cls.__new__(instance_cls) - else: - # Class has overloaded __new__(), pass arguments to it. - instance = cls.__new__(instance_cls, *args, **kwargs) - - return instance - - compat_class = type(compat_name, (cls,), { - "__new__": __new__, - "__module__": cls.__module__, - "__doc__": cls.__doc__, - }) - - return compat_class - - -def define_old_worker_class(scope, cls, compat_name=None): - """Define old-named class that inherits new names class. - - Useful for instantiable classes. - """ - - compat_class = _deprecated_worker_class(cls, class_name=compat_name) - scope[compat_class.__name__] = compat_class - - def define_old_worker_property(scope, new_name, compat_name=None): """Define old-named property inside class.""" compat_name = _compat_name(new_name, compat_name=compat_name)