Fix classifier test, use Path

This commit is contained in:
shamoon 2024-12-25 10:00:20 -08:00 committed by Sebastian Steinbeißer
parent 02386d6513
commit 4993bcf6ab
No known key found for this signature in database
GPG Key ID: E8200F0F0380C0E0
2 changed files with 21 additions and 19 deletions

View File

@ -233,7 +233,11 @@ class TestSystemStatus(APITestCase):
self.assertEqual(response.data["tasks"]["classifier_status"], "WARNING") self.assertEqual(response.data["tasks"]["classifier_status"], "WARNING")
self.assertIsNotNone(response.data["tasks"]["classifier_error"]) self.assertIsNotNone(response.data["tasks"]["classifier_error"])
def test_system_status_classifier_error(self): @mock.patch(
"documents.classifier.load_classifier",
side_effect=ClassifierModelCorruptError(),
)
def test_system_status_classifier_error(self, mock_load_classifier):
""" """
GIVEN: GIVEN:
- The classifier does exist but is corrupt - The classifier does exist but is corrupt
@ -250,23 +254,21 @@ class TestSystemStatus(APITestCase):
) as does_exist, ) as does_exist,
override_settings(MODEL_FILE=Path(does_exist.name)), override_settings(MODEL_FILE=Path(does_exist.name)),
): ):
with mock.patch("documents.classifier.load_classifier") as mock_load: Document.objects.create(
mock_load.side_effect = ClassifierModelCorruptError() title="Test Document",
Document.objects.create( )
title="Test Document", Tag.objects.create(
) name="Test Tag",
Tag.objects.create( matching_algorithm=Tag.MATCH_AUTO,
name="Test Tag", )
matching_algorithm=Tag.MATCH_AUTO, self.client.force_login(self.user)
) response = self.client.get(self.ENDPOINT)
self.client.force_login(self.user) self.assertEqual(response.status_code, status.HTTP_200_OK)
response = self.client.get(self.ENDPOINT) self.assertEqual(
self.assertEqual(response.status_code, status.HTTP_200_OK) response.data["tasks"]["classifier_status"],
self.assertEqual( "ERROR",
response.data["tasks"]["classifier_status"], )
"ERROR", self.assertIsNotNone(response.data["tasks"]["classifier_error"])
)
self.assertIsNotNone(response.data["tasks"]["classifier_error"])
def test_system_status_classifier_ok_no_objects(self): def test_system_status_classifier_ok_no_objects(self):
""" """

View File

@ -2159,7 +2159,7 @@ class SystemStatusView(PassUserMixin):
matching_algorithm=Tag.MATCH_AUTO, matching_algorithm=Tag.MATCH_AUTO,
).exists() ).exists()
) )
and not os.path.isfile(settings.MODEL_FILE) and not settings.MODEL_FILE.exists()
): ):
# if classifier file doesn't exist just classify as a warning # if classifier file doesn't exist just classify as a warning
classifier_error = "Classifier file does not exist (yet). Re-training may be pending." classifier_error = "Classifier file does not exist (yet). Re-training may be pending."