From 12581d591428307d9fbc3d61e4d91325440387b8 Mon Sep 17 00:00:00 2001
From: Christopher Bohn <bohn@unl.edu>
Date: Fri, 7 Jan 2022 10:10:11 -0600
Subject: [PATCH] Catches ValueError reported in #1 -- now results in "no
 stats"

---
 README.md             | 2 ++
 api/canvas_classes.py | 7 +++++--
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md
index 1426e0c..379843c 100644
--- a/README.md
+++ b/README.md
@@ -38,6 +38,8 @@ To interface with Canvas, you need a Canvas API Key.
 
   ![Copy/Paste your Canvas API Key into config.py](README-images/abet_oat-json.png)
 
+- [ ] Override the default file permissions: `chmod 600 ~/.abet_oat.json`
+
 ### You no longer need to...
 
 You no longer need to manually retrieve students' majors from MyRed. The program
diff --git a/api/canvas_classes.py b/api/canvas_classes.py
index 83deb5b..a9ec324 100644
--- a/api/canvas_classes.py
+++ b/api/canvas_classes.py
@@ -518,9 +518,12 @@ class CanvasAssignment:
     def is_quiz(self) -> bool:
         return 'online_quiz' in self.canvas_assignment.submission_types
 
-    def get_score(self, canvas_user: CanvasUser) -> float:  # TODO: add get_score and get_points_possible to original
+    def get_score(self, canvas_user: CanvasUser) -> Optional[float]: # TODO: add get_score & get_points_possible to original
         submission: Submission = self.canvas_assignment.get_submission(canvas_user.get_canvas_id())
-        return float(submission.grade) if submission.grade is not None else None
+        try:
+            return float(submission.grade) if submission.grade is not None else None
+        except ValueError:
+            return None
 
     def get_points_possible(self) -> float:
         return self.canvas_assignment.points_possible
-- 
GitLab