38 lines
892 B
Python
38 lines
892 B
Python
from typing import Any
|
|
|
|
from fakeredis import _msgs as msgs
|
|
from fakeredis._commands import command, DbIndex
|
|
from fakeredis._helpers import SimpleError, OK, SimpleString, Database
|
|
|
|
PONG = SimpleString(b"PONG")
|
|
|
|
|
|
class ConnectionCommandsMixin:
|
|
_server: Any
|
|
_db: Database
|
|
_db_num: int
|
|
_pubsub: int
|
|
|
|
# Connection commands
|
|
# TODO: auth, quit
|
|
|
|
@command((bytes,))
|
|
def echo(self, message):
|
|
return message
|
|
|
|
@command((), (bytes,))
|
|
def ping(self, *args):
|
|
if len(args) > 1:
|
|
msg = msgs.WRONG_ARGS_MSG6.format("ping")
|
|
raise SimpleError(msg)
|
|
if self._pubsub:
|
|
return [b"pong", args[0] if args else b""]
|
|
else:
|
|
return args[0] if args else PONG
|
|
|
|
@command((DbIndex,))
|
|
def select(self, index):
|
|
self._db = self._server.dbs[index]
|
|
self._db_num = index
|
|
return OK
|