Sketchy, sketchy tests
[bzrirker.git] / tests / testirker.py
1 # -*- coding: utf-8 -*-
2 # vim:fileencoding=utf-8 ai ts=4 sts=4 et sw=4
3 # Copyright 2012 Neil Muller
4 # GPL 2+ - see COPYING for details
5 from unittest import TestLoader
6
7 from bzrlib import (
8     config,
9     tests,
10     )
11 from bzrlib.bzrdir import BzrDir
12 from bzrlib.tests import TestCaseInTempDir
13 from bzrlib.plugins.bzrirker.irkerhook import IrkerSender
14
15
16 def test_suite():
17     return TestLoader().loadTestsFromName(__name__)
18
19 sample_config=("[DEFAULT]\n"
20         "irker_url=bzr://test.example.test/bzrirker\n"
21         "irker_project=bzrirker\n"
22         "irker_channels=irc://chat.example.test/commits\n")
23
24 colour_config=("[DEFAULT]\n"
25         "irker_url=bzr://test.example.test/bzrirker\n"
26         "irker_project=bzrirker\n"
27         "irker_colours=mIRC\n"
28         "irker_channels=irc://chat.example.test/commits\n")
29
30
31 class TestConfigured(TestCaseInTempDir):
32
33     def test_url(self):
34         irker = self.get_irker()
35         self.assertEqual('bzr://test.example.test/bzrirker', irker.url())
36
37     def test_colours(self):
38         irker = self.get_irker()
39         self.assertEqual({
40             'bold': '', 'green': '', 'blue': '', 'red': '',
41             'yellow': '', 'brown': '', 'magenta': '', 'cyan': '',
42             'reset': ''}, irker.colours())
43
44         irker = self.get_irker(color_config)
45         self.assertEqual({
46             'bold': '\x02', 'green': '\x0303', 'blue': '\x0302',
47             'red': '\x0305', 'yellow': '\x0307', 'brown': '\x0305',
48             'magenta': '\x0306', 'cyan': '\x0310', 'reset': '\x0F'},
49             irker.colours())
50
51     def test_message(self):
52         irker = self.get_irker()
53         self.assertEqual(
54                 '', irker._format())
55         irker = self.get_irker(color_config)
56         self.assertEqual(
57                 '', irker._format())
58
59
60     def get_irker(sef, text=sample_config):
61         my_config = config.MemoryStack(text)
62         self.branch = BzrDir.create_branch_convenience('.')
63         tree = self.branch.bzrdir.open_workingtree()
64         tree.commit('foo bar baz\nfuzzy\nwuzzy', rev_id='A',
65                 allow_pointless=True,
66                 timestamp=1,
67                 timezone=0,
68                 committer="Sample <john@example.test>",
69                 )
70         irker = IrkerSender(self.branch, 'A', my_config)
71         # We're not calling send, so do the setup stuff here
72         irker._setup_revision_and_revno()
73         return irker
74         
75