aboutsummaryrefslogtreecommitdiffstats
path: root/lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/test/unit/test_scripts_upgrade_master.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/test/unit/test_scripts_upgrade_master.py')
-rw-r--r--lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/test/unit/test_scripts_upgrade_master.py258
1 files changed, 0 insertions, 258 deletions
diff --git a/lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/test/unit/test_scripts_upgrade_master.py b/lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/test/unit/test_scripts_upgrade_master.py
deleted file mode 100644
index 1023d005..00000000
--- a/lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/test/unit/test_scripts_upgrade_master.py
+++ /dev/null
@@ -1,258 +0,0 @@
-# This file is part of Buildbot. Buildbot is free software: you can
-# redistribute it and/or modify it under the terms of the GNU General Public
-# License as published by the Free Software Foundation, version 2.
-#
-# This program is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
-# details.
-#
-# You should have received a copy of the GNU General Public License along with
-# this program; if not, write to the Free Software Foundation, Inc., 51
-# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Copyright Buildbot Team Members
-
-from __future__ import with_statement
-
-import os
-import mock
-from twisted.trial import unittest
-from twisted.internet import defer
-from buildbot.scripts import upgrade_master
-from buildbot import config as config_module
-from buildbot.db import connector, model
-from buildbot.test.util import dirs, misc, compat
-
-def mkconfig(**kwargs):
- config = dict(quiet=False, replace=False, basedir='test')
- config.update(kwargs)
- return config
-
-class TestUpgradeMaster(dirs.DirsMixin, misc.StdoutAssertionsMixin,
- unittest.TestCase):
-
- def setUp(self):
- # createMaster is decorated with @in_reactor, so strip that decoration
- # since the master is already running
- self.patch(upgrade_master, 'upgradeMaster',
- upgrade_master.upgradeMaster._orig)
- self.setUpDirs('test')
- self.setUpStdoutAssertions()
-
- def patchFunctions(self, basedirOk=True, configOk=True):
- self.calls = []
-
- def checkBasedir(config):
- self.calls.append('checkBasedir')
- return basedirOk
- self.patch(upgrade_master, 'checkBasedir', checkBasedir)
-
- def loadConfig(config, configFileName='master.cfg'):
- self.calls.append('loadConfig')
- return config_module.MasterConfig() if configOk else False
- self.patch(upgrade_master, 'loadConfig', loadConfig)
-
- def upgradeFiles(config):
- self.calls.append('upgradeFiles')
- self.patch(upgrade_master, 'upgradeFiles', upgradeFiles)
-
- def upgradeDatabase(config, master_cfg):
- self.assertIsInstance(master_cfg, config_module.MasterConfig)
- self.calls.append('upgradeDatabase')
- self.patch(upgrade_master, 'upgradeDatabase', upgradeDatabase)
-
- # tests
-
- def test_upgradeMaster_success(self):
- self.patchFunctions()
- d = upgrade_master.upgradeMaster(mkconfig(), _noMonkey=True)
- @d.addCallback
- def check(rv):
- self.assertEqual(rv, 0)
- self.assertInStdout('upgrade complete')
- return d
-
- def test_upgradeMaster_quiet(self):
- self.patchFunctions()
- d = upgrade_master.upgradeMaster(mkconfig(quiet=True), _noMonkey=True)
- @d.addCallback
- def check(rv):
- self.assertEqual(rv, 0)
- self.assertWasQuiet()
- return d
-
- def test_upgradeMaster_bad_basedir(self):
- self.patchFunctions(basedirOk=False)
- d = upgrade_master.upgradeMaster(mkconfig(), _noMonkey=True)
- @d.addCallback
- def check(rv):
- self.assertEqual(rv, 1)
- return d
-
- def test_upgradeMaster_bad_config(self):
- self.patchFunctions(configOk=False)
- d = upgrade_master.upgradeMaster(mkconfig(), _noMonkey=True)
- @d.addCallback
- def check(rv):
- self.assertEqual(rv, 1)
- return d
-
-class TestUpgradeMasterFunctions(dirs.DirsMixin, misc.StdoutAssertionsMixin,
- unittest.TestCase):
-
- def setUp(self):
- self.setUpDirs('test')
- self.basedir = os.path.abspath(os.path.join('test', 'basedir'))
- self.setUpStdoutAssertions()
-
- def tearDown(self):
- self.tearDownDirs()
-
- def activeBasedir(self):
- with open(os.path.join('test', 'buildbot.tac'), 'wt') as f:
- f.write("Application('buildmaster')")
-
- def writeFile(self, path, contents):
- with open(path, 'wt') as f:
- f.write(contents)
-
- def readFile(self, path):
- with open(path, 'rt') as f:
- return f.read()
-
- # tests
-
- def test_checkBasedir(self):
- self.activeBasedir()
- rv = upgrade_master.checkBasedir(mkconfig())
- self.assertTrue(rv)
- self.assertInStdout('checking basedir')
-
- def test_checkBasedir_quiet(self):
- self.activeBasedir()
- rv = upgrade_master.checkBasedir(mkconfig(quiet=True))
- self.assertTrue(rv)
- self.assertWasQuiet()
-
- def test_checkBasedir_no_dir(self):
- rv = upgrade_master.checkBasedir(mkconfig(basedir='doesntexist'))
- self.assertFalse(rv)
- self.assertInStdout('invalid buildmaster directory')
-
- @compat.skipUnlessPlatformIs('posix')
- def test_checkBasedir_active_pidfile(self):
- self.activeBasedir()
- open(os.path.join('test', 'twistd.pid'), 'w').close()
- rv = upgrade_master.checkBasedir(mkconfig())
- self.assertFalse(rv)
- self.assertInStdout('still running')
-
- def test_loadConfig(self):
- @classmethod
- def loadConfig(cls, basedir, filename):
- return config_module.MasterConfig()
- self.patch(config_module.MasterConfig, 'loadConfig', loadConfig)
- cfg = upgrade_master.loadConfig(mkconfig())
- self.assertIsInstance(cfg, config_module.MasterConfig)
- self.assertInStdout('checking')
-
- def test_loadConfig_ConfigErrors(self):
- @classmethod
- def loadConfig(cls, basedir, filename):
- raise config_module.ConfigErrors(['oh noes'])
- self.patch(config_module.MasterConfig, 'loadConfig', loadConfig)
- cfg = upgrade_master.loadConfig(mkconfig())
- self.assertIdentical(cfg, None)
- self.assertInStdout('oh noes')
-
- def test_loadConfig_exception(self):
- @classmethod
- def loadConfig(cls, basedir, filename):
- raise RuntimeError()
- self.patch(config_module.MasterConfig, 'loadConfig', loadConfig)
- cfg = upgrade_master.loadConfig(mkconfig())
- self.assertIdentical(cfg, None)
- self.assertInStdout('RuntimeError')
-
- def test_installFile(self):
- self.writeFile('test/srcfile', 'source data')
- upgrade_master.installFile(mkconfig(), 'test/destfile', 'test/srcfile')
- self.assertEqual(self.readFile('test/destfile'), 'source data')
- self.assertInStdout('creating test/destfile')
-
- def test_installFile_existing_differing(self):
- self.writeFile('test/srcfile', 'source data')
- self.writeFile('test/destfile', 'dest data')
- upgrade_master.installFile(mkconfig(), 'test/destfile', 'test/srcfile')
- self.assertEqual(self.readFile('test/destfile'), 'dest data')
- self.assertEqual(self.readFile('test/destfile.new'), 'source data')
- self.assertInStdout('writing new contents to')
-
- def test_installFile_existing_differing_overwrite(self):
- self.writeFile('test/srcfile', 'source data')
- self.writeFile('test/destfile', 'dest data')
- upgrade_master.installFile(mkconfig(), 'test/destfile', 'test/srcfile',
- overwrite=True)
- self.assertEqual(self.readFile('test/destfile'), 'source data')
- self.assertFalse(os.path.exists('test/destfile.new'))
- self.assertInStdout('overwriting')
-
- def test_installFile_existing_same(self):
- self.writeFile('test/srcfile', 'source data')
- self.writeFile('test/destfile', 'source data')
- upgrade_master.installFile(mkconfig(), 'test/destfile', 'test/srcfile')
- self.assertEqual(self.readFile('test/destfile'), 'source data')
- self.assertFalse(os.path.exists('test/destfile.new'))
- self.assertWasQuiet()
-
- def test_installFile_quiet(self):
- self.writeFile('test/srcfile', 'source data')
- upgrade_master.installFile(mkconfig(quiet=True), 'test/destfile',
- 'test/srcfile')
- self.assertWasQuiet()
-
- def test_upgradeFiles(self):
- upgrade_master.upgradeFiles(mkconfig())
- for f in [
- 'test/public_html',
- 'test/public_html/bg_gradient.jpg',
- 'test/public_html/default.css',
- 'test/public_html/robots.txt',
- 'test/public_html/favicon.ico',
- 'test/templates',
- 'test/master.cfg.sample',
- ]:
- self.assertTrue(os.path.exists(f), "%s not found" % f)
- self.assertInStdout('upgrading basedir')
-
- def test_upgradeFiles_rename_index_html(self):
- os.mkdir('test/public_html')
- self.writeFile('test/public_html/index.html', 'INDEX')
- upgrade_master.upgradeFiles(mkconfig())
- self.assertFalse(os.path.exists("test/public_html/index.html"))
- self.assertEqual(self.readFile("test/templates/root.html"), 'INDEX')
- self.assertInStdout('Moving ')
-
- def test_upgradeFiles_index_html_collision(self):
- os.mkdir('test/public_html')
- self.writeFile('test/public_html/index.html', 'INDEX')
- os.mkdir('test/templates')
- self.writeFile('test/templates/root.html', 'ROOT')
- upgrade_master.upgradeFiles(mkconfig())
- self.assertTrue(os.path.exists("test/public_html/index.html"))
- self.assertEqual(self.readFile("test/templates/root.html"), 'ROOT')
- self.assertInStdout('Decide')
-
- @defer.inlineCallbacks
- def test_upgradeDatabase(self):
- setup = mock.Mock(side_effect=lambda **kwargs : defer.succeed(None))
- self.patch(connector.DBConnector, 'setup', setup)
- upgrade = mock.Mock(side_effect=lambda **kwargs : defer.succeed(None))
- self.patch(model.Model, 'upgrade', upgrade)
- yield upgrade_master.upgradeDatabase(
- mkconfig(basedir='test', quiet=True),
- config_module.MasterConfig())
- setup.asset_called_with(check_version=False, verbose=False)
- upgrade.assert_called()
- self.assertWasQuiet()