mirror of
https://github.com/developersIndia/deviras.git
synced 2024-12-21 15:49:49 +05:30
WIP showcase sunday megathread script
This commit is contained in:
parent
34586d0281
commit
bc372531f2
45
showcase-sunday/main.py
Normal file
45
showcase-sunday/main.py
Normal file
@ -0,0 +1,45 @@
|
||||
import datetime
|
||||
import praw
|
||||
import os
|
||||
|
||||
client_id = os.environ["REDDIT_CLIENT_ID"]
|
||||
client_secret = os.environ["REDDIT_CLIENT_SECRET"]
|
||||
reddit_pass = os.environ["REDDIT_PASSWORD"]
|
||||
username = os.environ["REDDIT_USERNAME"]
|
||||
user_agent = 'Showcase Sunday Megathread'
|
||||
|
||||
def is_second_sunday():
|
||||
today = datetime.date.today()
|
||||
first_day_of_month = today.replace(day=1)
|
||||
day_of_week = first_day_of_month.weekday()
|
||||
# Calculate the date of the second Sunday
|
||||
second_sunday = first_day_of_month + datetime.timedelta(days=(6 - day_of_week + 7) % 7 + 7)
|
||||
return today == second_sunday
|
||||
|
||||
|
||||
def create_showcase_sunday_megathread(reddit):
|
||||
subreddit = reddit.subreddit("developersIndia")
|
||||
title = "Showcase Sunday Megathread - {month} {year}".format(month=datetime.date.today().strftime("%B"), year=datetime.date.today().year)
|
||||
text = """
|
||||
Welcome to the Showcase Sunday Megathread!
|
||||
"""
|
||||
sticky = subreddit.submit(title, selftext=text, send_replies=False)
|
||||
sticky.mod.sticky(state=True, bottom=True)
|
||||
# sticky.mod.suggested_sort(sort='new')
|
||||
sticky.mod.flair(text="Megathread")
|
||||
return sticky.id
|
||||
|
||||
def main():
|
||||
reddit = praw.Reddit(
|
||||
client_id=client_id,
|
||||
client_secret=client_secret,
|
||||
username=username,
|
||||
password=reddit_pass,
|
||||
user_agent=user_agent
|
||||
)
|
||||
|
||||
if is_second_sunday():
|
||||
create_showcase_sunday_megathread(reddit)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
37
showcase-sunday/test_main.py
Normal file
37
showcase-sunday/test_main.py
Normal file
@ -0,0 +1,37 @@
|
||||
import unittest
|
||||
import datetime
|
||||
from main import is_second_sunday
|
||||
import unittest.mock
|
||||
|
||||
|
||||
# Unit test class
|
||||
class TestIsSecondSunday(unittest.TestCase):
|
||||
def test_second_sunday(self):
|
||||
# Define test cases as a list of tuples containing (input_date, expected_result)
|
||||
test_cases = [
|
||||
(datetime.date(2023, 12, 10), True),
|
||||
(datetime.date(2024, 1, 14), True),
|
||||
(datetime.date(2024, 2, 11), True),
|
||||
]
|
||||
|
||||
for input_date, expected_result in test_cases:
|
||||
with unittest.mock.patch("datetime.date") as mock_date:
|
||||
mock_date.today.return_value = input_date
|
||||
self.assertEqual(is_second_sunday(), expected_result)
|
||||
|
||||
def test_not_second_sunday(self):
|
||||
# Define test cases as a list of tuples containing (input_date, expected_result)
|
||||
test_cases = [
|
||||
(datetime.date(2023, 12, 12), False),
|
||||
(datetime.date(2023, 12, 5), False),
|
||||
(datetime.date(2023, 12, 19), False),
|
||||
]
|
||||
|
||||
for input_date, expected_result in test_cases:
|
||||
with unittest.mock.patch('datetime.date') as mock_date:
|
||||
mock_date.today.return_value = input_date
|
||||
self.assertEqual(is_second_sunday(), expected_result)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
Loading…
Reference in New Issue
Block a user