~singpolyma/biboumi

ref: 0bb4f144fcded6b5753b5de7493b7b10474c9a1f biboumi/tests/end_to_end/sequences.py -rw-r--r-- 4.6 KiB
0bb4f144 — Félix Baylac-Jacqué CLI: Add a test config flag 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)