Skip to content

Commit

Permalink
Merge pull request #7301 from p12tic/test-cleanup-step-mixin
Browse files Browse the repository at this point in the history
test: Cleanup TestBuildStepMixin
  • Loading branch information
p12tic committed Dec 21, 2023
2 parents 6f365ee + 010a42b commit 7845207
Show file tree
Hide file tree
Showing 13 changed files with 59 additions and 66 deletions.
28 changes: 12 additions & 16 deletions master/buildbot/test/steps.py
Original file line number Diff line number Diff line change
Expand Up @@ -621,6 +621,9 @@ def setup_test_build_step(self, want_data=True, want_db=False, want_mq=False):
self.patch(runprocess, "create_process", self._patched_create_process)
self._master_run_process_expect_env = {}

self.worker = worker.FakeWorker(self.master)
self.worker.attached(None)

def tear_down_test_build_step(self):
pass

Expand Down Expand Up @@ -664,18 +667,8 @@ def setup_step(self, step, worker_version=None, worker_env=None,

self.build = self._setup_fake_build(worker_version, worker_env, build_files)
self.step.setBuild(self.build)

# watch for properties being set
self.properties = self.build.getProperties()

# step.progress

self.step.progress = mock.Mock(name="progress")

# step.worker

self.worker = self.step.worker = worker.FakeWorker(self.master)
self.worker.attached(None)
self.step.worker = self.worker

# step overrides

Expand Down Expand Up @@ -832,17 +825,20 @@ def run_step(self):
stepStateString[stepids[0]],
f"expected state_string {self.exp_state_string!r}, got "
f"{stepStateString[stepids[0]]!r}")

properties = self.build.getProperties()

for pn, (pv, ps) in self.exp_properties.items():
self.assertTrue(self.properties.hasProperty(pn), f"missing property '{pn}'")
self.assertEqual(self.properties.getProperty(pn), pv, f"property '{pn}'")
self.assertTrue(properties.hasProperty(pn), f"missing property '{pn}'")
self.assertEqual(properties.getProperty(pn), pv, f"property '{pn}'")
if ps is not None:
self.assertEqual(
self.properties.getPropertySource(pn), ps,
properties.getPropertySource(pn), ps,
f"property {pn!r} source has source "
f"{self.properties.getPropertySource(pn)!r}")
f"{properties.getPropertySource(pn)!r}")

for pn in self.exp_missing_properties:
self.assertFalse(self.properties.hasProperty(pn), f"unexpected property '{pn}'")
self.assertFalse(properties.hasProperty(pn), f"unexpected property '{pn}'")

for l, exp in self.exp_logfiles.items():
got = self.step.logs[l].stdout
Expand Down
4 changes: 2 additions & 2 deletions master/buildbot/test/unit/process/test_buildstep.py
Original file line number Diff line number Diff line change
Expand Up @@ -651,7 +651,7 @@ def run(self):
def test_step_renders_flunkOnFailure(self):
self.setup_step(
TestBuildStep.FakeBuildStep(flunkOnFailure=properties.Property('fOF')))
self.properties.setProperty('fOF', 'yes', 'test')
self.build.setProperty('fOF', 'yes', 'test')
self.expect_outcome(result=SUCCESS)
yield self.run_step()
self.assertEqual(self.step.flunkOnFailure, 'yes')
Expand Down Expand Up @@ -1280,7 +1280,7 @@ def test_build_workdir_callable_error(self):
def test_build_workdir_renderable(self):
self.setup_step(SimpleShellCommand(command=['cmd', 'arg']), want_default_work_dir=False)
self.build.workdir = properties.Property("myproperty")
self.properties.setProperty("myproperty", "/myproperty", "test")
self.build.setProperty("myproperty", "/myproperty", "test")
self.expect_commands(
ExpectShell(workdir='/myproperty', command=['cmd', 'arg'])
.exit(0)
Expand Down
12 changes: 6 additions & 6 deletions master/buildbot/test/unit/steps/test_cmake.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ def test_cmake_interpolation(self):
value = 'Real_CMAKE'

self.setup_step(CMake(cmake=Property(prop)))
self.properties.setProperty(prop, value, source='test')
self.build.setProperty(prop, value, source='test')

self.expect_commands(
ExpectShell(command=[value], workdir='wkdir').exit(0))
Expand Down Expand Up @@ -100,13 +100,13 @@ def test_definitions_interpolation(self):
}

self.setup_step(CMake(definitions=definitions))
self.properties.setProperty('b', 'real_b', source='test')
self.build.setProperty('b', 'real_b', source='test')
self.expect_and_run_command('-Da=real_b')

def test_definitions_renderable(self):
definitions = Property('b')
self.setup_step(CMake(definitions=definitions))
self.properties.setProperty('b', {'a': 'real_b'}, source='test')
self.build.setProperty('b', {'a': 'real_b'}, source='test')
self.expect_and_run_command('-Da=real_b')

def test_generator(self):
Expand All @@ -119,7 +119,7 @@ def test_generator_interpolation(self):
value = 'Our_GENERATOR'

self.setup_step(CMake(generator=Property('GENERATOR')))
self.properties.setProperty('GENERATOR', value, source='test')
self.build.setProperty('GENERATOR', value, source='test')

self.expect_and_run_command('-G', value)

Expand All @@ -134,7 +134,7 @@ def test_options_interpolation(self):
value = 'value'

self.setup_step(CMake(options=(Property(prop),)))
self.properties.setProperty(prop, value, source='test')
self.build.setProperty(prop, value, source='test')
self.expect_and_run_command(value)

def test_path(self):
Expand All @@ -148,7 +148,7 @@ def test_path_interpolation(self):
value = 'some/path'

self.setup_step(CMake(path=Property(prop)))
self.properties.setProperty(prop, value, source='test')
self.build.setProperty(prop, value, source='test')
self.expect_and_run_command(value)

def test_options_path(self):
Expand Down
3 changes: 1 addition & 2 deletions master/buildbot/test/unit/steps/test_http.py
Original file line number Diff line number Diff line change
Expand Up @@ -209,8 +209,7 @@ def test_hidden_header(self):
def test_params_renderable(self):
url = self.getURL()
self.setup_step(http.GET(url, params=properties.Property("x")))
self.properties.setProperty(
'x', {'param_1': 'param_1', 'param_2': 2}, 'here')
self.build.setProperty("x", {"param_1": "param_1", "param_2": 2}, "here")
self.expect_log_file('log',
f"URL: {url}?param_1=param_1&param_2=2\nStatus: 200\n ------ Content ------\nOK")
self.expect_log_file('content', "OK")
Expand Down
20 changes: 9 additions & 11 deletions master/buildbot/test/unit/steps/test_master.py
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ def test_env_list_subst(self):
def test_prop_rendering(self):
self.setup_step(master.MasterShellCommand(command=Interpolate('%(prop:project)s-BUILD'),
workdir='build'))
self.properties.setProperty("project", "BUILDBOT-TEST", "TEST")
self.build.setProperty("project", "BUILDBOT-TEST", "TEST")

if runtime.platformType == 'win32':
exp_argv = [r'C:\WINDOWS\system32\cmd.exe', '/c', 'BUILDBOT-TEST-BUILD']
Expand Down Expand Up @@ -177,9 +177,9 @@ def tearDown(self):
def test_simple(self):
self.setup_step(master.SetProperty(property="testProperty", value=Interpolate(
"sch=%(prop:scheduler)s, worker=%(prop:workername)s")))
self.properties.setProperty(
self.build.setProperty(
'scheduler', 'force', source='SetProperty', runtime=True)
self.properties.setProperty(
self.build.setProperty(
'workername', 'testWorker', source='SetProperty', runtime=True)
self.expect_outcome(result=SUCCESS, state_string="Set")
self.expect_property(
Expand All @@ -200,10 +200,8 @@ def tearDown(self):
def test_simple(self):
self.setup_step(master.LogRenderable(
content=Interpolate('sch=%(prop:scheduler)s, worker=%(prop:workername)s')))
self.properties.setProperty(
'scheduler', 'force', source='TestSetProperty', runtime=True)
self.properties.setProperty(
'workername', 'testWorker', source='TestSetProperty', runtime=True)
self.build.setProperty("scheduler", "force", source="TestSetProperty", runtime=True)
self.build.setProperty("workername", "testWorker", source="TestSetProperty", runtime=True)
self.expect_outcome(result=SUCCESS, state_string='Logged')
self.expect_log_file(
'Output', pprint.pformat('sch=force, worker=testWorker'))
Expand Down Expand Up @@ -256,14 +254,14 @@ def tearDown(self):
def test_eq_pass(self):
self.setup_step(master.Assert(
Property("test_prop") == "foo"))
self.properties.setProperty("test_prop", "foo", "bar")
self.build.setProperty("test_prop", "foo", "bar")
self.expect_outcome(result=SUCCESS)
return self.run_step()

def test_eq_fail(self):
self.setup_step(master.Assert(
Property("test_prop") == "bar"))
self.properties.setProperty("test_prop", "foo", "bar")
self.build.setProperty("test_prop", "foo", "bar")
self.expect_outcome(result=FAILURE)
return self.run_step()

Expand All @@ -272,7 +270,7 @@ def test_renderable_pass(self):
def test_renderer(props):
return props.getProperty("test_prop") == "foo"
self.setup_step(master.Assert(test_renderer))
self.properties.setProperty("test_prop", "foo", "bar")
self.build.setProperty("test_prop", "foo", "bar")
self.expect_outcome(result=SUCCESS)
return self.run_step()

Expand All @@ -281,6 +279,6 @@ def test_renderable_fail(self):
def test_renderer(props):
return props.getProperty("test_prop") == "bar"
self.setup_step(master.Assert(test_renderer))
self.properties.setProperty("test_prop", "foo", "bar")
self.build.setProperty("test_prop", "foo", "bar")
self.expect_outcome(result=FAILURE)
return self.run_step()
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ def test_define_none(self):
def test_renderable_dist(self):
self.setup_step(rpmbuild.RpmBuild(specfile="foo.spec",
dist=Interpolate('%(prop:renderable_dist)s')))
self.properties.setProperty('renderable_dist', '.el7', 'test')
self.build.setProperty('renderable_dist', '.el7', 'test')
self.expect_commands(
ExpectShell(workdir='wkdir', command='rpmbuild --define "_topdir '
'`pwd`" --define "_builddir `pwd`" --define "_rpmdir '
Expand Down
4 changes: 2 additions & 2 deletions master/buildbot/test/unit/steps/test_python_twisted.py
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,7 @@ def test_renderable_properties(self):
self.setup_step(python_twisted.Trial(workdir='build',
tests=Property('test_list'),
testpath=None))
self.properties.setProperty('test_list', ['testname'], 'Test')
self.build.setProperty('test_list', ['testname'], 'Test')

self.expect_commands(
ExpectShell(workdir='build',
Expand Down Expand Up @@ -334,7 +334,7 @@ def test_run_jobsProperties(self):
tests='testname',
jobs=Property('jobs_count'),
testpath=None))
self.properties.setProperty('jobs_count', '2', 'Test')
self.build.setProperty('jobs_count', '2', 'Test')

self.expect_commands(
ExpectShell(workdir='build',
Expand Down
6 changes: 3 additions & 3 deletions master/buildbot/test/unit/steps/test_shellsequence.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ def testShellArgsAreRendered(self):
self.setup_step(
shellsequence.ShellSequence(commands=[arg1],
workdir='build'))
self.properties.setProperty("project", "BUILDBOT-TEST", "TEST")
self.build.setProperty("project", "BUILDBOT-TEST", "TEST")
self.expect_commands(ExpectShell(workdir='build', command='make BUILDBOT-TEST').exit(0))
# TODO: need to factor command-summary stuff into a utility method and
# use it here
Expand Down Expand Up @@ -169,15 +169,15 @@ def testShellArgsAreRenderedAnewAtEachBuild(self):

# First "build"
self.setup_step(step)
self.properties.setProperty("project", "BUILDBOT-TEST-1", "TEST")
self.build.setProperty("project", "BUILDBOT-TEST-1", "TEST")
self.expect_commands(ExpectShell(workdir='build', command='make BUILDBOT-TEST-1').exit(0))
self.expect_outcome(result=SUCCESS,
state_string="'make BUILDBOT-TEST-1'")
yield self.run_step()

# Second "build"
self.setup_step(step)
self.properties.setProperty("project", "BUILDBOT-TEST-2", "TEST")
self.build.setProperty("project", "BUILDBOT-TEST-2", "TEST")
self.expect_commands(ExpectShell(workdir='build', command='make BUILDBOT-TEST-2').exit(0))
self.expect_outcome(result=SUCCESS,
state_string="'make BUILDBOT-TEST-2'")
Expand Down
2 changes: 1 addition & 1 deletion master/buildbot/test/unit/steps/test_source_p4.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ def setup_step(self, step, args=None, patch=None, **kwargs):
if _is_windows:
workspace_dir = r'C:\Users\username\Workspace'
self.build.path_module = reflect.namedModule("ntpath")
self.properties.setProperty('builddir', workspace_dir, 'P4')
self.build.setProperty('builddir', workspace_dir, 'P4')

def test_no_empty_step_config(self):
with self.assertRaisesConfigError('You must provide p4base or p4viewspec'):
Expand Down
18 changes: 9 additions & 9 deletions master/buildbot/test/unit/steps/test_trigger.py
Original file line number Diff line number Diff line change
Expand Up @@ -409,7 +409,7 @@ def test_updateSourceStamp_prop_false(self):
],
gotRevisionsInBuild={'': 23456},
)
self.properties.setProperty('usess', False, 'me')
self.build.setProperty('usess', False, 'me')
self.expect_outcome(result=SUCCESS)
# didn't use got_revision
self.expectTriggeredWith(
Expand All @@ -428,7 +428,7 @@ def test_updateSourceStamp_prop_true(self):
],
gotRevisionsInBuild={'': 23456},
)
self.properties.setProperty('usess', True, 'me')
self.build.setProperty('usess', True, 'me')
self.expect_outcome(result=SUCCESS)
# didn't use got_revision
self.expectTriggeredWith(
Expand Down Expand Up @@ -457,7 +457,7 @@ def test_alwaysUseLatest_prop_false(self):
repository='x',
revision=11111)
])
self.properties.setProperty('aul', False, 'me')
self.build.setProperty('aul', False, 'me')
self.expect_outcome(result=SUCCESS)
# didn't use latest
self.expectTriggeredWith(
Expand All @@ -472,7 +472,7 @@ def test_alwaysUseLatest_prop_true(self):
repository='x',
revision=11111)
])
self.properties.setProperty('aul', True, 'me')
self.build.setProperty('aul', True, 'me')
self.expect_outcome(result=SUCCESS)
# didn't use latest
self.expectTriggeredWith(b=(False, [], {}))
Expand Down Expand Up @@ -535,7 +535,7 @@ def test_set_of_sourceStamps_override_build(self):
def test_sourceStamp_prop(self):
ss = {"revision": properties.Property('rev'), "branch": 'dev'}
yield self.setup_step(trigger.Trigger(schedulerNames=['b'], sourceStamp=ss))
self.properties.setProperty('rev', 602, 'me')
self.build.setProperty('rev', 602, 'me')
expected_ss = {"revision": 602, "branch": 'dev'}
self.expect_outcome(result=SUCCESS)
self.expectTriggeredWith(b=(False, [expected_ss], {}))
Expand Down Expand Up @@ -609,7 +609,7 @@ def test_set_properties_prop(self):
yield self.setup_step(trigger.Trigger(
schedulerNames=['a'],
set_properties={"x": properties.Property('X'), "y": 2}))
self.properties.setProperty('X', 'xxx', 'here')
self.build.setProperty('X', 'xxx', 'here')
self.expect_outcome(result=SUCCESS)
self.expectTriggeredWith(a=(False, [],
{"x": ('xxx', 'Trigger'), "y": (2, 'Trigger')}))
Expand All @@ -619,9 +619,9 @@ def test_set_properties_prop(self):
def test_copy_properties(self):
yield self.setup_step(trigger.Trigger(schedulerNames=['a'],
copy_properties=['a', 'b']))
self.properties.setProperty('a', 'A', 'AA')
self.properties.setProperty('b', 'B', 'BB')
self.properties.setProperty('c', 'C', 'CC')
self.build.setProperty('a', 'A', 'AA')
self.build.setProperty('b', 'B', 'BB')
self.build.setProperty('c', 'C', 'CC')
self.expect_outcome(result=SUCCESS)
self.expectTriggeredWith(a=(False, [],
{"a": ('A', 'Trigger'), "b": ('B', 'Trigger')}))
Expand Down
8 changes: 4 additions & 4 deletions master/buildbot/test/unit/steps/test_vstudio.py
Original file line number Diff line number Diff line change
Expand Up @@ -338,9 +338,9 @@ def test_rendering(self):
projectfile=Property('a'),
config=Property('b'),
project=Property('c')))
self.properties.setProperty('a', 'aa', 'Test')
self.properties.setProperty('b', 'bb', 'Test')
self.properties.setProperty('c', 'cc', 'Test')
self.build.setProperty('a', 'aa', 'Test')
self.build.setProperty('b', 'bb', 'Test')
self.build.setProperty('c', 'cc', 'Test')
self.expect_commands(
ExpectShell(workdir='wkdir',
command=['command', 'here'])
Expand Down Expand Up @@ -647,7 +647,7 @@ def test_clean(self):
def test_rendering(self):
self.setup_step(vstudio.VC8(projectfile='pf', config='cfg',
arch=Property('a')))
self.properties.setProperty('a', 'x64', 'Test')
self.build.setProperty('a', 'x64', 'Test')
self.expect_commands(
ExpectShell(workdir='wkdir',
command=['devenv.com', 'pf', '/Rebuild', 'cfg'],
Expand Down

0 comments on commit 7845207

Please sign in to comment.