From 4665d27418eb4a426f6ff52352285d6430ba0841 Mon Sep 17 00:00:00 2001 From: kongr45gpen Date: Mon, 28 Apr 2014 19:07:21 +0300 Subject: Make tests look Rubyish --- test.py | 51 +++++++++++---------------------------------------- 1 file changed, 11 insertions(+), 40 deletions(-) (limited to 'test.py') diff --git a/test.py b/test.py index fd359a7..58ee4ac 100644 --- a/test.py +++ b/test.py @@ -1,12 +1,10 @@ ### - from supybot.log import info from supybot.test import * -import re -import urllib +from local.testing.ExpectationPluginTestCase import * -class GithubTestCase(ChannelPluginTestCase): +class GithubTestCase(ExpectationPluginTestCase): plugins = ('Github',) port = 27230 files = {} @@ -14,54 +12,27 @@ class GithubTestCase(ChannelPluginTestCase): 'plugins.github.hidePush': False } - def assertContains(self, query, expectedNeedle, flags=re.I, **kwargs): - regex = re.compile("((\x02)|(\x03))(?:\d{1,2}(?:,\d{1,2})?)?", re.UNICODE) - - m = self._feedMsg(query, **kwargs) - messageString = regex.sub('', m.args[1]) - if m is None: - raise TimeoutError, query - self.failUnless(re.search(expectedNeedle, messageString, flags), - '%r does not match %r' % (messageString, expectedNeedle)) - return m - def setUp(self): # Set a different port from the default one to make testing while a # supybot-github instance is running possible - we don't use the config # variable because supybot's test framework sets the value after the # plugin has been loaded conf.supybot.plugins.get("Github").get('port').setValue(self.port) - ChannelPluginTestCase.setUp(self) - - def sendRequest(self, file): - if file in self.files: - content = self.files[file] - else: - with open('samples/' + file + '.json', 'r') as content_file: - content = content_file.read() - self.files[file] = content - - res = urllib.urlopen('http://localhost:' + str(self.port), 'payload=' + content) - + PluginTestCase.setUp(self) def testMerge(self): self.sendRequest('push-merge') + self.describe('first message', + it().should.contain('merged 4 commits'), + it().should.contain('from newTestBranch'), + it().should.contain('pushed 1 commit'), + it().should.contain('to master'), + it().should.contain('https://github.com/username/test/compare/cb12c8e51c8e...f386345fa3c5') + ) + # By default, merged commits should not be shown self.assertError('get 5th message') - self.assertContains('get first message', 'merged 4 commits') - self.assertContains('get first message', 'from newTestBranch') - self.assertContains('get first message', 'pushed 1 commit') - self.assertContains('get first message', 'to master') - - self.assertContains('get first message', 'https://github.com/username/test/compare/cb12c8e51c8e...f386345fa3c5') - - def testHeaders(self): - # self.assertError('headers ftp://ftp.cdrom.com/pub/linux') - # self.assertNotError('headers http://www.slashdot.org/') - return - - # vim:set shiftwidth=4 tabstop=4 expandtab textwidth=79: -- cgit v1.2.3