Add top-level docstrings to all modules

Will be used on the dashboard index in a future commit
This commit is contained in:
Valentin Lorentz 2022-04-10 14:51:14 +02:00
parent 93c454c99b
commit 107af942e9
59 changed files with 269 additions and 29 deletions

View File

@ -1,3 +1,5 @@
"""Format of ``CAP LS`` sent by IRCv3 clients."""
from irctest import cases
from irctest.irc_utils.message_parser import Message

View File

@ -1,3 +1,8 @@
"""SASL authentication from clients, for all known mechanisms.
For now, only `SASLv3.1 <https://ircv3.net/specs/extensions/sasl-3.1>`_
is tested, not `SASLv3.2 <https://ircv3.net/specs/extensions/sasl-3.2>`_."""
import base64
import pytest

View File

@ -1,3 +1,5 @@
"""Clients should validate certificates; either with a CA or fingerprints."""
import socket
import ssl

View File

@ -1,3 +1,5 @@
"""Internal checks of assertion implementations."""
from typing import Dict, List, Tuple
import pytest

View File

@ -1,3 +1,8 @@
"""
`Draft IRCv3 account-registration
<https://ircv3.net/specs/extensions/account-registration>`_
"""
from irctest import cases
from irctest.patma import ANYSTR

View File

@ -1,5 +1,5 @@
"""
<http://ircv3.net/specs/extensions/account-tag-3.2.html>
`IRCv3 account-tag <https://ircv3.net/specs/extensions/account-tag>`_
"""
from irctest import cases

View File

@ -1,3 +1,8 @@
"""
AWAY command (`RFC 2812 <https://datatracker.ietf.org/doc/html/rfc2812#section-4.1>`__,
`Modern <https://modern.ircdocs.horse/#away-message>`__)
"""
from irctest import cases
from irctest.numerics import RPL_AWAY, RPL_NOWAWAY, RPL_UNAWAY, RPL_USERHOST
from irctest.patma import StrRe
@ -32,7 +37,7 @@ class AwayTestCase(cases.BaseServerTestCase):
"""
"The server acknowledges the change in away status by returning the
`RPL_NOWAWAY` and `RPL_UNAWAY` numerics."
-- https://github.com/ircdocs/modern-irc/pull/100
-- https://modern.ircdocs.horse/#away-message
"""
self.connectClient("bar")
self.sendLine(1, "AWAY :I'm not here right now")
@ -48,7 +53,7 @@ class AwayTestCase(cases.BaseServerTestCase):
"""
"Servers SHOULD notify clients when a user they're interacting with
is away when relevant"
-- https://github.com/ircdocs/modern-irc/pull/100
-- https://modern.ircdocs.horse/#away-message
"<client> <nick> :<message>"
-- https://modern.ircdocs.horse/#rplaway-301
@ -75,7 +80,7 @@ class AwayTestCase(cases.BaseServerTestCase):
"""
"Servers SHOULD notify clients when a user they're interacting with
is away when relevant"
-- https://github.com/ircdocs/modern-irc/pull/100
-- https://modern.ircdocs.horse/#away-message
"<client> <nick> :<message>"
-- https://modern.ircdocs.horse/#rplaway-301
@ -113,7 +118,7 @@ class AwayTestCase(cases.BaseServerTestCase):
"""
"Servers SHOULD notify clients when a user they're interacting with
is away when relevant"
-- https://github.com/ircdocs/modern-irc/pull/100
-- https://modern.ircdocs.horse/#away-message
"<client> <nick> :<message>"
-- https://modern.ircdocs.horse/#rplaway-301

View File

@ -1,5 +1,5 @@
"""
<https://ircv3.net/specs/extensions/away-notify-3.1>
`IRCv3 away-notify <https://ircv3.net/specs/extensions/away-notify>`_
"""
from irctest import cases

View File

@ -1,6 +1,5 @@
"""
Draft bot mode specification, as defined in
<https://ircv3.net/specs/extensions/bot-mode>
`IRCv3 draft bot mode <https://ircv3.net/specs/extensions/bot-mode>`_
"""
from irctest import cases, runner

View File

@ -1,3 +1,9 @@
"""
`Ergo <https://ergo.chat/>`_-specific tests of
`multiclient features
<https://github.com/ergochat/ergo/blob/master/docs/MANUAL.md#multiclient-bouncer>`_
"""
from irctest import cases
from irctest.irc_utils.sasl import sasl_plain_blob
from irctest.numerics import ERR_NICKNAMEINUSE, RPL_WELCOME

View File

@ -1,5 +1,7 @@
"""Sends packets with various length to check the server reassembles them
correctly. Also checks truncation"""
"""
Sends packets with various length to check the server reassembles them
correctly. Also checks truncation.
"""
import socket
import time

View File

@ -1,3 +1,8 @@
"""
`IRCv3 Capability negotiation
<https://ircv3.net/specs/extensions/capability-negotiation>`_
"""
from irctest import cases
from irctest.patma import ANYSTR
from irctest.runner import CapabilityNotSupported, ImplementationChoice

View File

@ -1,3 +1,7 @@
"""
Channel casemapping
"""
import pytest
from irctest import cases, client_mock, runner

View File

@ -1,3 +1,9 @@
"""
`Ergo <https://ergo.chat/>`_-specific tests of channel forwarding
TODO: Should be extended to other servers, once a specification is written.
"""
from irctest import cases
from irctest.numerics import ERR_CHANOPRIVSNEEDED, ERR_INVALIDMODEPARAM, ERR_LINKCHANNEL

View File

@ -1,3 +1,7 @@
"""
`Draft IRCv3 channel-rename <https://ircv3.net/specs/extensions/channel-rename>`_
"""
from irctest import cases
from irctest.numerics import ERR_CHANOPRIVSNEEDED

View File

@ -1,3 +1,7 @@
"""
`IRCv3 draft chathistory <https://ircv3.net/specs/extensions/chathistory>`_
"""
import secrets
import time

View File

@ -1,3 +1,9 @@
"""
`Ergo <https://ergo.chat/>`_-specific tests of auditorium mode
TODO: Should be extended to other servers, once a specification is written.
"""
import math
import time

View File

@ -1,3 +1,10 @@
"""
Channel ban (`RFC 1459
<https://datatracker.ietf.org/doc/html/rfc1459#section-4.2.3.1>`__,
`RFC 2812 <https://datatracker.ietf.org/doc/html/rfc2812#section-3.2.3>`__,
`Modern <https://modern.ircdocs.horse/#ban-channel-mode>`__)
"""
from irctest import cases
from irctest.numerics import ERR_BANNEDFROMCHAN, RPL_BANLIST, RPL_ENDOFBANLIST
from irctest.patma import ANYSTR, StrRe
@ -26,7 +33,7 @@ class BanModeTestCase(cases.BaseServerTestCase):
@cases.mark_specifications("Modern")
def testBanList(self):
"""https://github.com/ircdocs/modern-irc/pull/125"""
"""`RPL_BANLIST <https://modern.ircdocs.horse/#rplbanlist-367>`"""
self.connectClient("chanop")
self.joinChannel(1, "#chan")
self.getMessages(1)

View File

@ -1,3 +1,7 @@
"""
Various Ergo-specific channel modes
"""
from irctest import cases
from irctest.numerics import ERR_CANNOTSENDTOCHAN, ERR_CHANOPRIVSNEEDED

View File

@ -1,3 +1,10 @@
"""
Channel key (`RFC 1459
<https://datatracker.ietf.org/doc/html/rfc1459#section-4.2.3.1>`__,
`RFC 2812 <https://datatracker.ietf.org/doc/html/rfc2812#section-3.2.3>`__,
`Modern <https://modern.ircdocs.horse/#key-channel-mode>`__)
"""
import pytest
from irctest import cases

View File

@ -1,3 +1,9 @@
"""
Channel moderation mode (`RFC 2812
<https://datatracker.ietf.org/doc/html/rfc2812#section-3.2.3>`__,
`Modern <https://modern.ircdocs.horse/#ban-channel-mode>`__)
"""
from irctest import cases
from irctest.numerics import ERR_CANNOTSENDTOCHAN

View File

@ -1,3 +1,7 @@
"""
Mute extban, currently no specifications or ways to discover it.
"""
from irctest import cases, runner
from irctest.numerics import ERR_CANNOTSENDTOCHAN, ERR_CHANOPRIVSNEEDED
from irctest.patma import ANYLIST, StrRe

View File

@ -1,3 +1,10 @@
"""
Channel secrecy mode (`RFC 1459
<https://datatracker.ietf.org/doc/html/rfc1459#section-4.2.3.1>`__,
`RFC 2812 <https://datatracker.ietf.org/doc/html/rfc2812#section-3.2.3>`__,
`Modern <https://modern.ircdocs.horse/#secret-channel-mode>`__)
"""
from irctest import cases
from irctest.numerics import RPL_LIST

View File

@ -1,3 +1,8 @@
"""
`Ergo <https://ergo.chat/>`_-specific tests for nick collisions based on Unicode
confusable characters
"""
from irctest import cases
from irctest.numerics import ERR_NICKNAMEINUSE, RPL_WELCOME

View File

@ -1,6 +1,8 @@
"""
Tests section 4.1 of RFC 1459.
<https://tools.ietf.org/html/rfc1459#section-4.1>
TODO: cross-reference Modern and RFC 2812 too
"""
from irctest import cases

View File

@ -1,5 +1,5 @@
"""
<http://ircv3.net/specs/extensions/echo-message-3.2.html>
`IRCv3 echo-message <https://ircv3.net/specs/extensions/echo-message>`_
"""
import pytest

View File

@ -1,3 +1,7 @@
"""
`Ergo <https://ergo.chat/>`-specific tests of NickServ.
"""
from irctest import cases
from irctest.numerics import RPL_YOUREOPER

View File

@ -1,5 +1,5 @@
"""
<http://ircv3.net/specs/extensions/extended-join-3.1.html>
`IRCv3 extended-join <https://ircv3.net/specs/extensions/extended-join>`_
"""
from irctest import cases

View File

@ -1,5 +1,5 @@
"""
The HELP and HELPOP command.
The HELP and HELPOP command (`Modern <https://modern.ircdocs.horse/#help-message>`__)
"""
import re

View File

@ -1,5 +1,8 @@
"""
The INFO command.
The INFO command (`RFC 1459
<https://datatracker.ietf.org/doc/html/rfc1459#section-4.3.8>`__,
`RFC 2812 <https://datatracker.ietf.org/doc/html/rfc2812#section-3.4.10>`__,
`Modern <https://modern.ircdocs.horse/#info-message>`__)
"""
import pytest

View File

@ -1,3 +1,10 @@
"""
The INVITE command (`RFC 1459
<https://datatracker.ietf.org/doc/html/rfc1459#section-4.2.7>`__,
`RFC 2812 <https://datatracker.ietf.org/doc/html/rfc2812#section-3.2.7>`__,
`Modern <https://modern.ircdocs.horse/#invite-message>`__)
"""
import pytest
from irctest import cases

View File

@ -1,3 +1,8 @@
"""
RPL_ISUPPORT: `format <https://modern.ircdocs.horse/#rplisupport-005>`__
and various `tokens <https://modern.ircdocs.horse/#rplisupport-parameters>`__
"""
import re
from irctest import cases, runner

View File

@ -1,3 +1,10 @@
"""
The JOIN command (`RFC 1459
<https://datatracker.ietf.org/doc/html/rfc1459#section-4.2.1>`__,
`RFC 2812 <https://datatracker.ietf.org/doc/html/rfc2812#section-3.2.1>`__,
`Modern <https://modern.ircdocs.horse/#join-message>`__)
"""
from irctest import cases
from irctest.irc_utils import ambiguities

View File

@ -1,3 +1,10 @@
"""
The INFO command (`RFC 1459
<https://datatracker.ietf.org/doc/html/rfc1459#section-4.2.1>`__,
`RFC 2812 <https://datatracker.ietf.org/doc/html/rfc2812#section-3.2.>`__,
`Modern <https://modern.ircdocs.horse/#kick-message>`__)
"""
import pytest
from irctest import cases, client_mock, runner

View File

@ -1,8 +1,8 @@
"""
`IRCv3 labeled-response <https://ircv3.net/specs/extensions/labeled-response>`_
This specification is a little hard to test because all labels are optional;
so there may be many false positives.
<https://ircv3.net/specs/extensions/labeled-response.html>
"""
import re

View File

@ -1,3 +1,12 @@
"""
The LIST command (`RFC 1459
<https://datatracker.ietf.org/doc/html/rfc1459#section-4.2.6>`__,
`RFC 2812 <https://datatracker.ietf.org/doc/html/rfc2812#section-3.2.6>`__,
`Modern <https://modern.ircdocs.horse/#list-message>`__)
TODO: check with Modern
"""
from irctest import cases

View File

@ -1,3 +1,11 @@
"""
The LUSERS command (`RFC 2812
<https://datatracker.ietf.org/doc/html/rfc2812#section-3.4.2>`__,
`Modern <https://modern.ircdocs.horse/#lusers-message>`__),
which provides statistics on user counts.
"""
from dataclasses import dataclass
import re
from typing import Optional

View File

@ -1,5 +1,5 @@
"""
https://ircv3.net/specs/extensions/message-tags.html
`IRCv3 message-tags <https://ircv3.net/specs/extensions/message-tags>`_
"""
import pytest

View File

@ -1,6 +1,5 @@
"""
Section 3.2 of RFC 2812
<https://tools.ietf.org/html/rfc2812#section-3.3>
The PRIVMSG and NOTICE commands.
"""
from irctest import cases

View File

@ -1,6 +1,5 @@
"""
Tests METADATA features.
<http://ircv3.net/specs/core/metadata-3.2.html>
`Deprecated IRCv3 Metadata <https://ircv3.net/specs/core/metadata-3.2>`_
"""
from irctest import cases

View File

@ -1,5 +1,5 @@
"""
<http://ircv3.net/specs/core/monitor-3.2.html>
`IRCv3 MONITOR <https://ircv3.net/specs/extensions/monitor>`_
"""
from irctest import cases

View File

@ -1,6 +1,5 @@
"""
Tests multi-prefix.
<http://ircv3.net/specs/extensions/multi-prefix-3.1.html>
`IRCv3 multi-prefix <https://ircv3.net/specs/extensions/multi-prefix>`_
"""
from irctest import cases

View File

@ -1,5 +1,5 @@
"""
draft/multiline
`Draft IRCv3 multiline <https://ircv3.net/specs/extensions/multiline>`_
"""
from irctest import cases

View File

@ -1,3 +1,10 @@
"""
The NAMES command (`RFC 1459
<https://datatracker.ietf.org/doc/html/rfc1459#section-4.2.5>`__,
`RFC 2812 <https://datatracker.ietf.org/doc/html/rfc2812#section-3.2.5>`__,
`Modern <https://modern.ircdocs.horse/#names-message>`__)
"""
from irctest import cases
from irctest.numerics import RPL_ENDOFNAMES
from irctest.patma import ANYSTR

View File

@ -1,3 +1,12 @@
"""
The PART command (`RFC 1459
<https://datatracker.ietf.org/doc/html/rfc1459#section-6.1>`__,
`RFC 2812 <https://datatracker.ietf.org/doc/html/rfc2812#section-5.2>`__,
`Modern <https://modern.ircdocs.horse/#part-message>`__)
TODO: cross-reference Modern
"""
import time
from irctest import cases

View File

@ -1,3 +1,7 @@
"""
The PING and PONG commands
"""
from irctest import cases
from irctest.numerics import ERR_NEEDMOREPARAMS, ERR_NOORIGIN
from irctest.patma import ANYSTR

View File

@ -1,3 +1,12 @@
"""
The QUITcommand (`RFC 1459
<https://datatracker.ietf.org/doc/html/rfc1459#section-4.1.6>`__,
`RFC 2812 <https://datatracker.ietf.org/doc/html/rfc2812#section-3.2.1>`__,
`Modern <https://modern.ircdocs.horse/#quit-message>`__)
TODO: cross-reference RFC 1459 and Modern
"""
import time
from irctest import cases

View File

@ -1,9 +1,12 @@
"""
`Ergo <https://ergo.chat/>`_-specific tests of responses to DoS attacks
using long lines.
"""
from irctest import cases
class ReadqTestCase(cases.BaseServerTestCase):
"""Test responses to DoS attacks using long lines."""
@cases.mark_specifications("Ergo")
@cases.mark_capabilities("message-tags")
def testReadqTags(self):

View File

@ -1,5 +1,5 @@
"""
Regression tests for bugs in oragono.
Regression tests for bugs in `Ergo <https://ergo.chat/>`_.
"""
import time

View File

@ -1,3 +1,7 @@
"""
RELAYMSG command of `Ergo <https://ergo.chat/>`_
"""
from irctest import cases
from irctest.irc_utils.junkdrawer import random_name
from irctest.patma import ANYSTR

View File

@ -1,3 +1,7 @@
"""
Roleplay features of `Ergo <https://ergo.chat/>`_
"""
from irctest import cases
from irctest.irc_utils.junkdrawer import random_name
from irctest.numerics import ERR_CANNOTSENDRP

View File

@ -1,3 +1,10 @@
"""
STATUSMSG ISUPPORT token and related PRIVMSG (`Modern
<https://modern.ircdocs.horse/#statusmsg-parameter>`__)
TODO: cross-reference Modern
"""
from irctest import cases, runner
from irctest.numerics import RPL_NAMREPLY

View File

@ -1,3 +1,10 @@
"""
The TOPIC command (`RFC 1459
<https://datatracker.ietf.org/doc/html/rfc1459#section-4.2.1>`__,
`RFC 2812 <https://datatracker.ietf.org/doc/html/rfc2812#section-3.2.1>`__,
`Modern <https://modern.ircdocs.horse/#topic-message>`__)
"""
from irctest import cases, client_mock, runner
from irctest.numerics import ERR_CHANOPRIVSNEEDED, RPL_NOTOPIC, RPL_TOPIC, RPL_TOPICTIME

View File

@ -1,3 +1,10 @@
"""
`Ergo <https://ergo.chat/>`_-specific tests of non-Unicode filtering
TODO: turn this into a test of `IRCv3 UTF8ONLY
<https://ircv3.net/specs/extensions/utf8-only>`_
"""
from irctest import cases
from irctest.patma import ANYSTR

View File

@ -1,3 +1,9 @@
"""
The WALLOPS command (`RFC 2812
<https://datatracker.ietf.org/doc/html/rfc2812#section-3.7>`__,
`Modern <https://modern.ircdocs.horse/#wallops-message>`__)
"""
from irctest import cases, runner
from irctest.numerics import ERR_NOPRIVILEGES, ERR_UNKNOWNCOMMAND, RPL_YOUREOPER
from irctest.patma import ANYSTR, StrRe

View File

@ -1,3 +1,10 @@
"""
The WHO command (`Modern <https://modern.ircdocs.horse/#who-message>`__)
and `IRCv3 WHOX <https://ircv3.net/specs/extensions/whox>`_
TODO: cross-reference RFC 1459 and RFC 2812
"""
import re
import pytest

View File

@ -1,3 +1,9 @@
"""
The WHOIS command (`Modern <https://modern.ircdocs.horse/#whois-message>`__)
TODO: cross-reference RFC 1459 and RFC 2812
"""
import pytest
from irctest import cases

View File

@ -1,3 +1,13 @@
"""
The WHOSWAS command (`RFC 1459
<https://datatracker.ietf.org/doc/html/rfc1459#section-4.5.3>`__,
`RFC 2812 <https://datatracker.ietf.org/doc/html/rfc2812#section-3.6.3>`__,
`Modern <https://modern.ircdocs.horse/#whowas-message>`__)
TODO: cross-reference Modern
"""
import pytest
from irctest import cases, runner

View File

@ -1,3 +1,7 @@
"""
`Ergo <https://ergo.chat/>`_-specific tests of ZNC-like message playback
"""
import time
from irctest import cases