From 1c3a2ca4062acebf825578c75bb523bc0aeb0d87 Mon Sep 17 00:00:00 2001 From: LilSpazJoekp <15524072+LilSpazJoekp@users.noreply.github.com> Date: Thu, 6 Jan 2022 15:22:49 -0600 Subject: [PATCH] Sort praw.models.reddit.mixins.MessageableMixin.message arguments --- praw/models/reddit/mixins/messageable.py | 17 ++++++++++------- .../integration/models/reddit/test_redditor.py | 6 +++--- .../integration/models/reddit/test_subreddit.py | 2 +- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/praw/models/reddit/mixins/messageable.py b/praw/models/reddit/mixins/messageable.py index da26fb7ce..4beccf09f 100644 --- a/praw/models/reddit/mixins/messageable.py +++ b/praw/models/reddit/mixins/messageable.py @@ -2,6 +2,7 @@ from typing import TYPE_CHECKING, Optional, Union from ....const import API_PATH +from ....util import _deprecate_args if TYPE_CHECKING: # pragma: no cover import praw @@ -10,16 +11,16 @@ class MessageableMixin: """Interface for classes that can be messaged.""" + @_deprecate_args("subject", "message", "from_subreddit") def message( self, - subject: str, - message: str, + *, from_subreddit: Optional[Union["praw.models.Subreddit", str]] = None, + message: str, + subject: str, ): """Send a message to a :class:`.Redditor` or a :class:`.Subreddit`'s moderators (modmail). - :param subject: The subject of the message. - :param message: The message content. :param from_subreddit: A :class:`.Subreddit` instance or string to send the message from. When provided, messages are sent from the subreddit rather than from the authenticated user. @@ -29,26 +30,28 @@ def message( The authenticated user must be a moderator of the subreddit and have the ``mail`` moderator permission. + :param message: The message content. + :param subject: The subject of the message. For example, to send a private message to u/spez, try: .. code-block:: python - reddit.redditor("spez").message("TEST", "test message from PRAW") + reddit.redditor("spez").message(subject="TEST", message="test message from PRAW") To send a message to u/spez from the moderators of r/test try: .. code-block:: python reddit.redditor("spez").message( - "TEST", "test message from r/test", from_subreddit="test" + subject="TEST", message="test message from r/test", from_subreddit="test" ) To send a message to the moderators of r/test, try: .. code-block:: python - reddit.subreddit("test").message("TEST", "test PM from PRAW") + reddit.subreddit("test").message(subject="TEST", message="test PM from PRAW") """ data = { diff --git a/tests/integration/models/reddit/test_redditor.py b/tests/integration/models/reddit/test_redditor.py index a6cacb319..327374e83 100644 --- a/tests/integration/models/reddit/test_redditor.py +++ b/tests/integration/models/reddit/test_redditor.py @@ -61,7 +61,7 @@ def test_message(self, _): self.reddit.read_only = False with self.use_cassette(): redditor = self.reddit.redditor("subreddit_stats") - redditor.message("PRAW test", "This is a test from PRAW") + redditor.message(subject="PRAW test", message="This is a test from PRAW") @mock.patch("time.sleep", return_value=None) def test_message_from_subreddit(self, _): @@ -69,8 +69,8 @@ def test_message_from_subreddit(self, _): with self.use_cassette(): redditor = self.reddit.redditor("subreddit_stats") redditor.message( - "PRAW test", - "This is a test from PRAW", + subject="PRAW test", + message="This is a test from PRAW", from_subreddit=pytest.placeholders.test_subreddit, ) diff --git a/tests/integration/models/reddit/test_subreddit.py b/tests/integration/models/reddit/test_subreddit.py index 40b229a47..bd5084495 100644 --- a/tests/integration/models/reddit/test_subreddit.py +++ b/tests/integration/models/reddit/test_subreddit.py @@ -159,7 +159,7 @@ def test_message(self, _): self.reddit.read_only = False with self.use_cassette(): subreddit = self.reddit.subreddit(pytest.placeholders.test_subreddit) - subreddit.message("Test from PRAW", message="Test content") + subreddit.message(subject="Test from PRAW", message="Test content") @mock.patch("time.sleep", return_value=None) def test_post_requirements(self, _):