SupyML: add test cases (on not yet implemented features)
parent
82db7e49ff
commit
0121d337f9
|
@ -96,6 +96,8 @@ class SupyMLParser:
|
||||||
return self._processLoop(node, proxify)
|
return self._processLoop(node, proxify)
|
||||||
elif node.nodeName == 'if':
|
elif node.nodeName == 'if':
|
||||||
return self._processId(node, proxify)
|
return self._processId(node, proxify)
|
||||||
|
elif node.nodeName == 'var':
|
||||||
|
return self._processVar(node, proxify)
|
||||||
output = node.nodeName + ' '
|
output = node.nodeName + ' '
|
||||||
for childNode in node.childNodes:
|
for childNode in node.childNodes:
|
||||||
if childNode.__class__ == minidom.Text:
|
if childNode.__class__ == minidom.Text:
|
||||||
|
@ -105,9 +107,11 @@ class SupyMLParser:
|
||||||
value = self._run(str(output), proxify)
|
value = self._run(str(output), proxify)
|
||||||
return value
|
return value
|
||||||
|
|
||||||
def _processLoop(self, node):
|
def _processLoop(self, node, proxify=True):
|
||||||
raise NotImplemented
|
raise NotImplemented
|
||||||
def _processIf(self, node):
|
def _processIf(self, node, proxify=True):
|
||||||
|
raise NotImplemented
|
||||||
|
def _processVar(self, node, proxify=True):
|
||||||
raise NotImplemented
|
raise NotImplemented
|
||||||
|
|
||||||
class SupyML(callbacks.Plugin):
|
class SupyML(callbacks.Plugin):
|
||||||
|
|
|
@ -32,7 +32,7 @@ import time
|
||||||
from supybot.test import *
|
from supybot.test import *
|
||||||
|
|
||||||
class SupyMLTestCase(ChannelPluginTestCase):
|
class SupyMLTestCase(ChannelPluginTestCase):
|
||||||
plugins = ('SupyML', 'Utilities')
|
plugins = ('SupyML', 'Utilities', 'Conditional')
|
||||||
#################################
|
#################################
|
||||||
# Utilities
|
# Utilities
|
||||||
def _getIfAnswerIsEqual(self, msg):
|
def _getIfAnswerIsEqual(self, msg):
|
||||||
|
@ -44,17 +44,34 @@ class SupyMLTestCase(ChannelPluginTestCase):
|
||||||
m = self.irc.takeMsg()
|
m = self.irc.takeMsg()
|
||||||
return False
|
return False
|
||||||
|
|
||||||
_tell = '<tell><echo>ProgVal</echo> <echo>foo</echo></tell>'
|
|
||||||
|
|
||||||
def testBasic(self):
|
def testBasic(self):
|
||||||
self.assertError('SupyML eval')
|
self.assertError('SupyML eval')
|
||||||
self.assertResponse('SupyML eval <echo>foo</echo>', 'foo')
|
self.assertResponse('SupyML eval <echo>foo</echo>', 'foo')
|
||||||
msg = ircmsgs.privmsg(self.channel, '@SupyML eval %s' % self._tell,
|
msg = ircmsgs.privmsg(self.channel, '@SupyML eval ' \
|
||||||
|
'<tell><echo>ProgVal</echo> <echo>foo</echo></tell>',
|
||||||
prefix=self.prefix)
|
prefix=self.prefix)
|
||||||
self.irc.feedMsg(msg)
|
self.irc.feedMsg(msg)
|
||||||
answer = ircmsgs.IrcMsg(prefix="", command="PRIVMSG",
|
answer = ircmsgs.IrcMsg(prefix="", command="PRIVMSG",
|
||||||
args=('ProgVal', 'test wants me to tell you: foo'))
|
args=('ProgVal', 'test wants me to tell you: foo'))
|
||||||
self.failIf(self._getIfAnswerIsEqual(answer) == False)
|
self.failIf(self._getIfAnswerIsEqual(answer) == False)
|
||||||
|
|
||||||
|
def testNoMoreThanOneAnswer(self):
|
||||||
|
self.assertResponse('SupyML eval <echo><echo>foo</echo>'
|
||||||
|
'<echo>bar</echo></echo>',
|
||||||
|
'foobar')
|
||||||
|
|
||||||
|
def testVar(self):
|
||||||
|
self.assertResponse('SupyML eval <echo><var>foo<set>bar</set></var>'
|
||||||
|
'<echo><var>foo</var></echo></echo>',
|
||||||
|
'bar')
|
||||||
|
|
||||||
|
def testWhile(self):
|
||||||
|
self.assertResponse('SupyML eval <echo>'
|
||||||
|
'<var>foo<set>1</set></var>'
|
||||||
|
'<loop><while><nne><var>foo</var> 5</nne></while>'
|
||||||
|
'<echo>bar</echo></loop></echo>',
|
||||||
|
'bar'*5)
|
||||||
|
|
||||||
|
|
||||||
# vim:set shiftwidth=4 tabstop=4 expandtab textwidth=79:
|
# vim:set shiftwidth=4 tabstop=4 expandtab textwidth=79:
|
||||||
|
|
Loading…
Reference in New Issue