1from json import dumps 2 3from praw.models import ( 4 SubredditWidgets, 5 SubredditWidgetsModeration, 6 Widget, 7 WidgetModeration, 8) 9from praw.models.reddit.widgets import WidgetEncoder 10from praw.models.base import PRAWBase 11 12from ... import UnitTest 13 14 15class TestWidgetEncoder(UnitTest): 16 def test_bad_encode(self): 17 data = [ 18 1, 19 "two", 20 SubredditWidgetsModeration( 21 self.reddit.subreddit("subreddit"), self.reddit 22 ), 23 ] 24 try: 25 dumps(data, cls=WidgetEncoder) # should throw TypeError 26 except TypeError: 27 pass # success 28 else: 29 assert False 30 31 def test_good_encode(self): 32 data = [ 33 1, 34 "two", 35 PRAWBase(self.reddit, _data={"_secret": "no", "3": 3}), 36 ] 37 assert '[1, "two", {"3": 3}]' == dumps(data, cls=WidgetEncoder) 38 39 40class TestWidgets(UnitTest): 41 def test_subredditwidgets_mod(self): 42 sw = SubredditWidgets(self.reddit.subreddit("fake_subreddit")) 43 assert isinstance(sw.mod, SubredditWidgetsModeration) 44 45 def test_widget_mod(self): 46 w = Widget(self.reddit, {}) 47 assert isinstance(w.mod, WidgetModeration) 48 assert w.mod.widget == w 49