~singpolyma/biboumi

ref: 2e1ddeb6547e140e9651231fedcd00e8ee4b1ccd biboumi/tests/end_to_end/sequences.py -rw-r--r-- 4.6 KiB
2e1ddeb6 — louiz’ Implement SASL plain authentication 2 years ago
                                                                                
81fb7389 louiz’
bd41bc8b louiz’
2e1ddeb6 louiz’
bd41bc8b louiz’
2e1ddeb6 louiz’
bd41bc8b louiz’
81fb7389 louiz’
2e1ddeb6 louiz’
bd41bc8b louiz’
81fb7389 louiz’
2e1ddeb6 louiz’
bd41bc8b louiz’
5c1f4592 louiz’
bd41bc8b louiz’
81fb7389 louiz’
bd41bc8b louiz’
81fb7389 louiz’
bd41bc8b louiz’
2e1ddeb6 louiz’
bd41bc8b louiz’
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
78
79
80
81
82
83
84
85
from functions import expect_stanza, send_stanza, common_replacements, expect_unordered

def handshake():
    return (
            expect_stanza("//handshake"),
            send_stanza("<handshake xmlns='jabber:component:accept'/>")
           )

def connection_begin(irc_host, jid, expected_irc_presence=False, fixed_irc_server=False, login=None):
    jid = jid.format_map(common_replacements)
    if fixed_irc_server:
        xpath    = "/message[@to='" + jid + "'][@from='biboumi.localhost']/body[text()='%s']"
    else:
        xpath    = "/message[@to='" + jid + "'][@from='" + irc_host + "@biboumi.localhost']/body[text()='%s']"
    result = (
    expect_stanza(xpath % ('Connecting to %s:6697 (encrypted)' % irc_host),
                  "/message/hints:no-copy",
                  "/message/carbon:private"
                 ),
    expect_stanza(xpath % 'Connection failed: Connection refused'),
    expect_stanza(xpath % ('Connecting to %s:6670 (encrypted)' % irc_host)),
    expect_stanza(xpath % 'Connection failed: Connection refused'),
    expect_stanza(xpath % ('Connecting to %s:6667 (not encrypted)' % irc_host)),
    expect_stanza(xpath % 'Connected to IRC server.'))

    if expected_irc_presence:
        result += (expect_stanza("/presence[@from='" + irc_host + "@biboumi.localhost']"),)

    if login is not None:
        result += (expect_stanza("/message/body[text()='irc.localhost: You are now logged in as %s']" % (login,)),)
    result += (
    expect_stanza("/message/body[text()='irc.localhost: *** Looking up your hostname...']"),
    expect_stanza("/message/body[text()='irc.localhost: *** Found your hostname']")
    )
    return result

def connection_tls_begin(irc_host, jid, fixed_irc_server):
    jid = jid.format_map(common_replacements)
    if fixed_irc_server:
        xpath    = "/message[@to='" + jid + "'][@from='biboumi.localhost']/body[text()='%s']"
    else:
        xpath    = "/message[@to='" + jid + "'][@from='" + irc_host + "@biboumi.localhost']/body[text()='%s']"
    irc_host = 'irc.localhost'
    return (
        expect_stanza(xpath % ('Connecting to %s:7778 (encrypted)' % irc_host),
                      "/message/hints:no-copy",
                      "/message/carbon:private",
               ),
        expect_stanza(xpath % 'Connected to IRC server (encrypted).'),
        expect_stanza("/message/body[text()='irc.localhost: *** Looking up your hostname...']"),
        expect_stanza("/message/body[text()='irc.localhost: *** Found your hostname']")
    )

def connection_end(irc_host, jid, fixed_irc_server=False):
    jid = jid.format_map(common_replacements)
    if fixed_irc_server:
        xpath    = "/message[@to='" + jid + "'][@from='biboumi.localhost']/body[text()='%s']"
        xpath_re = "/message[@to='" + jid + "'][@from='biboumi.localhost']/body[re:test(text(), '%s')]"
    else:
        xpath    = "/message[@to='" + jid + "'][@from='" + irc_host + "@biboumi.localhost']/body[text()='%s']"
        xpath_re = "/message[@to='" + jid + "'][@from='" + irc_host + "@biboumi.localhost']/body[re:test(text(), '%s')]"
    irc_host = 'irc.localhost'
    return (
    expect_stanza("/message/body[re:test(text(), '%s')]" % (r'^%s: Your host is %s, running version oragono-2\.0\.0(-[a-z0-9]+)? $' % (irc_host, irc_host))),
    expect_stanza(xpath_re % (r'^%s: This server was created .*$' % irc_host)),
    expect_stanza(xpath_re % (r'^%s: There are \d+ users and \d+ invisible on \d+ server\(s\)$' % irc_host)),
    expect_stanza(xpath_re % ("%s: \d+ IRC Operators online" % irc_host,)),
    expect_stanza(xpath_re % ("%s: \d+ unregistered connections" % irc_host,)),
    expect_stanza(xpath_re % ("%s: \d+ channels formed" % irc_host,)),
    expect_stanza(xpath_re % (r'^%s: I have \d+ clients and \d+ servers$' % irc_host)),
    expect_stanza(xpath_re % (r'^%s: \d+ \d+ Current local users \d+, max \d+$' % irc_host)),
    expect_stanza(xpath_re % (r'^%s: \d+ \d+ Current global users \d+, max \d+$' % irc_host)),
    expect_stanza(xpath % "%s: MOTD File is missing: Unspecified error" % irc_host),
    expect_stanza(xpath_re % (r'.+? \+Z',)),
    )


def connection(irc_host="irc.localhost", jid="{jid_one}/{resource_one}", expected_irc_presence=False, fixed_irc_server=False, login=None):
    return connection_begin(irc_host, jid, expected_irc_presence, fixed_irc_server=fixed_irc_server, login=login) + \
           connection_end(irc_host, jid, fixed_irc_server=fixed_irc_server)

def connection_tls(irc_host="irc.localhost", jid="{jid_one}/{resource_one}", fixed_irc_server=False):
    return connection_tls_begin(irc_host, jid, fixed_irc_server) + \
           connection_end(irc_host, jid, fixed_irc_server)