aboutsummaryrefslogtreecommitdiffstats
path: root/test.py
blob: fd359a7598288e0dd235a720ee91ad3056bdf1b1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
###

from supybot.log import info
from supybot.test import *

import re
import urllib

class GithubTestCase(ChannelPluginTestCase):
    plugins = ('Github',)
    port    = 27230
    files   = {}
    config  = { 'plugins.github.shortUrl': False,
                '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)



    def testMerge(self):
        self.sendRequest('push-merge')

        # 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:

© 2014-2024 Faster IT GmbH | imprint | privacy policy