-
Notifications
You must be signed in to change notification settings - Fork 34
Expand file tree
/
Copy pathmessage.test.py
More file actions
executable file
·77 lines (70 loc) · 4.42 KB
/
Copy pathmessage.test.py
File metadata and controls
executable file
·77 lines (70 loc) · 4.42 KB
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
68
69
70
71
72
73
74
75
76
77
#!/usr/bin/python
# Copyright 2012 Bruno Gonzalez
# This software is released under the GNU AFFERO GENERAL PUBLIC LICENSE (see agpl-3.0.txt or www.gnu.org/licenses/agpl-3.0.html)
import unittest
from message import Message, split_nick, sed
from timestamp import Timestamp
class TestMessage(unittest.TestCase):
def test_basic(self):
m = Message("irc", "complete_nick!foobar", "channel_name", "message contents")
t = Timestamp()
self.assertTrue(m.time < t)
self.assertEquals(m.nick_full, "complete_nick!foobar")
self.assertEquals(m.nick_full, "complete_nick!foobar")
self.assertEquals(m.get_nick(), "complete_nick")
self.assertEquals(m.chan, "channel_name")
self.assertEquals(m.msg, "message contents")
self.assertTrue(m.target is None)
def test_target(self):
m = Message("irc", "complete_nick!foobar", "channel_name", "BaZ: message contents")
self.assertEquals(m.target, "BaZ")
def test_serialize(self):
m = Message("irc", "complete_nick!foobar", "channel_name", "BaZ: message contents", 10)
self.assertEquals(m.serialize(), "10 @@@ irc @@@ complete_nick!foobar @@@ channel_name @@@ BaZ: message contents")
def test_deserialize(self):
m = Message("irc", "complete_nick!foobar", "channel_name", "BaZ: message contents", 10)
m2 = Message(serialized_str=m.serialize())
self.assertEquals(m.serialize(), m2.serialize())
m3 = Message(serialized_str="10 @@@ irc @@@ complete_nick!foobar @@@ channel_name @@@ BaZ: message contents")
self.assertEquals(m.serialize(), m3.serialize())
def test_sed(self):
self.assertEquals(sed("foobar", "(foo)"), "foo")
self.assertEquals(sed("bar 123 baz", r"bar (\d+) baz"), "123")
self.assertEquals(sed("bar 123 baz", r"bar (\d+) "), "123")
self.assertEquals(sed("bar 123 baz", r"^bar (\d+) "), "123")
self.assertEquals(sed("bar 123 baz", r"^.* (\d+)"), "123")
self.assertEquals(sed("bar 123 baz", r"^.* (\d+).*$"), "123")
self.assertEquals(sed(" 123 \t", r"^\s*(\d*)\s*$"), "123")
self.assertEquals(sed(" foo123bar ", r"^\s*([a-z0-9]*)\s*$"), "foo123bar")
self.assertEquals(sed(" foo123BAR ", r"^\s*([a-zA-Z0-9]*)\s*$"), "foo123BAR")
self.assertEquals(sed(" foo123ba+r ", r"^\s*([a-z0-9+]*)\s*$"), "foo123ba+r")
self.assertEquals(sed(" foo123ba+r ", r"^\s*([a-z0-9+]*)\s*$"), "foo123ba+r")
self.assertEquals(sed(" foo ", r"\s*([a-z]*)\s*"), "foo")
self.assertEquals(sed(" foo ", r"\s(\w+)\s"), "foo")
self.assertEquals(sed(" foo ", r"\s*\s(\w+)\s*"), "foo")
self.assertEquals(sed("foo:hey", r"\s*(\w+)\s*:"), "foo")
self.assertEquals(sed(" foo:hey", r"\s*(\w+)\s*:"), "foo")
self.assertEquals(sed("foo :hey", r"\s*(\w+)\s*:"), "foo")
self.assertEquals(sed("foo:hey ", r"\s*(\w+)\s*:"), "foo")
self.assertEquals(sed(" foo : hey ", r"\s*(\w+)\s*:"), "foo")
self.assertEquals(sed(" foo : hey ", r"\s*(\w+)\s*:"), "foo")
self.assertEquals(sed(" foo : hey ", r"^\s*(\w+)\s*:"), "foo")
self.assertEquals(sed(" foo_bar : hey ", r"^\s*(\w+)\s*:"), "foo_bar")
self.assertEquals(sed(" +34555555 : hey ", r"^\s*([\w0-9+]+)\s*:"), "+34555555")
def test_split(self):
self.assertEquals(split_nick("foo bar"), [None, "foo bar"])
self.assertEquals(split_nick("foo:bar"), ["foo", "bar"])
self.assertEquals(split_nick("foo:"), ["foo", ""])
self.assertEquals(split_nick(" foo : bar "), ["foo", "bar "])
self.assertEquals(split_nick("ftp://foobar"), [None, "ftp://foobar"])
self.assertEquals(split_nick("ftp://foo:bar"), [None, "ftp://foo:bar"])
self.assertEquals(split_nick("ftp://foo:bar"), [None, "ftp://foo:bar"])
self.assertEquals(split_nick(":)"), [None, ":)"])
self.assertEquals(split_nick("hey :)"), [None, "hey :)"])
self.assertEquals(split_nick("foo: whats up? :)"), ["foo", "whats up? :)"])
self.assertEquals(split_nick("foo: whats up? :("), ["foo", "whats up? :("])
self.assertEquals(split_nick("foo: whats up? :/"), ["foo", "whats up? :/"])
self.assertEquals(split_nick("foo: whats up? :-/"), ["foo", "whats up? :-/"])
self.assertEquals(split_nick("foo: check this url: ftp://foo :-)"), ["foo", "check this url: ftp://foo :-)"])
if __name__ == '__main__':
unittest.main()