mirror of
https://github.com/developersIndia/deviras.git
synced 2024-12-22 08:09: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