diff --git a/.tool-versions b/.tool-versions index e2a1032..ce94088 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1 +1,2 @@ nodejs 23.3.0 +ruby 4.0.2 diff --git a/games/tests.py b/games/tests.py index eff03f0..f26bfff 100644 --- a/games/tests.py +++ b/games/tests.py @@ -23,7 +23,7 @@ def test_no_games(self): response = self.client.get(reverse("games:index")) self.assertEqual(response.status_code, 200) self.assertContains(response, "No games are available.") - self.assertQuerysetEqual(response.context["games"], []) + self.assertQuerySetEqual(response.context["games"], []) def test_one_game(self): """ @@ -33,7 +33,7 @@ def test_one_game(self): response = self.client.get(reverse("games:index")) self.assertEqual(response.status_code, 200) self.assertContains(response, "Test Game") - self.assertQuerysetEqual(response.context["games"], [game]) + self.assertQuerySetEqual(response.context["games"], [game]) def test_many_games(self): games = [ @@ -42,7 +42,7 @@ def test_many_games(self): response = self.client.get(reverse("games:index")) self.assertEqual(response.status_code, 200) self.assertContains(response, "Test Game 0") - self.assertQuerysetEqual(response.context["games"], games) + self.assertQuerySetEqual(response.context["games"], games) def test_many_games_some_not_ingested(self): games = [ @@ -55,7 +55,7 @@ def test_many_games_some_not_ingested(self): response = self.client.get(reverse("games:index")) self.assertEqual(response.status_code, 200) self.assertContains(response, "Test Game 0") - self.assertQuerysetEqual(response.context["games"], games) + self.assertQuerySetEqual(response.context["games"], games) class GameDetailViewTests(TestCase): @@ -159,10 +159,15 @@ def test_ingest_setup_pages(self): results = game.vector_store.index.similarity_search("Setup instructions") self.assertEqual(len(results), 3) # Both pages - plus a setup page - self.assertEqual(results[0].metadata["page"], 1) - self.assertEqual(results[0].metadata["game_id"], game.id) - self.assertEqual(results[0].metadata["document_id"], document.id) - self.assertTrue("Page 2" in results[0].page_content) + self.assertTrue( + any( + result.metadata["page"] == 1 + and result.metadata["game_id"] == game.id + and result.metadata["document_id"] == document.id + and "Page 2" in result.page_content + for result in results + ) + ) class GameVectorStoreTest(TestCase): diff --git a/poetry.lock b/poetry.lock index 19635d4..8ecd2b0 100644 --- a/poetry.lock +++ b/poetry.lock @@ -511,18 +511,18 @@ files = [ [[package]] name = "django" -version = "4.2.23" +version = "5.2.13" description = "A high-level Python web framework that encourages rapid development and clean, pragmatic design." category = "main" optional = false -python-versions = ">=3.8" +python-versions = ">=3.10" files = [ - {file = "django-4.2.23-py3-none-any.whl", hash = "sha256:dafbfaf52c2f289bd65f4ab935791cb4fb9a198f2a5ba9faf35d7338a77e9803"}, - {file = "django-4.2.23.tar.gz", hash = "sha256:42fdeaba6e6449d88d4f66de47871015097dc6f1b87910db00a91946295cfae4"}, + {file = "django-5.2.13-py3-none-any.whl", hash = "sha256:5788fce61da23788a8ce6f02583765ab060d396720924789f97fa42119d37f7a"}, + {file = "django-5.2.13.tar.gz", hash = "sha256:a31589db5188d074c63f0945c3888fad104627dfcc236fb2b97f71f89da33bc4"}, ] [package.dependencies] -asgiref = ">=3.6.0,<4" +asgiref = ">=3.8.1" sqlparse = ">=0.3.1" tzdata = {version = "*", markers = "sys_platform == \"win32\""} @@ -2890,4 +2890,4 @@ cffi = ["cffi (>=1.17)"] [metadata] lock-version = "2.0" python-versions = ">=3.11.6,<3.15" -content-hash = "b46823a615104cb500609274a7a4ef4ad8b8cfb14443b8239f00911f796f8b9e" +content-hash = "248ea80d6cae543022074d5ffbc7a0ac161c5b6e1a211a8532c42b04db5a3a45" diff --git a/pyproject.toml b/pyproject.toml index c0c38ee..9b3ce19 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ readme = "README.md" [tool.poetry.dependencies] python = ">=3.11.6,<3.15" -Django = "^4.2.4" +Django = "^5" pypdf = "^3.15.0" langchain = "^0.3.0" openai = "^1.0" diff --git a/rulesbot/settings.py b/rulesbot/settings.py index 449158e..77e503d 100644 --- a/rulesbot/settings.py +++ b/rulesbot/settings.py @@ -154,7 +154,14 @@ AWS_SECRET_ACCESS_KEY = env("AWS_SECRET_ACCESS_KEY") AWS_STORAGE_BUCKET_NAME = env("AWS_STORAGE_BUCKET_NAME") -DEFAULT_FILE_STORAGE = "storages.backends.s3boto3.S3Boto3Storage" +STORAGES = { + "default": { + "BACKEND": "storages.backends.s3boto3.S3Boto3Storage", + }, + "staticfiles": { + "BACKEND": "django.contrib.staticfiles.storage.StaticFilesStorage", + }, +} MEDIA_URL = "/mediafiles/" MEDIA_ROOT = os.path.join(BASE_DIR, "mediafiles") diff --git a/templates/master.html b/templates/master.html index 51c9fd2..fb70204 100644 --- a/templates/master.html +++ b/templates/master.html @@ -74,7 +74,12 @@ {% if user.is_authenticated %}
  • Rules Chat Sessions
  • Manage Account
  • -
  • Log out
  • + {% else %}