From 1e7b791db51fab2029927c622e4a39830b0f5d40 Mon Sep 17 00:00:00 2001 From: Weather Date: Fri, 17 Apr 2026 22:38:44 -0400 Subject: [PATCH 1/2] fix: Multiple slac messages --- docs/endpoints/csh_calendar.md | 1 + src/api/endpoints.py | 7 ++++--- src/static/css/style.css | 6 ++++++ tests/src/core/test_slack.py | 3 +-- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/docs/endpoints/csh_calendar.md b/docs/endpoints/csh_calendar.md index e9d8ff0..580e9ca 100644 --- a/docs/endpoints/csh_calendar.md +++ b/docs/endpoints/csh_calendar.md @@ -4,6 +4,7 @@ This API interacts with the CSH Google calendar to pull the number of events set in the .env file to display in the calendar widget on Jumpstart + --- ### Authentication diff --git a/src/api/endpoints.py b/src/api/endpoints.py index b5985a6..a36abe2 100644 --- a/src/api/endpoints.py +++ b/src/api/endpoints.py @@ -2,6 +2,7 @@ import json import httpx +import asyncio from fastapi import APIRouter, Request, Form from fastapi.responses import JSONResponse @@ -64,9 +65,8 @@ async def slack_events(request: Request) -> JSONResponse: """ try: - logger.debug(f"Received Slack event: {await request.body()}") - body: dict = await request.json() + logger.debug(f"Received Slack event: {body}") if request.headers.get("content-type") == "application/json": if body.get("type") == "url_verification": @@ -91,7 +91,8 @@ async def slack_events(request: Request) -> JSONResponse: return JSONResponse({"status": "ignored"}) logger.info("SLACK EVENT: Requesting upload via dm!") - await slack.request_upload_via_dm(event.get("user", ""), cleaned_text) + + await asyncio.create_task(slack.request_upload_via_dm(event.get("user", ""), cleaned_text)) except Exception as e: logger.error(f"Error handling Slack event: {e}") return JSONResponse({"status": "error", "message": str(e)}) diff --git a/src/static/css/style.css b/src/static/css/style.css index 4df74f6..f3f7066 100644 --- a/src/static/css/style.css +++ b/src/static/css/style.css @@ -8,6 +8,12 @@ --shadow-color: rgb(176,25,126, 0.5); /* Used for the shadow in the calendar */ } +/* b { + display: flex; + align-items: center; + justify-content: center; +} */ + .theme-dark { --panel-header-color: #B0197E; --panel-header-text-color: #FFFFFF; diff --git a/tests/src/core/test_slack.py b/tests/src/core/test_slack.py index 2360710..245049a 100644 --- a/tests/src/core/test_slack.py +++ b/tests/src/core/test_slack.py @@ -6,7 +6,7 @@ def import_slack_module(monkeypatch) -> object: """ Helper function to import the slack module after setting the SLACK_API_TOKEN environment variable. - +p Args: monkeypatch: The pytest monkeypatch fixture. @@ -96,7 +96,6 @@ async def users_info(self, user): username = asyncio.run(slack.get_username(user_id="")) assert username == "Unknown" - # Test Failure def test_gather_emojis_success_and_failure(monkeypatch): """ Test the gather_emojis function in the slack module. From 4cf0a50c8455bd33a2fad251087e191c0029dc12 Mon Sep 17 00:00:00 2001 From: Weather Date: Fri, 17 Apr 2026 22:40:36 -0400 Subject: [PATCH 2/2] docs: formatting --- src/api/endpoints.py | 4 +++- tests/src/core/test_slack.py | 33 ++++++++++++++++----------------- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/src/api/endpoints.py b/src/api/endpoints.py index a36abe2..fb92401 100644 --- a/src/api/endpoints.py +++ b/src/api/endpoints.py @@ -92,7 +92,9 @@ async def slack_events(request: Request) -> JSONResponse: logger.info("SLACK EVENT: Requesting upload via dm!") - await asyncio.create_task(slack.request_upload_via_dm(event.get("user", ""), cleaned_text)) + await asyncio.create_task( + slack.request_upload_via_dm(event.get("user", ""), cleaned_text) + ) except Exception as e: logger.error(f"Error handling Slack event: {e}") return JSONResponse({"status": "error", "message": str(e)}) diff --git a/tests/src/core/test_slack.py b/tests/src/core/test_slack.py index 245049a..c31bb34 100644 --- a/tests/src/core/test_slack.py +++ b/tests/src/core/test_slack.py @@ -5,13 +5,13 @@ def import_slack_module(monkeypatch) -> object: """ - Helper function to import the slack module after setting the SLACK_API_TOKEN environment variable. -p - Args: - monkeypatch: The pytest monkeypatch fixture. + Helper function to import the slack module after setting the SLACK_API_TOKEN environment variable. + + Args: + monkeypatch: The pytest monkeypatch fixture. - Returns: - object: The imported config module. + Returns: + object: The imported config module. """ monkeypatch.setenv("SLACK_API_TOKEN", "test-token") @@ -58,35 +58,33 @@ def test_get_username(monkeypatch): """ slack = import_slack_module(monkeypatch) - class FakeClient(): - def __init__(self,display_name=None,real_name=None,name=None): - self.display_name:str | None = display_name - self.real_name:str | None = real_name - self.name:str | None = name + class FakeClient: + def __init__(self, display_name=None, real_name=None, name=None): + self.display_name: str | None = display_name + self.real_name: str | None = real_name + self.name: str | None = name async def users_info(self, user): return { "ok": True, "user": { - "profile":{ - "display_name": self.display_name - }, + "profile": {"display_name": self.display_name}, "real_name": self.real_name, "name": self.name, }, } - #Test Display Name + # Test Display Name monkeypatch.setattr(slack, "client", FakeClient(display_name="DisplayName")) username = asyncio.run(slack.get_username(user_id="")) assert username == "DisplayName" - #Test Real Name + # Test Real Name monkeypatch.setattr(slack, "client", FakeClient(real_name="RealName")) username = asyncio.run(slack.get_username(user_id="")) assert username == "RealName" - #Test Account Name + # Test Account Name monkeypatch.setattr(slack, "client", FakeClient(name="AccountName")) username = asyncio.run(slack.get_username(user_id="")) assert username == "AccountName" @@ -96,6 +94,7 @@ async def users_info(self, user): username = asyncio.run(slack.get_username(user_id="")) assert username == "Unknown" + def test_gather_emojis_success_and_failure(monkeypatch): """ Test the gather_emojis function in the slack module.