• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

uw-it-aca / django-canvas-users / 15022282568

14 May 2025 01:41PM UTC coverage: 61.247% (-0.9%) from 62.144%
15022282568

Pull #143

github

web-flow
Merge pull request #144 from uw-it-aca/task/django-blti-update

disable add student modal
Pull Request #143: Develop

25 of 43 new or added lines in 4 files covered. (58.14%)

4 existing lines in 2 files now uncovered.

275 of 449 relevant lines covered (61.25%)

0.61 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

30.3
/canvas_users/views/api/section.py
1
# Copyright 2025 UW-IT, University of Washington
2
# SPDX-License-Identifier: Apache-2.0
3

4

5
from uw_canvas.models import CanvasCourse
1✔
6
from restclients_core.exceptions import DataFailureException
1✔
7
from canvas_users.dao.canvas import get_course_sections
1✔
8
from canvas_users.exceptions import MissingSectionException
1✔
9
from canvas_users.views import UserRESTDispatch
1✔
10
from logging import getLogger
1✔
11
import traceback
1✔
12

13

14
logger = getLogger(__name__)
1✔
15

16

17
class CanvasCourseSections(UserRESTDispatch):
1✔
18
    """ Performs actions on Canvas Course Sections
19
        GET returns 200 with course sections.
20
    """
21
    def get(self, request, *args, **kwargs):
1✔
22
        course_id = kwargs['canvas_course_id']
×
23
        user_id = self.blti.canvas_user_id
×
24
        course_name = self.blti.course_long_name
×
25
        sis_course_id = self.blti.course_sis_id
×
UNCOV
26
        try:
×
27
            course = CanvasCourse(course_id=course_id,
×
28
                                  sis_course_id=sis_course_id,
29
                                  name=course_name)
30
            sections = get_course_sections(course, user_id)
×
31

32
        except MissingSectionException as err:
×
33
            msg = 'Adding users to this course not allowed'
×
34
            return self.error_response(401, message=msg)
×
35
        except DataFailureException as err:
×
NEW
36
            if err.status == 404:
×
NEW
37
                msg = 'Course not found'
×
NEW
38
                return self.error_response(404, message=msg)
×
NEW
39
            elif err.status == 403:
×
NEW
40
                msg = 'You do not have permission to access this course'
×
NEW
41
                return self.error_response(403, message=msg)
×
42

NEW
43
            logger.error(f"sections: DataFailureException: {err}")
×
44
            return self.error_response(500, message=err.msg)
×
45
        except Exception as err:
×
NEW
46
            logger.exception(f"sections: Exception: {err}")
×
UNCOV
47
            return self.error_response(500, message=traceback.format_exc(err))
×
48

49
        return self.json_response({
×
50
            'sections': sorted(sections, key=lambda k: k['name'])
51
        })
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc