本文整理匯總了Python中poweradminurt.PoweradminurtPlugin.onLoadConfig方法的典型用法代碼示例。如果您正苦於以下問題:Python PoweradminurtPlugin.onLoadConfig方法的具體用法?Python PoweradminurtPlugin.onLoadConfig怎麽用?Python PoweradminurtPlugin.onLoadConfig使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類poweradminurt.PoweradminurtPlugin
的用法示例。
在下文中一共展示了PoweradminurtPlugin.onLoadConfig方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: mixin_cmd_version
# 需要導入模塊: from poweradminurt import PoweradminurtPlugin [as 別名]
# 或者: from poweradminurt.PoweradminurtPlugin import onLoadConfig [as 別名]
class mixin_cmd_version(object):
def setUp(self):
super(mixin_cmd_version, self).setUp()
self.conf = CfgConfigParser()
self.conf.loadFromString("""
[commands]
paversion-version: 20
""")
self.p = PoweradminurtPlugin(self.console, self.conf)
self.init_default_cvar()
self.p.onLoadConfig()
self.p.onStartup()
self.sleep_patcher = patch.object(time, 'sleep')
self.sleep_patcher.start()
self.console.say = Mock()
self.console.saybig = Mock()
self.console.write = Mock()
self.moderator.connects("2")
def tearDown(self):
super(mixin_cmd_version, self).tearDown()
self.sleep_patcher.stop()
def test_nominal(self):
self.moderator.message_history = []
self.moderator.says("!version")
self.assertEqual(['I am PowerAdminUrt version %s by %s' % (plugin_version, plugin_author)], self.moderator.message_history)
示例2: Test_cmd_lms
# 需要導入模塊: from poweradminurt import PoweradminurtPlugin [as 別名]
# 或者: from poweradminurt.PoweradminurtPlugin import onLoadConfig [as 別名]
class Test_cmd_lms(Iourt42TestCase):
def setUp(self):
super(Test_cmd_lms, self).setUp()
self.conf = CfgConfigParser()
self.conf.loadFromString("""
[commands]
palms-lms: 20 ; change game type to Last Man Standing
""")
self.p = PoweradminurtPlugin(self.console, self.conf)
when(self.console).getCvar('timelimit').thenReturn(Cvar('timelimit', value=20))
when(self.console).getCvar('g_maxGameClients').thenReturn(Cvar('g_maxGameClients', value=16))
when(self.console).getCvar('sv_maxclients').thenReturn(Cvar('sv_maxclients', value=16))
when(self.console).getCvar('sv_privateClients').thenReturn(Cvar('sv_privateClients', value=0))
when(self.console).getCvar('g_allowvote').thenReturn(Cvar('g_allowvote', value=0))
self.p.onLoadConfig()
self.p.onStartup()
self.console.say = Mock()
self.console.write = Mock()
self.moderator.connects("2")
def test_nominal(self):
self.moderator.message_history = []
self.moderator.says("!lms")
self.console.write.assert_has_calls([call('g_gametype 1')])
self.assertEqual(['game type changed to Last Man Standing'], self.moderator.message_history)
示例3: mixin_cmd_nuke
# 需要導入模塊: from poweradminurt import PoweradminurtPlugin [as 別名]
# 或者: from poweradminurt.PoweradminurtPlugin import onLoadConfig [as 別名]
class mixin_cmd_nuke(object):
def setUp(self):
super(mixin_cmd_nuke, self).setUp()
self.conf = CfgConfigParser()
self.conf.loadFromString("""
[commands]
panuke-nuke: 20
""")
self.p = PoweradminurtPlugin(self.console, self.conf)
self.init_default_cvar()
self.p.onLoadConfig()
self.p.onStartup()
self.sleep_patcher = patch.object(time, 'sleep')
self.sleep_patcher.start()
self.console.say = Mock()
self.console.saybig = Mock()
self.console.write = Mock()
self.moderator.connects("2")
def tearDown(self):
super(mixin_cmd_nuke, self).tearDown()
self.sleep_patcher.stop()
def test_no_argument(self):
self.moderator.message_history = []
self.moderator.says("!nuke")
self.assertEqual(['Invalid data, try !help panuke'], self.moderator.message_history)
self.console.write.assert_has_calls([])
def test_unknown_player(self):
self.moderator.message_history = []
self.moderator.says("!nuke f00")
self.assertEqual(['No players found matching f00'], self.moderator.message_history)
self.console.write.assert_has_calls([])
def test_joe(self):
self.joe.connects('3')
self.moderator.message_history = []
self.moderator.says("!nuke joe")
self.assertEqual([], self.moderator.message_history)
self.assertEqual([], self.joe.message_history)
self.console.write.assert_has_calls([call('nuke 3')])
def test_joe_multi(self):
def _start_new_thread(function, args):
function(*args)
with patch.object(thread, 'start_new_thread', wraps=_start_new_thread):
self.joe.connects('3')
self.moderator.message_history = []
self.moderator.says("!nuke joe 3")
self.assertEqual([], self.moderator.message_history)
self.assertEqual([], self.joe.message_history)
self.console.write.assert_has_calls([call('nuke 3'), call('nuke 3'), call('nuke 3')])
示例4: Test_cmd_goto
# 需要導入模塊: from poweradminurt import PoweradminurtPlugin [as 別名]
# 或者: from poweradminurt.PoweradminurtPlugin import onLoadConfig [as 別名]
class Test_cmd_goto(Iourt42TestCase):
def setUp(self):
super(Test_cmd_goto, self).setUp()
self.conf = CfgConfigParser()
self.conf.loadFromString("""
[commands]
paskins-skins: 20 ; set the use of client skins <on/off>
""")
self.p = PoweradminurtPlugin(self.console, self.conf)
self.init_default_cvar()
self.p.onLoadConfig()
self.p.onStartup()
self.console.say = Mock()
self.console.write = Mock()
self.moderator.connects("2")
def test_missing_parameter(self):
self.moderator.message_history = []
self.moderator.says("!skins")
self.assertListEqual(["Invalid or missing data, try !help paskins"], self.moderator.message_history)
def test_junk(self):
self.moderator.message_history = []
self.moderator.says("!skins qsdf")
self.assertListEqual(["Invalid or missing data, try !help paskins"], self.moderator.message_history)
def test_on(self):
self.moderator.says("!skins on")
self.console.write.assert_has_calls([call('set g_skins "1"')])
def test_off(self):
self.moderator.says("!skins off")
self.console.write.assert_has_calls([call('set g_skins "0"')])
示例5: mixin_cmd_pasetnextmap
# 需要導入模塊: from poweradminurt import PoweradminurtPlugin [as 別名]
# 或者: from poweradminurt.PoweradminurtPlugin import onLoadConfig [as 別名]
class mixin_cmd_pasetnextmap(object):
def setUp(self):
super(mixin_cmd_pasetnextmap, self).setUp()
self.conf = CfgConfigParser()
self.conf.loadFromString("""
[commands]
pasetnextmap-snmap: 20
""")
self.p = PoweradminurtPlugin(self.console, self.conf)
when(self.console).getCvar('timelimit').thenReturn(Cvar('timelimit', value=20))
when(self.console).getCvar('g_maxGameClients').thenReturn(Cvar('g_maxGameClients', value=16))
when(self.console).getCvar('sv_maxclients').thenReturn(Cvar('sv_maxclients', value=16))
when(self.console).getCvar('sv_privateClients').thenReturn(Cvar('sv_privateClients', value=0))
when(self.console).getCvar('g_allowvote').thenReturn(Cvar('g_allowvote', value=0))
self.p.onLoadConfig()
self.p.onStartup()
self.sleep_patcher = patch.object(time, 'sleep')
self.sleep_patcher.start()
self.console.say = Mock()
self.console.saybig = Mock()
self.console.write = Mock()
self.moderator.connects("2")
def tearDown(self):
super(mixin_cmd_pasetnextmap, self).tearDown()
self.sleep_patcher.stop()
def test_missing_parameter(self):
self.moderator.clearMessageHistory()
self.moderator.says("!snmap")
self.assertEqual(['Invalid or missing data, try !help setnextmap'], self.moderator.message_history)
def test_existing_map(self):
# GIVEN
when(self.console).getMapsSoundingLike('f00').thenReturn('f00')
# WHEN
self.moderator.clearMessageHistory()
self.moderator.says("!snmap f00")
# THEN
verify(self.console).getMapsSoundingLike('f00')
self.assertEqual(['nextmap set to f00'], self.moderator.message_history)
def test_suggestions(self):
# GIVEN
when(self.console).getMapsSoundingLike('f00').thenReturn(['f001', 'foo2'])
# WHEN
self.moderator.clearMessageHistory()
self.moderator.says("!snmap f00")
# THEN
verify(self.console).getMapsSoundingLike('f00')
self.assertEqual(['do you mean : f001, foo2 ?'], self.moderator.message_history)
示例6: Test_cmd_ident
# 需要導入模塊: from poweradminurt import PoweradminurtPlugin [as 別名]
# 或者: from poweradminurt.PoweradminurtPlugin import onLoadConfig [as 別名]
class Test_cmd_ident(Iourt41TestCase):
def setUp(self):
super(Test_cmd_ident, self).setUp()
self.conf = CfgConfigParser()
self.conf.loadFromString("""
[commands]
paident-id: 20
[special]
paident_full_level: 40
""")
self.p = PoweradminurtPlugin(self.console, self.conf)
self.init_default_cvar()
self.parser_conf._settings.update({'b3': {"time_zone": "GMT", "time_format": "%I:%M%p %Z %m/%d/%y"}})
self.p.onLoadConfig()
self.p.onStartup()
self.console.say = Mock()
self.console.write = Mock()
self.moderator.connects("2")
self.moderator.message_history = []
def test_no_parameter(self):
# WHEN
self.moderator.says("!id")
# THEN
self.assertListEqual(["Your id is @2"], self.moderator.message_history)
def test_junk(self):
# WHEN
self.moderator.says("!id qsdfsqdq sqfd qf")
# THEN
self.assertListEqual(["No players found matching qsdfsqdq"], self.moderator.message_history)
def test_nominal_under_full_level(self):
# GIVEN
self.joe.pbid = "joe_pbid"
self.joe.connects('3')
# WHEN
with patch('time.time', return_value=0.0) as time_mock:
self.moderator.says("!id joe")
# THEN
self.assertListEqual(['12:00AM GMT 01/01/70 @3 Joe'], self.moderator.message_history)
def test_nominal_above_full_level(self):
# GIVEN
self.joe.pbid = "joe_pbid"
self.joe.connects('3')
self.joe.timeAdd = 90*60.0
self.superadmin.connects('1')
# WHEN
with patch('time.time', return_value=180*60.0):
self.superadmin.says("!id joe")
# THEN
self.assertListEqual(['03:00AM GMT 01/01/70 @3 Joe 01:30AM GMT 01/01/70'], self.superadmin.message_history)
示例7: mixin_conf
# 需要導入模塊: from poweradminurt import PoweradminurtPlugin [as 別名]
# 或者: from poweradminurt.PoweradminurtPlugin import onLoadConfig [as 別名]
class mixin_conf(object):
def setUp(self):
super(mixin_conf, self).setUp()
self.conf = CfgConfigParser()
self.p = PoweradminurtPlugin(self.console, self.conf)
# when starting the PoweradminurtPlugin expects the game server to provide a few cvar values
when(self.console).getCvar('timelimit').thenReturn(Cvar('timelimit', value=20))
when(self.console).getCvar('g_maxGameClients').thenReturn(Cvar('g_maxGameClients', value=16))
when(self.console).getCvar('sv_maxclients').thenReturn(Cvar('sv_maxclients', value=16))
when(self.console).getCvar('sv_privateClients').thenReturn(Cvar('sv_privateClients', value=0))
when(self.console).getCvar('g_allowvote').thenReturn(Cvar('g_allowvote', value=0))
logger = logging.getLogger('output')
logger.setLevel(logging.INFO)
def test_empty_config(self):
self.conf.loadFromString("""
[foo]
""")
self.p.onLoadConfig()
# should not raise any error
####################################### matchmode #######################################
def test_matchmode__plugins_disable(self):
# empty
self.conf.loadFromString("""
[matchmode]
plugins_disable:
""")
self.p.LoadMatchMode()
self.assertEqual([], self.p.match_plugin_disable)
# one element
self.conf.loadFromString("""
[matchmode]
plugins_disable: foo
""")
self.p.LoadMatchMode()
self.assertEqual(['foo'], self.p.match_plugin_disable)
# many
self.conf.loadFromString("""
[matchmode]
plugins_disable: foo, bar
""")
self.p.LoadMatchMode()
self.assertEqual(['foo', 'bar'], self.p.match_plugin_disable)
示例8: mixin_cmd_paset
# 需要導入模塊: from poweradminurt import PoweradminurtPlugin [as 別名]
# 或者: from poweradminurt.PoweradminurtPlugin import onLoadConfig [as 別名]
class mixin_cmd_paset(object):
def setUp(self):
super(mixin_cmd_paset, self).setUp()
self.conf = CfgConfigParser()
self.conf.loadFromString(
"""
[commands]
paset: 20
"""
)
self.p = PoweradminurtPlugin(self.console, self.conf)
self.init_default_cvar()
self.p.onLoadConfig()
self.p.onStartup()
self.sleep_patcher = patch.object(time, "sleep")
self.sleep_patcher.start()
self.setCvar_patcher = patch.object(self.console, "setCvar")
self.setCvar_mock = self.setCvar_patcher.start()
self.moderator.connects("2")
def assert_setCvar_calls(self, expected_calls):
self.assertListEqual(expected_calls, self.setCvar_mock.mock_calls)
def tearDown(self):
super(mixin_cmd_paset, self).tearDown()
self.sleep_patcher.stop()
self.setCvar_patcher.stop()
def test_nominal(self):
# WHEN
self.moderator.says("!paset sv_foo bar")
# THEN
self.assert_setCvar_calls([call("sv_foo", "bar")])
self.assertListEqual([], self.moderator.message_history)
def test_no_parameter(self):
# WHEN
self.moderator.says("!paset")
# THEN
self.assert_setCvar_calls([])
self.assertListEqual(["Invalid or missing data, try !help paset"], self.moderator.message_history)
def test_no_value(self):
# WHEN
self.moderator.says("!paset sv_foo")
# THEN
self.assert_setCvar_calls([call("sv_foo", "")])
self.assertListEqual([], self.moderator.message_history)
示例9: Test_cmd_kill
# 需要導入模塊: from poweradminurt import PoweradminurtPlugin [as 別名]
# 或者: from poweradminurt.PoweradminurtPlugin import onLoadConfig [as 別名]
class Test_cmd_kill(Iourt42TestCase):
def setUp(self):
super(Test_cmd_kill, self).setUp()
self.conf = CfgConfigParser()
self.conf.loadFromString("""
[commands]
pakill-kill: 20
""")
self.p = PoweradminurtPlugin(self.console, self.conf)
when(self.console).getCvar('timelimit').thenReturn(Cvar('timelimit', value=20))
when(self.console).getCvar('g_maxGameClients').thenReturn(Cvar('g_maxGameClients', value=16))
when(self.console).getCvar('sv_maxclients').thenReturn(Cvar('sv_maxclients', value=16))
when(self.console).getCvar('sv_privateClients').thenReturn(Cvar('sv_privateClients', value=0))
when(self.console).getCvar('g_allowvote').thenReturn(Cvar('g_allowvote', value=0))
self.p.onLoadConfig()
self.p.onStartup()
self.console.say = Mock()
self.console.write = Mock()
self.moderator.connects("2")
def tearDown(self):
super(Test_cmd_kill, self).tearDown()
def test_no_argument(self):
self.moderator.message_history = []
self.moderator.says("!kill")
self.assertEqual(['Invalid data, try !help panuke'], self.moderator.message_history)
self.console.write.assert_has_calls([])
def test_unknown_player(self):
self.moderator.message_history = []
self.moderator.says("!kill f00")
self.assertEqual(['No players found matching f00'], self.moderator.message_history)
self.console.write.assert_has_calls([])
def test_joe(self):
self.joe.connects('3')
self.moderator.message_history = []
self.moderator.says("!kill joe")
self.assertEqual([], self.moderator.message_history)
self.assertEqual([], self.joe.message_history)
self.console.write.assert_has_calls([call('smite 3')])
示例10: Test_cmd_captain
# 需要導入模塊: from poweradminurt import PoweradminurtPlugin [as 別名]
# 或者: from poweradminurt.PoweradminurtPlugin import onLoadConfig [as 別名]
class Test_cmd_captain(Iourt42TestCase):
def setUp(self):
super(Test_cmd_captain, self).setUp()
self.conf = CfgConfigParser()
self.conf.loadFromString("""
[commands]
pacaptain-captain: 40 ; set the the given client as the captain for its team
""")
self.p = PoweradminurtPlugin(self.console, self.conf)
self.init_default_cvar()
self.p.onLoadConfig()
self.p.onStartup()
self.console.say = Mock()
self.console.write = Mock()
self.admin.connects("2")
self.moderator.connects("3")
def test_match_mode_deactivated(self):
self.p._matchmode = False
self.admin.message_history = []
self.admin.says("!captain")
self.assertListEqual(["!pacaptain command is available only in match mode"], self.admin.message_history)
def test_client_spectator(self):
self.p._matchmode = True
self.admin.message_history = []
self.admin.team = TEAM_SPEC
self.admin.says("!captain")
self.assertListEqual(["Level-40-Admin is a spectator! - Can't set captain status"], self.admin.message_history)
def test_client_with_no_parameters(self):
self.p._matchmode = True
self.admin.message_history = []
self.admin.team = TEAM_RED
self.admin.says("!captain")
self.console.write.assert_has_calls([call('forcecaptain %s' % self.admin.cid)])
def test_client_with_parameters(self):
self.p._matchmode = True
self.admin.message_history = []
self.admin.team = TEAM_RED
self.moderator.message_history = []
self.moderator.team = TEAM_BLUE
self.admin.says("!captain 3")
self.console.write.assert_has_calls([call('forcecaptain %s' % self.moderator.cid)])
self.assertListEqual(["You were set as captain for the BLUE team by the Admin"], self.moderator.message_history)
示例11: mixin_conf
# 需要導入模塊: from poweradminurt import PoweradminurtPlugin [as 別名]
# 或者: from poweradminurt.PoweradminurtPlugin import onLoadConfig [as 別名]
class mixin_conf(object):
def setUp(self):
super(mixin_conf, self).setUp()
self.conf = CfgConfigParser()
self.p = PoweradminurtPlugin(self.console, self.conf)
self.init_default_cvar()
logger = logging.getLogger('output')
logger.setLevel(logging.INFO)
def test_empty_config(self):
self.conf.loadFromString("""
[foo]
""")
self.p.onLoadConfig()
# should not raise any error
####################################### matchmode #######################################
def test_matchmode__plugins_disable(self):
# empty
self.conf.loadFromString("""
[matchmode]
plugins_disable:
""")
self.p.loadMatchMode()
self.assertEqual([], self.p._match_plugin_disable)
# one element
self.conf.loadFromString("""
[matchmode]
plugins_disable: foo
""")
self.p.loadMatchMode()
self.assertEqual(['foo'], self.p._match_plugin_disable)
# many
self.conf.loadFromString("""
[matchmode]
plugins_disable: foo, bar
""")
self.p.loadMatchMode()
self.assertEqual(['foo', 'bar'], self.p._match_plugin_disable)
示例12: Test_cmd_kill
# 需要導入模塊: from poweradminurt import PoweradminurtPlugin [as 別名]
# 或者: from poweradminurt.PoweradminurtPlugin import onLoadConfig [as 別名]
class Test_cmd_kill(Iourt42TestCase):
def setUp(self):
super(Test_cmd_kill, self).setUp()
self.conf = CfgConfigParser()
self.conf.loadFromString(
"""
[commands]
pakill-kill: 20
"""
)
self.p = PoweradminurtPlugin(self.console, self.conf)
self.init_default_cvar()
self.p.onLoadConfig()
self.p.onStartup()
self.console.say = Mock()
self.console.write = Mock()
self.moderator.connects("2")
def tearDown(self):
super(Test_cmd_kill, self).tearDown()
def test_no_argument(self):
self.moderator.message_history = []
self.moderator.says("!kill")
self.assertEqual(["Invalid data, try !help pakill"], self.moderator.message_history)
self.console.write.assert_has_calls([])
def test_unknown_player(self):
self.moderator.message_history = []
self.moderator.says("!kill f00")
self.assertEqual(["No players found matching f00"], self.moderator.message_history)
self.console.write.assert_has_calls([])
def test_joe(self):
self.joe.connects("3")
self.moderator.message_history = []
self.moderator.says("!kill joe")
self.assertEqual([], self.moderator.message_history)
self.assertEqual([], self.joe.message_history)
self.console.write.assert_has_calls([call("smite 3")])
示例13: Test_cmd_swap
# 需要導入模塊: from poweradminurt import PoweradminurtPlugin [as 別名]
# 或者: from poweradminurt.PoweradminurtPlugin import onLoadConfig [as 別名]
class Test_cmd_swap(Iourt42TestCase):
def setUp(self):
super(Test_cmd_swap, self).setUp()
self.conf = CfgConfigParser()
self.conf.loadFromString("""
[commands]
paswap-swap: 20
""")
self.p = PoweradminurtPlugin(self.console, self.conf)
self.init_default_cvar()
self.p.onLoadConfig()
self.p.onStartup()
self.console.say = Mock()
self.console.write = Mock()
self.admin.connects("2")
self.moderator.connects("3")
def test_plugin_using_overridden_command_method(self):
self.admin.team = TEAM_RED
self.moderator.team = TEAM_BLUE
self.admin.says("!swap 2 3")
self.console.write.assert_has_calls([call('swap %s %s' % (self.admin.cid, self.moderator.cid))])
示例14: Test_cmd_funstuff
# 需要導入模塊: from poweradminurt import PoweradminurtPlugin [as 別名]
# 或者: from poweradminurt.PoweradminurtPlugin import onLoadConfig [as 別名]
class Test_cmd_funstuff(Iourt42TestCase):
def setUp(self):
super(Test_cmd_funstuff, self).setUp()
self.conf = CfgConfigParser()
self.conf.loadFromString("""
[commands]
pastamina-stamina: 20 ; set the stamina behavior <default/regain/infinite>
""")
self.p = PoweradminurtPlugin(self.console, self.conf)
self.init_default_cvar()
self.p.onLoadConfig()
self.p.onStartup()
self.console.say = Mock()
self.console.write = Mock()
self.moderator.connects("2")
def test_missing_parameter(self):
self.moderator.message_history = []
self.moderator.says("!stamina")
self.assertListEqual(["Invalid or missing data, try !help pastamina"], self.moderator.message_history)
def test_junk(self):
self.moderator.message_history = []
self.moderator.says("!stamina qsdf")
self.assertListEqual(["Invalid or missing data, try !help pastamina"], self.moderator.message_history)
def test_default(self):
self.moderator.says("!stamina default")
self.console.write.assert_has_calls([call('set g_stamina "0"')])
def test_regain(self):
self.moderator.says("!stamina regain")
self.console.write.assert_has_calls([call('set g_stamina "1"')])
def test_infinite(self):
self.moderator.says("!stamina infinite")
self.console.write.assert_has_calls([call('set g_stamina "2"')])
示例15: mixin_cmd_version
# 需要導入模塊: from poweradminurt import PoweradminurtPlugin [as 別名]
# 或者: from poweradminurt.PoweradminurtPlugin import onLoadConfig [as 別名]
class mixin_cmd_version(object):
def setUp(self):
super(mixin_cmd_version, self).setUp()
self.conf = CfgConfigParser()
self.conf.loadFromString("""
[commands]
paversion-version: 20
""")
self.p = PoweradminurtPlugin(self.console, self.conf)
when(self.console).getCvar('timelimit').thenReturn(Cvar('timelimit', value=20))
when(self.console).getCvar('g_maxGameClients').thenReturn(Cvar('g_maxGameClients', value=16))
when(self.console).getCvar('sv_maxclients').thenReturn(Cvar('sv_maxclients', value=16))
when(self.console).getCvar('sv_privateClients').thenReturn(Cvar('sv_privateClients', value=0))
when(self.console).getCvar('g_allowvote').thenReturn(Cvar('g_allowvote', value=0))
self.p.onLoadConfig()
self.p.onStartup()
self.sleep_patcher = patch.object(time, 'sleep')
self.sleep_patcher.start()
self.console.say = Mock()
self.console.saybig = Mock()
self.console.write = Mock()
self.moderator.connects("2")
def tearDown(self):
super(mixin_cmd_version, self).tearDown()
self.sleep_patcher.stop()
def test_nominal(self):
self.moderator.message_history = []
self.moderator.says("!version")
self.assertEqual(['I am PowerAdminUrt version %s by %s' % (plugin_version, plugin_author)], self.moderator.message_history)