1import pickle 2 3import pytest 4from praw.models import Message, SubredditMessage 5 6from ... import UnitTest 7 8 9class TestMessage(UnitTest): 10 def test_attribute_error(self): 11 with pytest.raises(AttributeError): 12 Message(self.reddit, _data={"id": "1"}).mark_as_read() 13 14 def test_equality(self): 15 message1 = Message(self.reddit, _data={"id": "1"}) 16 message2 = Message(self.reddit, _data={"id": "1"}) 17 message3 = Message(self.reddit, _data={"id": "2"}) 18 assert message1 == message1 19 assert message2 == message2 20 assert message3 == message3 21 assert message1 == message2 22 assert message2 != message3 23 assert message1 != message3 24 assert "1" == message1 25 assert message1 == "1" 26 27 def test_fullname(self): 28 message = Message(self.reddit, _data={"id": "dummy"}) 29 assert message.fullname == "t4_dummy" 30 31 def test_hash(self): 32 message1 = Message(self.reddit, _data={"id": "dummy1"}) 33 message2 = Message(self.reddit, _data={"id": "dummy1"}) 34 message3 = Message(self.reddit, _data={"id": "dummy2"}) 35 assert hash(message1) == hash(message1) 36 assert hash(message2) == hash(message2) 37 assert hash(message3) == hash(message3) 38 assert hash(message1) == hash(message2) 39 assert hash(message2) != hash(message3) 40 assert hash(message1) != hash(message3) 41 42 def test_pickle(self): 43 message = Message(self.reddit, _data={"id": "dummy"}) 44 for level in range(pickle.HIGHEST_PROTOCOL + 1): 45 other = pickle.loads(pickle.dumps(message, protocol=level)) 46 assert message == other 47 48 def test_repr(self): 49 message = Message(self.reddit, _data={"id": "dummy"}) 50 assert repr(message) == "Message(id='dummy')" 51 52 def test_str(self): 53 message = Message(self.reddit, _data={"id": "dummy"}) 54 assert str(message) == "dummy" 55 56 57class TestSubredditMessage(UnitTest): 58 def test_inheritance(self): 59 message = SubredditMessage(self.reddit, _data={"id": "dummy"}) 60 assert isinstance(message, Message) 61 62 def test_repr(self): 63 message = SubredditMessage(self.reddit, _data={"id": "dummy"}) 64 assert repr(message) == "SubredditMessage(id='dummy')" 65 66 def test_str(self): 67 message = SubredditMessage(self.reddit, _data={"id": "dummy"}) 68 assert str(message) == "dummy" 69