diff options
author | Aleksey Lim <alsroot@activitycentral.org> | 2011-04-26 11:25:17 (GMT) |
---|---|---|
committer | Aleksey Lim <alsroot@activitycentral.org> | 2011-04-26 11:25:17 (GMT) |
commit | 74024d9d8ff4442f51d7178418e9b041af0809eb (patch) | |
tree | 01d8f70b500829659b52702a8c106ba722ab8c54 /test.py |
Extract from puppet module
Diffstat (limited to 'test.py')
-rw-r--r-- | test.py | 106 |
1 files changed, 106 insertions, 0 deletions
@@ -0,0 +1,106 @@ +# Copyright (C) 2010, Aleksey Lim +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, +# this list of conditions, and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions, and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of the author of this software nor the name of +# contributors to this software may be used to endorse or promote products +# derived from this software without specific prior written consent. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. + +from supybot.test import * + +import plugin + + +class LingvoTestCase(PluginTestCase): + plugins = ('Lingvo', 'Utilities') + + def testFoo(self): + self.assertResponse('echo foo', 'foo') + + def testQuoting(self): + text = 'foo "bar" test' + self.assertEqual(text, plugin.unquote(*plugin.quote(text))) + + text = '"bar" foo test' + self.assertEqual(text, plugin.unquote(*plugin.quote(text))) + + text = 'foo test "bar" ' + self.assertEqual(text, plugin.unquote(*plugin.quote(text))) + + text = 'foo test "bar"' + self.assertEqual(text, plugin.unquote(*plugin.quote(text))) + + text = '"foo bar test' + self.assertEqual(text, plugin.unquote(*plugin.quote(text))) + + text = 'foo "bar" test' + new_text, replaces = plugin.quote(text) + self.assertEqual('foo test', plugin.unquote(new_text, replaces, '')) + + def testChannelQuoting(self): + text = '#sugar' + text, replaces = plugin.quote(text) + self.assertEqual('#foo', plugin.unquote(text, replaces, '#foo')) + + text = '#sugar' + text, replaces = plugin.quote(text) + self.assertEqual('#sugar', plugin.unquote(text, replaces)) + + text = '#sugar test' + text, replaces = plugin.quote(text) + self.assertEqual('#foo test', plugin.unquote(text, replaces, '#foo')) + + text = 'test #sugar' + text, replaces = plugin.quote(text) + self.assertEqual('test #foo', plugin.unquote(text, replaces, '#foo')) + + text = 'test #' + text, replaces = plugin.quote(text) + self.assertEqual('test ?', plugin.unquote(text, replaces, '?')) + + def testNickQuoting(self): + text = 'foo:_foo test foobar2 foobar' + text, replaces = plugin.quote(text, ['foo', 'test', 'foobar']) + self.assertEqual('003:_foo 002 foobar2 001', text) + self.assertEqual({'003': 'foo', + '002': 'test', + '001': 'foobar'}, replaces) + + text = 'foo:foo,foo' + text, replaces = plugin.quote(text, ['foo']) + self.assertEqual('001:002,003', text) + self.assertEqual({'001': 'foo', + '002': 'foo', + '003': 'foo'}, replaces) + + def testNickLangQuoting(self): + text = 'foo-ru:foo-pt-PT foo' + text, replaces = plugin.quote(text, ['foo']) + self.assertEqual('001:002 003', text) + self.assertEqual({'001': 'foo', + '002': 'foo', + '003': 'foo'}, replaces) + + text = 'foo-test-ru:foo-test-pt-PT' + text, replaces = plugin.quote(text, ['foo', 'foo-test']) + self.assertEqual('001:002', text) + self.assertEqual({'001': 'foo-test', + '002': 'foo-test'}, replaces) |