From 8675f32886f9dd217fb06936f929a4d84ba1c3f2 Mon Sep 17 00:00:00 2001 From: Ryan Trinh Date: Tue, 2 Dec 2025 19:35:24 -0800 Subject: [PATCH 1/6] Created Crib sheet tutoring page --- hknweb/templates/tutoring/crib.html | 56 ++++++++++++++++++++ hknweb/templates/tutoring/portal.html | 8 ++- hknweb/tutoring/admin.py | 11 +++- hknweb/tutoring/forms.py | 7 +++ hknweb/tutoring/migrations/0004_cribsheet.py | 46 ++++++++++++++++ hknweb/tutoring/models.py | 13 +++++ hknweb/tutoring/urls.py | 1 + hknweb/tutoring/views/__init__.py | 1 + hknweb/tutoring/views/crib.py | 25 +++++++++ 9 files changed, 166 insertions(+), 2 deletions(-) create mode 100644 hknweb/templates/tutoring/crib.html create mode 100644 hknweb/tutoring/migrations/0004_cribsheet.py create mode 100644 hknweb/tutoring/views/crib.py diff --git a/hknweb/templates/tutoring/crib.html b/hknweb/templates/tutoring/crib.html new file mode 100644 index 00000000..d5f29ecd --- /dev/null +++ b/hknweb/templates/tutoring/crib.html @@ -0,0 +1,56 @@ +{% extends "base.html" %} +{% load static %} + +{% block title %} Crib Sheets {% endblock %} + +{% block header %} + +{% endblock %} + +{% block heading %} Crib Sheets {% endblock %} + + +{% block content %} +
+ {% csrf_token %} + {{ form }} + +
+ + + + + + + + + {% for sheet in crib %} + + + + + + + + {% empty %} + + {% endfor %} + + +
Course Semester PDF Comment Update Date
{{ sheet.course }} {{ sheet.semester }} Link {{ sheet.comment }} {{ sheet.update_date }}
+{% endblock %} + diff --git a/hknweb/templates/tutoring/portal.html b/hknweb/templates/tutoring/portal.html index 0b967a5c..11a3b882 100644 --- a/hknweb/templates/tutoring/portal.html +++ b/hknweb/templates/tutoring/portal.html @@ -5,12 +5,18 @@ {% block heading %} Tutoring Admin Page {% endblock%} {% block "portal-content"%} - +

Course Descriptions

+ +
+

Crib Sheets

+
+
+

Return to Committees

diff --git a/hknweb/tutoring/admin.py b/hknweb/tutoring/admin.py index 8cb8cdd8..3790a553 100644 --- a/hknweb/tutoring/admin.py +++ b/hknweb/tutoring/admin.py @@ -1,6 +1,6 @@ from django.contrib import admin -from hknweb.tutoring.models import Room, TutoringLogistics, Slot +from hknweb.tutoring.models import Room, TutoringLogistics, Slot, CribSheet @admin.register(TutoringLogistics) @@ -13,4 +13,13 @@ class SlotAdmin(admin.ModelAdmin): autocomplete_fields = ("tutors",) +@admin.register(CribSheet) +class CribSheetsAdmin(admin.ModelAdmin): + fields = ["semester", "course", "pdf", "comment"] + list_display = ["semester", "course", "pdf", "comment", "update_date"] + list_display_links = ["pdf"] + list_filter = ["update_date"] + search_fields = ["course__title"] + + admin.site.register(Room) diff --git a/hknweb/tutoring/forms.py b/hknweb/tutoring/forms.py index 828e5f76..51867b9c 100644 --- a/hknweb/tutoring/forms.py +++ b/hknweb/tutoring/forms.py @@ -4,6 +4,7 @@ from hknweb.coursesemester.models import Course from hknweb.studentservices.models import CourseDescription +from hknweb.tutoring.models import CribSheet from hknweb.tutoring.views.autocomplete import get_tutors @@ -39,3 +40,9 @@ class AddCourseForm(forms.ModelForm): class Meta: model = CourseDescription fields = ["title", "slug"] + + +class AddCribForm(forms.ModelForm): + class Meta: + model = CribSheet + fields = ["course", "pdf", "comment"] diff --git a/hknweb/tutoring/migrations/0004_cribsheet.py b/hknweb/tutoring/migrations/0004_cribsheet.py new file mode 100644 index 00000000..88e4d09f --- /dev/null +++ b/hknweb/tutoring/migrations/0004_cribsheet.py @@ -0,0 +1,46 @@ +# Generated by Django 4.2.17 on 2025-12-03 02:34 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + dependencies = [ + ("studentservices", "0013_alter_coursedescription_description_and_more"), + ("coursesemester", "0002_auto_20210202_0225"), + ("tutoring", "0003_auto_20221128_1703"), + ] + + operations = [ + migrations.CreateModel( + name="CribSheet", + fields=[ + ( + "id", + models.AutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ("pdf", models.URLField(blank=True, max_length=300)), + ("comment", models.CharField(blank=True, max_length=300)), + ("update_date", models.DateTimeField(auto_now=True)), + ( + "course", + models.ForeignKey( + on_delete=django.db.models.deletion.PROTECT, + to="studentservices.coursedescription", + ), + ), + ( + "semester", + models.ForeignKey( + on_delete=django.db.models.deletion.PROTECT, + to="coursesemester.semester", + ), + ), + ], + ), + ] diff --git a/hknweb/tutoring/models.py b/hknweb/tutoring/models.py index 3a534850..3539707a 100644 --- a/hknweb/tutoring/models.py +++ b/hknweb/tutoring/models.py @@ -8,6 +8,7 @@ from django.contrib.auth.models import User from hknweb.coursesemester.models import Semester +from hknweb.studentservices.models import CourseDescription class Room(models.Model): @@ -65,3 +66,15 @@ def tutor_names(self) -> str: full_name=Concat("first_name", Value(" "), "last_name") ).values_list("full_name", flat=True) return ", ".join(tutors) + + +class CribSheet(models.Model): + semester = models.ForeignKey(Semester, on_delete=models.PROTECT) + + course = models.ForeignKey(CourseDescription, on_delete=models.PROTECT) + + pdf = models.URLField(max_length=300) + + comment = models.CharField(max_length=300, blank=True) + + update_date = models.DateTimeField(auto_now=True) diff --git a/hknweb/tutoring/urls.py b/hknweb/tutoring/urls.py index c1864907..d5d79817 100644 --- a/hknweb/tutoring/urls.py +++ b/hknweb/tutoring/urls.py @@ -18,4 +18,5 @@ ), path("portal", views.tutoringportal, name="tutoring_portal"), path("courses", views.courses, name="courses"), + path("crib", views.crib, name="crib"), ] diff --git a/hknweb/tutoring/views/__init__.py b/hknweb/tutoring/views/__init__.py index 53b4700b..da871fe8 100644 --- a/hknweb/tutoring/views/__init__.py +++ b/hknweb/tutoring/views/__init__.py @@ -3,3 +3,4 @@ from hknweb.tutoring.views.tutoringportal import tutoringportal from hknweb.tutoring.views.courses import courses from hknweb.tutoring.views.autocomplete import course_autocomplete, tutor_autocomplete +from hknweb.tutoring.views.crib import crib diff --git a/hknweb/tutoring/views/crib.py b/hknweb/tutoring/views/crib.py new file mode 100644 index 00000000..ee3488fb --- /dev/null +++ b/hknweb/tutoring/views/crib.py @@ -0,0 +1,25 @@ +from django.shortcuts import render +from hknweb.utils import login_and_committee +from hknweb.tutoring.models import CribSheet +from hknweb.tutoring.forms import AddCribForm +from hknweb.coursesemester.models import Semester +from django.conf import settings + + +@login_and_committee(settings.TUTORING_GROUP) +def crib(request): + if request.method == "POST": + curr_semester = Semester.get_current_semester() + form = AddCribForm(request.POST) + if form.is_valid(): + new_sheet = form.save(commit=False) + new_sheet.semester = curr_semester + new_sheet.save() + crib = CribSheet.objects.all().order_by("-update_date") + + context = { + "form": AddCribForm(), + "crib": crib, + } + + return render(request, "tutoring/crib.html", context=context) From 8a44d42dd42391b91cfccfe3da9172f6cd619867 Mon Sep 17 00:00:00 2001 From: Ryan Trinh Date: Wed, 4 Feb 2026 00:02:41 -0800 Subject: [PATCH 2/6] New Crib Sheet Portal and Google Drive Integration --- hknweb/admin.py | 2 + hknweb/google_drive_utils.py | 293 ++++++++++++++++++ hknweb/migrations/0025_drivefolderid.py | 28 ++ hknweb/models.py | 9 + hknweb/studentservices/admin.py | 1 + .../0014_coursedescription_folderid.py | 17 + hknweb/studentservices/models.py | 2 + hknweb/studentservices/views.py | 12 +- hknweb/templates/tutoring/crib.html | 84 ++++- hknweb/tutoring/admin.py | 20 +- hknweb/tutoring/forms.py | 30 +- ...ribsheet.py => 0004_cribsheet_and_more.py} | 19 +- hknweb/tutoring/models.py | 21 +- hknweb/tutoring/urls.py | 3 +- hknweb/tutoring/views/__init__.py | 2 +- hknweb/tutoring/views/crib.py | 134 +++++++- 16 files changed, 628 insertions(+), 49 deletions(-) create mode 100644 hknweb/google_drive_utils.py create mode 100644 hknweb/migrations/0025_drivefolderid.py create mode 100644 hknweb/studentservices/migrations/0014_coursedescription_folderid.py rename hknweb/tutoring/migrations/{0004_cribsheet.py => 0004_cribsheet_and_more.py} (63%) diff --git a/hknweb/admin.py b/hknweb/admin.py index e95310f1..5272bb0e 100644 --- a/hknweb/admin.py +++ b/hknweb/admin.py @@ -14,6 +14,7 @@ Committee, Election, Committeeship, + DriveFolderID, ) from hknweb.forms import ProvisionCandidatesForm @@ -155,3 +156,4 @@ class CommitteeshipAdmin(admin.ModelAdmin): admin.site.register(CandidateProvisioningPassword) admin.site.register(Committee) admin.site.register(Election) +admin.site.register(DriveFolderID) diff --git a/hknweb/google_drive_utils.py b/hknweb/google_drive_utils.py new file mode 100644 index 00000000..f6eaca03 --- /dev/null +++ b/hknweb/google_drive_utils.py @@ -0,0 +1,293 @@ +import google.oauth2.service_account as service_account +from googleapiclient.discovery import build +from googleapiclient.errors import HttpError +from googleapiclient.http import MediaIoBaseUpload +from django.core.exceptions import ImproperlyConfigured + + +from pathlib import Path +import os +import json + +# Thank you Brian Yu as much of this code and framework is taken from his work on the google calendar + +# Alter the path to a server environment path + + +def get_credentials(): # pragma: no cover + """ + Gets the google drive service account's credentials from the server. + Should not be called anywhere else. + + Returns: + google.oauth2.service_acount.Credentials + """ + SCOPE = ["https://www.googleapis.com/auth/drive"] + + json_env = os.getenv("GOOGLE_DRIVE_CREDENTIALS_JSON") + + if not json_env: + raise ImproperlyConfigured( + "No Drive credentials found in environment variables." + ) + + try: + info = json.loads(json_env) + except json.JSONDecodeError: + raise ImproperlyConfigured("env doesn't contain a valid JSON") + + creds = service_account.Credentials.from_service_account_info(info, scopes=SCOPE) + + return creds + + +def check_credentials_wrapper(fn): + def new_fn(*args, **kwargs): + get_credentials() + return fn(*args, **kwargs) + + return new_fn + + +@check_credentials_wrapper +def get_service(): # pragma: no cover + creds = get_credentials() + service = build("drive", "v3", credentials=creds) + + return service + + +def create_metadata( + name: str, + mimeType: str, + parents: list, + description: str, +) -> dict: + data = dict() + data["name"] = name + data["mimeType"] = mimeType + + if description is not None: + data["description"] = description + + if parents is not None: + data["parents"] = parents + + return data + + +def create_folder( + name: str, + parents: list = None, + description: str = None, +) -> dict: # pragma: no cover + folder_resource = create_metadata( + name=name, + mimeType="application/vnd.google-apps.folder", + description=description, + parents=parents, + ) + + try: + folder = ( + get_service() + .files() + .create(body=folder_resource, fields="id", supportsAllDrives=True) + .execute() + ) + + return {"status": True, "result": folder["id"]} + except HttpError as e: + if e.resp.status == 403: + return { + "status": False, + "result": "Service Account: Insufficent Permissions", + } + else: + raise + + +def create_pdf( + name: str, + file, + parents: list = None, + description: str = None, +) -> dict: # pragma: no cover + pdf_resource = create_metadata( + name=name, + mimeType="application/pdf", + description=description, + parents=parents, + ) + + try: + file.seek(0) + + media = MediaIoBaseUpload(file, mimetype="application/pdf") + + pdf = ( + get_service() + .files() + .create( + body=pdf_resource, media_body=media, fields="id", supportsAllDrives=True + ) + .execute() + ) + + return {"status": True, "result": pdf["id"]} + except HttpError as e: + if e.resp.status == 403: + return { + "status": False, + "result": "Service Account: Insufficient Permissions", + } + else: + raise + + +def create_permission( + fileID: str, + typeID: str, + role: str, + emailAddress: str = None, + domain: str = None, +) -> dict: # pragma: no cover + body = { + "type": typeID, + "role": role, + } + if typeID in ["user", "group"]: + if not emailAddress: + raise ValueError( + "Email Address required for 'user' and 'group' permissions" + ) + body["emailAddress"] = emailAddress + elif typeID == "domain": + if not domain: + raise ValueError("Domain required for 'domain' permissions") + body["domain"] = domain + body["allowFileDiscovery"] = False + elif typeID == "anyone": + body["allowFileDiscovery"] = False + + try: + permission = ( + get_service() + .permissions() + .create(fileId=fileID, body=body, fields="id", supportsAllDrives=True) + .execute() + ) + return {"status": True, "id": permission["id"]} + except HttpError as e: + if e.resp.status == 403: + return {"status": False} + else: + raise + + +def delete_permission( + fileID: str, typeID: str, role: str, emailAddress: str = None, domain: str = None +) -> dict: # pragma: no cover + permissionID = get_permission_id(fileID, typeID, role, emailAddress, domain) + if not permissionID: + return {"status": False, "result": "No permission found"} + try: + deletion = ( + get_service() + .permissions() + .delete(fileId=fileID, permissionId=permissionID, supportsAllDrives=True) + .execute() + ) + return {"status": True} + except HttpError as e: + if e.resp.status == 403: + return { + "status": False, + "result": "Service Account: Insufficent Permissions", + } + else: + raise + + +def update_permission( + fileID: str, + typeID: str, + role: str, + new_role: str, + emailAddress: str = None, + domain: str = None, +) -> dict: # pragma: no cover + permissionID = get_permission_id(fileID, typeID, role, emailAddress, domain) + if not permissionID: + return {"status": False, "result": "No permission found"} + try: + update = ( + get_service() + .permissions() + .update( + fileId=fileID, + permissionId=permissionID, + supportsAllDrives=True, + body={"role": new_role}, + ) + .execute() + ) + return {"status": True} + except HttpError as e: + if e.resp.status == 403: + return { + "status": False, + "result": "Service Account: Insufficent Permissions", + } + else: + raise + + +def get_permission_id( + fileID: str, typeID: str, role: str, emailAddress: str = None, domain: str = None +) -> str: # pragma: no cover + permissions = ( + get_service() + .permissions() + .list( + fileId=fileID, + fields="permissions(id,type,role,emailAddress,domain)", + supportsAllDrives=True, + ) + .execute() + .get("permissions", []) + ) + + for p in permissions: + if p["type"] != typeID: + continue + if p["role"] != role: + continue + if typeID in ["user", "group"] and p["emailAddress"] != emailAddress: + continue + if typeID == "domain" and p["domain"] != domain: + continue + return p["id"] + return None + + +def get_files(folderID: str, mimeType: str = None) -> str: # pragma: no cover + query = f"'{folderID}' in parents and trashed = false" + + if mimeType: + query += f" and mimeType = '{mimeType}'" + + files = ( + get_service() + .files() + .list( + q=query, + fields="files(id, name, mimeType)", + supportsAllDrives=True, + includeItemsFromAllDrives=True, + spaces="drive", + ) + .execute() + ) + + return files.get("files", []) diff --git a/hknweb/migrations/0025_drivefolderid.py b/hknweb/migrations/0025_drivefolderid.py new file mode 100644 index 00000000..4c26b4da --- /dev/null +++ b/hknweb/migrations/0025_drivefolderid.py @@ -0,0 +1,28 @@ +# Generated by Django 4.2.17 on 2026-01-28 19:39 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("hknweb", "0024_profile_preferred_courses"), + ] + + operations = [ + migrations.CreateModel( + name="DriveFolderID", + fields=[ + ( + "id", + models.AutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ("title", models.CharField(max_length=100)), + ("folderID", models.CharField(max_length=50)), + ], + ), + ] diff --git a/hknweb/models.py b/hknweb/models.py index 2857694c..1e1a1e60 100644 --- a/hknweb/models.py +++ b/hknweb/models.py @@ -133,3 +133,12 @@ def people(self) -> Dict[str, "QuerySet[User]"]: "Assistant Officer": self.assistant_officers.all(), "Committee Member": self.committee_members.all(), } + + +class DriveFolderID(models.Model): + title = models.CharField(max_length=100) + + folderID = models.CharField(max_length=50) + + def __str__(self) -> str: # pragma: no cover + return self.title diff --git a/hknweb/studentservices/admin.py b/hknweb/studentservices/admin.py index d04ce0d4..d9b8a656 100644 --- a/hknweb/studentservices/admin.py +++ b/hknweb/studentservices/admin.py @@ -78,6 +78,7 @@ class CourseDescriptionAdmin(admin.ModelAdmin): fields = ( "title", "slug", + "folderID", "description", "quick_links", "topics_covered", diff --git a/hknweb/studentservices/migrations/0014_coursedescription_folderid.py b/hknweb/studentservices/migrations/0014_coursedescription_folderid.py new file mode 100644 index 00000000..44016e7a --- /dev/null +++ b/hknweb/studentservices/migrations/0014_coursedescription_folderid.py @@ -0,0 +1,17 @@ +# Generated by Django 4.2.17 on 2026-01-28 19:39 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("studentservices", "0013_alter_coursedescription_description_and_more"), + ] + + operations = [ + migrations.AddField( + model_name="coursedescription", + name="folderID", + field=models.CharField(blank=True, max_length=50), + ), + ] diff --git a/hknweb/studentservices/models.py b/hknweb/studentservices/models.py index fe16f2f5..c821d9f4 100644 --- a/hknweb/studentservices/models.py +++ b/hknweb/studentservices/models.py @@ -107,6 +107,8 @@ class CourseDescription(models.Model): topics_covered = MarkdownxField(max_length=2000, blank=True) more_info = MarkdownxField(max_length=10000, blank=True) + folderID = models.CharField(max_length=50, blank=True) + created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) diff --git a/hknweb/studentservices/views.py b/hknweb/studentservices/views.py index 2a946f78..2ba5f0d5 100644 --- a/hknweb/studentservices/views.py +++ b/hknweb/studentservices/views.py @@ -22,6 +22,7 @@ CourseDescription, ) from hknweb.studentservices.forms import DocumentForm, TourRequest, CourseEditForm +from hknweb.tutoring.models import CribSheet @allow_public_access @@ -181,10 +182,19 @@ def course_guide_data(request): @allow_public_access def course_description(request, slug): course = get_object_or_404(CourseDescription, slug=slug) + cribsheets = CribSheet.objects.filter(course=course, public=True) + quick_links = course.quick_links + if cribsheets: + for sheet in cribsheets: + quick_links += ( + "\n" + + f"[{sheet.title}](https://drive.google.com/file/d/{sheet.fileID}/view)" + ) + context = { "course": course, "description": markdownify(course.description), - "quick_links": markdownify(course.quick_links), + "quick_links": markdownify(quick_links), "prerequisites": markdownify(course.prerequisites), "topics_covered": markdownify(course.topics_covered), "more_info": markdownify(course.more_info), diff --git a/hknweb/templates/tutoring/crib.html b/hknweb/templates/tutoring/crib.html index d5f29ecd..26d94b43 100644 --- a/hknweb/templates/tutoring/crib.html +++ b/hknweb/templates/tutoring/crib.html @@ -25,32 +25,90 @@ {% block content %} -
+ + {% csrf_token %} {{ form }}
+ +


+ +
+ + + + + + + +
+ + - - - - - - - - {% for sheet in crib %} + + + + + + + + + + + {% for sheet in sheets %} - - - + + + + {% empty %} {% endfor %} +
Course Semester PDF Comment Update Date
Course Semester Title Comment Upload Date Public?
{{ sheet.course }} {{ sheet.semester }} Link {{ sheet.comment }} {{ sheet.update_date }} {{ sheet.title}} {{ sheet.comment }} {{ sheet.upload_date }} +
+ {% csrf_token %} + + +
+
+ +
+ + {% if page_obj.has_previous %} + « first + previous + {% endif %} + + + Page {{ page_obj.number }} of {{ page_obj.paginator.num_pages }}. + + + {% if page_obj.has_next %} + next + last » + {% endif %} + +
+ - {% endblock %} diff --git a/hknweb/tutoring/admin.py b/hknweb/tutoring/admin.py index 3790a553..9c0001b6 100644 --- a/hknweb/tutoring/admin.py +++ b/hknweb/tutoring/admin.py @@ -15,11 +15,21 @@ class SlotAdmin(admin.ModelAdmin): @admin.register(CribSheet) class CribSheetsAdmin(admin.ModelAdmin): - fields = ["semester", "course", "pdf", "comment"] - list_display = ["semester", "course", "pdf", "comment", "update_date"] - list_display_links = ["pdf"] - list_filter = ["update_date"] - search_fields = ["course__title"] + fields = [ + "semester", + "course", + "title", + "fileID", + "comment", + "public", + "upload_date", + ] + readonly_fields = ["upload_date"] + list_display = ("semester", "course", "title", "fileID", "public", "upload_date") + list_filter = ("semester", "course", "public") + search_fields = ("title", "course__title", "semester__year", "semester__semester") + + ordering = ("-upload_date",) admin.site.register(Room) diff --git a/hknweb/tutoring/forms.py b/hknweb/tutoring/forms.py index 51867b9c..08dde324 100644 --- a/hknweb/tutoring/forms.py +++ b/hknweb/tutoring/forms.py @@ -6,6 +6,8 @@ from hknweb.studentservices.models import CourseDescription from hknweb.tutoring.models import CribSheet from hknweb.tutoring.views.autocomplete import get_tutors +from django.core.exceptions import ValidationError +import os class CourseFilterForm(forms.Form): @@ -42,7 +44,27 @@ class Meta: fields = ["title", "slug"] -class AddCribForm(forms.ModelForm): - class Meta: - model = CribSheet - fields = ["course", "pdf", "comment"] +class AddCribForm(forms.Form): + course = forms.ModelChoiceField(queryset=CourseDescription.objects.all()) + title = forms.CharField(max_length=100) + comment = forms.CharField(max_length=300, required=False) + file = forms.FileField(widget=forms.ClearableFileInput(attrs={"accept": ".pdf"})) + + MAX_FILE_SIZE = 5 * 1024 * 1024 # 5 MB + ALLOWED_EXTENSIONS = {".pdf"} + ALLOWED_MIME_TYPES = {"application/pdf"} + + def clean_file(self): + file = self.cleaned_data["file"] + + if file.size > self.MAX_FILE_SIZE: + raise ValidationError("File too large (max 5MB).") + + ext = os.path.splitext(file.name)[1].lower() + if ext not in self.ALLOWED_EXTENSIONS: + raise ValidationError("Unsupported file type.") + + if file.content_type not in self.ALLOWED_MIME_TYPES: + raise ValidationError("Unsupported file type.") + + return file diff --git a/hknweb/tutoring/migrations/0004_cribsheet.py b/hknweb/tutoring/migrations/0004_cribsheet_and_more.py similarity index 63% rename from hknweb/tutoring/migrations/0004_cribsheet.py rename to hknweb/tutoring/migrations/0004_cribsheet_and_more.py index 88e4d09f..04024797 100644 --- a/hknweb/tutoring/migrations/0004_cribsheet.py +++ b/hknweb/tutoring/migrations/0004_cribsheet_and_more.py @@ -1,4 +1,4 @@ -# Generated by Django 4.2.17 on 2025-12-03 02:34 +# Generated by Django 4.2.17 on 2026-01-28 19:39 from django.db import migrations, models import django.db.models.deletion @@ -6,7 +6,7 @@ class Migration(migrations.Migration): dependencies = [ - ("studentservices", "0013_alter_coursedescription_description_and_more"), + ("studentservices", "0014_coursedescription_folderid"), ("coursesemester", "0002_auto_20210202_0225"), ("tutoring", "0003_auto_20221128_1703"), ] @@ -24,9 +24,11 @@ class Migration(migrations.Migration): verbose_name="ID", ), ), - ("pdf", models.URLField(blank=True, max_length=300)), - ("comment", models.CharField(blank=True, max_length=300)), - ("update_date", models.DateTimeField(auto_now=True)), + ("fileID", models.CharField(max_length=50)), + ("title", models.CharField(max_length=100)), + ("comment", models.TextField(blank=True)), + ("upload_date", models.DateTimeField(auto_now_add=True)), + ("public", models.BooleanField(default=False)), ( "course", models.ForeignKey( @@ -43,4 +45,11 @@ class Migration(migrations.Migration): ), ], ), + migrations.AddConstraint( + model_name="cribsheet", + constraint=models.UniqueConstraint( + fields=("semester", "course", "title"), + name="unique_cribsheet_per_course_per_semester", + ), + ), ] diff --git a/hknweb/tutoring/models.py b/hknweb/tutoring/models.py index 3539707a..a5e54a33 100644 --- a/hknweb/tutoring/models.py +++ b/hknweb/tutoring/models.py @@ -73,8 +73,23 @@ class CribSheet(models.Model): course = models.ForeignKey(CourseDescription, on_delete=models.PROTECT) - pdf = models.URLField(max_length=300) + fileID = models.CharField(max_length=50) - comment = models.CharField(max_length=300, blank=True) + title = models.CharField(max_length=100) - update_date = models.DateTimeField(auto_now=True) + comment = models.TextField(blank=True) + + upload_date = models.DateTimeField(auto_now_add=True) + + public = models.BooleanField(default=False) + + class Meta: + constraints = [ + models.UniqueConstraint( + fields=["semester", "course", "title"], + name="unique_cribsheet_per_course_per_semester", + ) + ] + + def __str__(self) -> str: # pragma: no cover + return f"{self.course} - {self.title} ({self.semester})" diff --git a/hknweb/tutoring/urls.py b/hknweb/tutoring/urls.py index d5d79817..16bd7913 100644 --- a/hknweb/tutoring/urls.py +++ b/hknweb/tutoring/urls.py @@ -18,5 +18,6 @@ ), path("portal", views.tutoringportal, name="tutoring_portal"), path("courses", views.courses, name="courses"), - path("crib", views.crib, name="crib"), + path("crib", views.CribView.as_view(), name="crib"), + path("crib/toggle_public/", views.toggle_public, name="toggle_public"), ] diff --git a/hknweb/tutoring/views/__init__.py b/hknweb/tutoring/views/__init__.py index da871fe8..6941a237 100644 --- a/hknweb/tutoring/views/__init__.py +++ b/hknweb/tutoring/views/__init__.py @@ -3,4 +3,4 @@ from hknweb.tutoring.views.tutoringportal import tutoringportal from hknweb.tutoring.views.courses import courses from hknweb.tutoring.views.autocomplete import course_autocomplete, tutor_autocomplete -from hknweb.tutoring.views.crib import crib +from hknweb.tutoring.views.crib import CribView, toggle_public diff --git a/hknweb/tutoring/views/crib.py b/hknweb/tutoring/views/crib.py index ee3488fb..ad79508b 100644 --- a/hknweb/tutoring/views/crib.py +++ b/hknweb/tutoring/views/crib.py @@ -1,25 +1,127 @@ -from django.shortcuts import render +from io import BytesIO +from django.shortcuts import render, get_object_or_404, redirect +from django.utils.decorators import method_decorator from hknweb.utils import login_and_committee -from hknweb.tutoring.models import CribSheet +from hknweb.tutoring.models import CribSheet, CourseDescription from hknweb.tutoring.forms import AddCribForm +from hknweb.models import DriveFolderID from hknweb.coursesemester.models import Semester from django.conf import settings +from hknweb.google_drive_utils import ( + create_pdf, + create_folder, + create_permission, + delete_permission, +) +from django.views import View +from django.core.paginator import Paginator +from django.db.models import Q -@login_and_committee(settings.TUTORING_GROUP) -def crib(request): - if request.method == "POST": - curr_semester = Semester.get_current_semester() - form = AddCribForm(request.POST) +class CribView(View): + template = "tutoring/crib.html" + paginte_by = 10 + + def get_queryset(self, request): + qs = CribSheet.objects.all() + + q = request.GET.get("q", "").strip() + if q: + qs = qs.filter( + Q(course__title__icontains=q) + | Q(title__icontains=q) + | Q(semester__semester__icontains=q) + | Q(semester__year__icontains=q) + ) + + course_query = request.GET.get("course", "").strip() + if course_query: + qs = qs.filter(course__title=course_query) + + semester_query = request.GET.get("semester", "").strip() + if semester_query: + qs = qs.filter(semester__name=semester_query) + + return qs.order_by("-upload_date") + + def get_context(self, request, qs): + paginator = Paginator(qs, self.paginte_by) + page_number = request.GET.get("page") + page_obj = paginator.get_page(page_number) + + context = { + "page_obj": page_obj, + "sheets": page_obj.object_list, + "semesters": Semester.objects.all().order_by("-year", "-semester"), + "courses": CourseDescription.objects.all(), + "form": AddCribForm(), + } + + return context + + @method_decorator(login_and_committee(settings.TUTORING_GROUP)) + def get(self, request): + qs = self.get_queryset(request) + context = self.get_context(request, qs) + + return render(request, self.template, context=context) + + @method_decorator(login_and_committee(settings.TUTORING_GROUP)) + def post(self, request): + form = AddCribForm(request.POST, request.FILES) if form.is_valid(): - new_sheet = form.save(commit=False) - new_sheet.semester = curr_semester - new_sheet.save() - crib = CribSheet.objects.all().order_by("-update_date") + file = request.FILES["file"] + course = form.cleaned_data["course"] + title = form.cleaned_data["title"] + comment = form.cleaned_data["comment"] + semester = Semester.get_current_semester() + + folderID = course.folderID + if not folderID: + parent_folderID = DriveFolderID.objects.get( + title="Crib Sheets" + ).folderID + folder_name = f"{course.title}" + result = create_folder(folder_name, parents=[parent_folderID]) + if result["status"]: + folderID = result["result"] + course.folderID = folderID + course.save() + else: + print("Error creating folder for course:", result["result"]) + return + + result = create_pdf(title, file, parents=[folderID], description=comment) + + if result["status"]: + sheet = CribSheet.objects.create( + semester=semester, + course=course, + fileID=result["result"], + title=title, + comment=comment, + ) + sheet.save() + else: + print("Error uploading crib sheet:", result["result"]) + else: + print("Invalid form submission:", form.errors) + + qs = self.get_queryset(request) + context = self.get_context(request, qs) + + return render(request, self.template, context=context) + + +@login_and_committee(settings.TUTORING_GROUP) +def toggle_public(request, pk): + sheet = get_object_or_404(CribSheet, pk=pk) + sheet.public = not sheet.public + sheet.save() - context = { - "form": AddCribForm(), - "crib": crib, - } + if sheet.public: + create_permission(sheet.fileID, typeID="anyone", role="reader") + else: + delete_permission(sheet.fileID, typeID="anyone", role="reader") - return render(request, "tutoring/crib.html", context=context) + return redirect(request.POST.get("next", "/")) From 013c6a458aaaf0c51e609c7b8fbd3a2a9ced6b71 Mon Sep 17 00:00:00 2001 From: Ryan Trinh Date: Wed, 4 Feb 2026 00:53:54 -0800 Subject: [PATCH 3/6] Fixed permission decorators --- hknweb/tutoring/urls.py | 12 +++++++++++- hknweb/tutoring/views/crib.py | 3 --- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/hknweb/tutoring/urls.py b/hknweb/tutoring/urls.py index 16bd7913..35c5bc79 100644 --- a/hknweb/tutoring/urls.py +++ b/hknweb/tutoring/urls.py @@ -1,5 +1,9 @@ from django.urls import path +from hknweb import settings +from django.utils.decorators import method_decorator +from hknweb.utils import login_and_committee + from . import views app_name = "tutoring" @@ -18,6 +22,12 @@ ), path("portal", views.tutoringportal, name="tutoring_portal"), path("courses", views.courses, name="courses"), - path("crib", views.CribView.as_view(), name="crib"), + path( + "crib", + method_decorator(login_and_committee(settings.TUTORING_GROUP), name="dispatch")( + views.CribView.as_view() + ), + name="crib", + ), path("crib/toggle_public/", views.toggle_public, name="toggle_public"), ] diff --git a/hknweb/tutoring/views/crib.py b/hknweb/tutoring/views/crib.py index ad79508b..887ec93c 100644 --- a/hknweb/tutoring/views/crib.py +++ b/hknweb/tutoring/views/crib.py @@ -1,6 +1,5 @@ from io import BytesIO from django.shortcuts import render, get_object_or_404, redirect -from django.utils.decorators import method_decorator from hknweb.utils import login_and_committee from hknweb.tutoring.models import CribSheet, CourseDescription from hknweb.tutoring.forms import AddCribForm @@ -59,14 +58,12 @@ def get_context(self, request, qs): return context - @method_decorator(login_and_committee(settings.TUTORING_GROUP)) def get(self, request): qs = self.get_queryset(request) context = self.get_context(request, qs) return render(request, self.template, context=context) - @method_decorator(login_and_committee(settings.TUTORING_GROUP)) def post(self, request): form = AddCribForm(request.POST, request.FILES) if form.is_valid(): From 85798642e1671f0afa9f6cdcf1841ac842698fbb Mon Sep 17 00:00:00 2001 From: Ryan Trinh Date: Wed, 4 Feb 2026 19:22:56 -0800 Subject: [PATCH 4/6] Added unit tests for crib.py --- coverage.json | 1 + hknweb/google_drive_utils.py | 2 + hknweb/tutoring/urls.py | 12 +--- hknweb/tutoring/views/crib.py | 17 ++--- tests/tutoring/views/test_crib.py | 104 ++++++++++++++++++++++++++++++ 5 files changed, 115 insertions(+), 21 deletions(-) create mode 100644 coverage.json create mode 100644 tests/tutoring/views/test_crib.py diff --git a/coverage.json b/coverage.json new file mode 100644 index 00000000..a71d5b0f --- /dev/null +++ b/coverage.json @@ -0,0 +1 @@ +{"meta": {"format": 3, "version": "7.6.10", "timestamp": "2026-02-04T18:32:25.149651", "branch_coverage": false, "show_contexts": false}, "files": {"hknweb\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\admin.py": {"executed_lines": [1, 3, 15, 16, 17, 18, 19, 20, 21, 22], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 15, 16, 17, 18, 19, 20, 21, 22], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 15, 16, 17, 18, 19, 20, 21, 22], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\migrations\\0001_initial.py": {"executed_lines": [3, 4, 5, 8, 10, 12, 15], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 5, 8, 10, 12, 15], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 5, 8, 10, 12, 15], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\migrations\\0002_auto_20211223_1902.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\migrations\\0003_alter_icsr_course_name.py": {"executed_lines": [3, 6, 7, 11], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 7, 11], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 7, 11], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\migrations\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\models\\__init__.py": {"executed_lines": [1, 2, 8, 13], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 8, 13], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 8, 13], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\models\\base_models.py": {"executed_lines": [1, 4, 5, 6], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 4, 5, 6], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"AcademicEntity": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 4, 5, 6], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\models\\course_surveys\\__init__.py": {"executed_lines": [1, 2, 3], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 3], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\models\\course_surveys\\question.py": {"executed_lines": [1, 4, 5], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 4, 5], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Question": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 4, 5], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\models\\course_surveys\\rating.py": {"executed_lines": [1, 3, 6, 8, 11, 16, 17, 18, 19], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 8, 11, 16, 17, 18, 19], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Rating": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 8, 11, 16, 17, 18, 19], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\models\\course_surveys\\survey.py": {"executed_lines": [1, 2, 4, 7, 9, 14, 15, 16], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 4, 7, 9, 14, 15, 16], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Survey": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 7, 9, 14, 15, 16], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\models\\icsr.py": {"executed_lines": [1, 3, 6, 7, 12, 15, 18, 21, 26, 27, 28, 29, 30, 31], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7, 12, 15, 18, 21, 26, 27, 28, 29, 30, 31], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"ICSR": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 12, 15, 18, 21, 26, 27, 28, 29, 30, 31], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\models\\logistics\\__init__.py": {"executed_lines": [1, 2, 3, 4], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 3, 4], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\models\\logistics\\course.py": {"executed_lines": [1, 4, 5], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 4, 5], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Course": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 4, 5], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\models\\logistics\\department.py": {"executed_lines": [1, 3, 6, 7, 8], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7, 8], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Department": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 8], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\models\\logistics\\instructor.py": {"executed_lines": [1, 3, 6, 7], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Instructor": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\models\\logistics\\semester.py": {"executed_lines": [1, 2, 4, 7, 8, 9, 10, 11, 19, 20], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 4, 7, 8, 9, 10, 11, 19, 20], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Semester": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 7, 8, 9, 10, 11, 19, 20], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\permissions.py": {"executed_lines": [1, 4, 5, 11, 16], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"HasPermissionOrReadOnly.has_permission": {"executed_lines": [16], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 4, 5, 11], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"HasPermissionOrReadOnly": {"executed_lines": [16], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 4, 5, 11], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\serializers\\__init__.py": {"executed_lines": [1, 6, 12], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 6, 12], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 6, 12], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\serializers\\course_surveys\\__init__.py": {"executed_lines": [1, 2, 3], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 3], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\serializers\\course_surveys\\question.py": {"executed_lines": [1, 3, 6, 7, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"QuestionSerializer": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "QuestionSerializer.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\serializers\\course_surveys\\rating.py": {"executed_lines": [1, 3, 6, 7, 10, 14, 15, 16, 26], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7, 10, 14, 15, 16, 26], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"RatingSerializer": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "RatingSerializer.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 10, 14, 15, 16, 26], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\serializers\\course_surveys\\survey.py": {"executed_lines": [1, 3, 4, 7, 8, 11, 13, 14, 15, 24], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 4, 7, 8, 11, 13, 14, 15, 24], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"SurveySerializer": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "SurveySerializer.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 7, 8, 11, 13, 14, 15, 24], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\serializers\\icsr.py": {"executed_lines": [1, 3, 10, 13, 14, 17, 20, 23, 27, 29, 30, 31, 46], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 10, 13, 14, 17, 20, 23, 27, 29, 30, 31, 46], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"ICSRSerializer": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ICSRSerializer.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 10, 13, 14, 17, 20, 23, 27, 29, 30, 31, 46], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\serializers\\logistics\\__init__.py": {"executed_lines": [1, 2, 3, 4], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 3, 4], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\serializers\\logistics\\course.py": {"executed_lines": [1, 3, 6, 7, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"CourseSerializer": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CourseSerializer.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\serializers\\logistics\\department.py": {"executed_lines": [1, 3, 6, 7, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"DepartmentSerializer": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DepartmentSerializer.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\serializers\\logistics\\instructor.py": {"executed_lines": [1, 3, 6, 7, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"InstructorSerializer": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "InstructorSerializer.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\serializers\\logistics\\semester.py": {"executed_lines": [1, 3, 6, 7, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"SemesterSerializer": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "SemesterSerializer.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\urls.py": {"executed_lines": [1, 2, 4, 5, 8, 10, 13, 14, 17, 19, 21], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 4, 5, 8, 10, 13, 14, 17, 19, 21], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"RootView": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 8, 10, 13, 14, 17, 19, 21], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\views\\__init__.py": {"executed_lines": [1, 6, 12, 15, 16, 17, 18, 19, 20, 21, 22, 23], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"register_viewsets": {"executed_lines": [16, 17, 18, 19, 20, 21, 22, 23], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 6, 12, 15], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 6, 12, 15, 16, 17, 18, 19, 20, 21, 22, 23], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\views\\base_viewset.py": {"executed_lines": [1, 3, 6, 7, 14], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7, 14], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"AcademicEntityViewSet": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 14], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\views\\course_surveys\\__init__.py": {"executed_lines": [1, 2, 3], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 3], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\views\\course_surveys\\question.py": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"QuestionViewSet": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\views\\course_surveys\\rating.py": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"RatingViewSet": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\views\\course_surveys\\survey.py": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"SurveyViewSet": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\views\\icsr.py": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"ICSRViewSet": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\views\\logistics\\__init__.py": {"executed_lines": [1, 2, 3, 4], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 3, 4], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\views\\logistics\\course.py": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"CourseViewSet": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\views\\logistics\\department.py": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"DepartmentViewSet": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\views\\logistics\\instructor.py": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"InstructorViewSet": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\views\\logistics\\semester.py": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"SemesterViewSet": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\admin.py": {"executed_lines": [1, 2, 3, 5, 6, 8, 10, 19, 23, 27, 28, 29, 38, 40, 49, 52, 55, 58, 63, 65, 70, 72, 77, 79, 84, 86, 91, 93, 98, 100, 101, 102, 109, 111, 128, 131, 132, 133, 134, 136, 138, 141, 143, 146, 149, 150, 151, 154, 155, 156, 157, 158, 159], "summary": {"covered_lines": 53, "num_statements": 84, "percent_covered": 63.095238095238095, "percent_covered_display": "63", "missing_lines": 31, "excluded_lines": 0}, "missing_lines": [50, 53, 56, 59, 60, 61, 66, 67, 68, 73, 74, 75, 80, 81, 82, 87, 88, 89, 94, 95, 96, 112, 113, 114, 116, 117, 119, 121, 125, 139, 144], "excluded_lines": [], "functions": {"CustomUserAdmin.officer": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [50], "excluded_lines": []}, "CustomUserAdmin.candidate": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [53], "excluded_lines": []}, "CustomUserAdmin.exec": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [56], "excluded_lines": []}, "CustomUserAdmin.add_cand": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [59, 60, 61], "excluded_lines": []}, "CustomUserAdmin.add_officer": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [66, 67, 68], "excluded_lines": []}, "CustomUserAdmin.add_exec": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [73, 74, 75], "excluded_lines": []}, "CustomUserAdmin.remove_cand": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [80, 81, 82], "excluded_lines": []}, "CustomUserAdmin.remove_officer": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [87, 88, 89], "excluded_lines": []}, "CustomUserAdmin.remove_exec": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [94, 95, 96], "excluded_lines": []}, "CustomUserAdmin.get_urls": {"executed_lines": [101, 102, 109], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CustomUserAdmin.provision_candidate_accounts": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [112, 113, 114, 116, 117, 119, 121, 125], "excluded_lines": []}, "AnnouncementAdmin.set_visible": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [139], "excluded_lines": []}, "AnnouncementAdmin.set_invisible": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [144], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 6, 8, 10, 19, 23, 27, 28, 29, 38, 40, 49, 52, 55, 58, 63, 65, 70, 72, 77, 79, 84, 86, 91, 93, 98, 100, 111, 128, 131, 132, 133, 134, 136, 138, 141, 143, 146, 149, 150, 151, 154, 155, 156, 157, 158, 159], "summary": {"covered_lines": 50, "num_statements": 50, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"CustomUserAdmin": {"executed_lines": [101, 102, 109], "summary": {"covered_lines": 3, "num_statements": 32, "percent_covered": 9.375, "percent_covered_display": "9", "missing_lines": 29, "excluded_lines": 0}, "missing_lines": [50, 53, 56, 59, 60, 61, 66, 67, 68, 73, 74, 75, 80, 81, 82, 87, 88, 89, 94, 95, 96, 112, 113, 114, 116, 117, 119, 121, 125], "excluded_lines": []}, "AnnouncementAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [139, 144], "excluded_lines": []}, "CommitteeshipAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 6, 8, 10, 19, 23, 27, 28, 29, 38, 40, 49, 52, 55, 58, 63, 65, 70, 72, 77, 79, 84, 86, 91, 93, 98, 100, 111, 128, 131, 132, 133, 134, 136, 138, 141, 143, 146, 149, 150, 151, 154, 155, 156, 157, 158, 159], "summary": {"covered_lines": 50, "num_statements": 50, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\admin\\__init__.py": {"executed_lines": [1, 2, 3, 4], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 3, 4], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\admin\\announcement.py": {"executed_lines": [1, 3, 6, 7, 10, 11, 12, 13, 15, 17, 20, 22, 25], "summary": {"covered_lines": 13, "num_statements": 15, "percent_covered": 86.66666666666667, "percent_covered_display": "87", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [18, 23], "excluded_lines": [], "functions": {"AnnouncementAdmin.set_visible": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [18], "excluded_lines": []}, "AnnouncementAdmin.set_invisible": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [23], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 10, 11, 12, 13, 15, 17, 20, 22, 25], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"AnnouncementAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [18, 23], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 10, 11, 12, 13, 15, 17, 20, 22, 25], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\admin\\bitbyteactivity.py": {"executed_lines": [1, 3, 6, 7, 8, 9, 10, 17, 18, 25, 27, 28], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"BitByteActivityAdmin.participant_usernames": {"executed_lines": [28], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 8, 9, 10, 17, 18, 25, 27], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"BitByteActivityAdmin": {"executed_lines": [28], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 8, 9, 10, 17, 18, 25, 27], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\admin\\logistics.py": {"executed_lines": [1, 3, 6, 9, 10, 11, 12, 15, 16, 17, 18], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 9, 10, 11, 12, 15, 16, 17, 18], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"ExternalReqAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "LogisticsAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 9, 10, 11, 12, 15, 16, 17, 18], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\admin\\officer_challenge.py": {"executed_lines": [1, 2, 4, 7, 8, 9, 17, 18, 25, 31, 40, 42], "summary": {"covered_lines": 12, "num_statements": 15, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [43, 44, 45], "excluded_lines": [], "functions": {"OffChallengeAdmin.formfield_for_foreignkey": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [43, 44, 45], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 7, 8, 9, 17, 18, 25, 31, 40, 42], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"OffChallengeAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [43, 44, 45], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 7, 8, 9, 17, 18, 25, 31, 40, 42], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\forms.py": {"executed_lines": [1, 2, 4, 6, 9, 14, 15, 16, 17, 18, 27, 28, 29, 30, 31, 38, 39, 40], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"BitByteRequestForm.__init__": {"executed_lines": [39, 40], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 6, 9, 14, 15, 16, 17, 18, 27, 28, 29, 30, 31, 38], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"ChallengeRequestForm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ChallengeRequestForm.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "BitByteRequestForm": {"executed_lines": [39, 40], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "BitByteRequestForm.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 6, 9, 14, 15, 16, 17, 18, 27, 28, 29, 30, 31, 38], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\migrations\\0001_squashed_0029_auto_20220210_2239.py": {"executed_lines": [3, 4, 5, 6, 9, 11, 13, 15, 23], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 5, 6, 9, 11, 13, 15, 23], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 5, 6, 9, 11, 13, 15, 23], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\migrations\\0002_auto_20220228_1255.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\migrations\\0003_auto_20220330_0201.py": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\migrations\\0004_auto_20220404_1936.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\migrations\\0005_auto_20220421_0027.py": {"executed_lines": [3, 4, 7, 9, 14], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 7, 9, 14], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 7, 9, 14], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\migrations\\0006_auto_20220503_1505.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\migrations\\0007_basereq_eventreq_externalreq_formreq_logistics_miscreq.py": {"executed_lines": [3, 4, 5, 8, 10, 17], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 5, 8, 10, 17], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 5, 8, 10, 17], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\migrations\\0008_auto_20220503_1636.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\migrations\\0009_auto_20220503_1641.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\migrations\\0010_auto_20220503_1657.py": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\migrations\\0011_remove_offchallenge_csec_confirmed.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\migrations\\0012_auto_20220504_2020.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\migrations\\0013_auto_20220505_1338.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\migrations\\0014_externalreq_due_date.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\migrations\\0015_logistics_mandatory_events.py": {"executed_lines": [3, 6, 8, 13], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 13], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 13], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\migrations\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\models\\__init__.py": {"executed_lines": [1, 2, 3, 4], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 3, 4], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\models\\announcement.py": {"executed_lines": [1, 2, 4, 7, 8, 14, 15, 17, 18, 20, 21], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"Announcement.__str__": {"executed_lines": [21], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 7, 8, 14, 15, 17, 18, 20], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Announcement": {"executed_lines": [21], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 7, 8, 14, 15, 17, 18, 20], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\models\\bit_byte_activity.py": {"executed_lines": [1, 3, 6, 7, 13, 14, 16, 18, 19, 22, 25, 27, 28, 32, 33, 34, 36, 37, 38], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"BitByteActivity.__str__": {"executed_lines": [28], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "BitByteActivity.is_confirmed": {"executed_lines": [34], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "BitByteActivity.is_rejected": {"executed_lines": [38], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 13, 14, 16, 18, 19, 22, 25, 27, 32, 33, 36, 37], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"BitByteActivity": {"executed_lines": [28, 34, 38], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "BitByteActivity.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 13, 14, 16, 18, 19, 22, 25, 27, 32, 33, 36, 37], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\models\\constants.py": {"executed_lines": [1, 2], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\models\\logistics.py": {"executed_lines": [1, 3, 4, 5, 7, 8, 10, 11, 14, 15, 18, 19, 20, 22, 23, 26, 27, 28, 31, 32, 34, 35, 36, 37, 40, 41, 43, 44, 45, 46, 48, 49, 50, 53, 54, 55, 57, 58, 59, 61, 62, 64, 65, 66, 68, 70, 71, 73, 74, 77, 81, 85, 86, 87, 90, 93, 96, 97, 99, 100, 101, 102, 104, 107, 108, 109, 115, 116, 117, 119, 123, 127], "summary": {"covered_lines": 72, "num_statements": 72, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"EventReq.__str__": {"executed_lines": [23], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "MiscReq.__str__": {"executed_lines": [35, 36, 37], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FormReq.__str__": {"executed_lines": [44, 45, 46], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FormReq.display": {"executed_lines": [49, 50], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Logistics.populate": {"executed_lines": [74, 77, 81, 85, 86, 87, 90, 93, 96, 97, 99, 100, 101, 102, 104, 107, 108, 109, 115, 116, 117, 119, 123, 127], "summary": {"covered_lines": 24, "num_statements": 24, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 7, 8, 10, 11, 14, 15, 18, 19, 20, 22, 26, 27, 28, 31, 32, 34, 40, 41, 43, 48, 53, 54, 55, 57, 58, 59, 61, 62, 64, 65, 66, 68, 70, 71, 73], "summary": {"covered_lines": 39, "num_statements": 39, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"BaseReq": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EventReq": {"executed_lines": [23], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ExternalReq": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "MiscReq": {"executed_lines": [35, 36, 37], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FormReq": {"executed_lines": [44, 45, 46, 49, 50], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Logistics": {"executed_lines": [74, 77, 81, 85, 86, 87, 90, 93, 96, 97, 99, 100, 101, 102, 104, 107, 108, 109, 115, 116, 117, 119, 123, 127], "summary": {"covered_lines": 24, "num_statements": 24, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Logistics.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 7, 8, 10, 11, 14, 15, 18, 19, 20, 22, 26, 27, 28, 31, 32, 34, 40, 41, 43, 48, 53, 54, 55, 57, 58, 59, 61, 62, 64, 65, 66, 68, 70, 71, 73], "summary": {"covered_lines": 39, "num_statements": 39, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\models\\officer_challenge.py": {"executed_lines": [1, 2, 4, 7, 8, 19, 20, 24, 32, 39, 40, 42, 43, 45, 46, 47, 49, 50, 51, 53, 54], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"OffChallenge.confirmed": {"executed_lines": [47], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "OffChallenge.rejected": {"executed_lines": [51], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "OffChallenge.__str__": {"executed_lines": [54], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 7, 8, 19, 20, 24, 32, 39, 40, 42, 43, 45, 46, 49, 50, 53], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"OffChallenge": {"executed_lines": [47, 51, 54], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "OffChallenge.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 7, 8, 19, 20, 24, 32, 39, 40, 42, 43, 45, 46, 49, 50, 53], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\templatetags\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\templatetags\\app_filters.py": {"executed_lines": [1, 2, 4, 6, 9, 10, 11, 14, 15, 16, 19, 20, 21], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"has_group": {"executed_lines": [11], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "is_link": {"executed_lines": [16], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "zip_filter": {"executed_lines": [21], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 6, 9, 10, 14, 15, 19, 20], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 6, 9, 10, 11, 14, 15, 16, 19, 20, 21], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\urls.py": {"executed_lines": [1, 3, 5, 6], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 5, 6], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 5, 6], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\views\\__init__.py": {"executed_lines": [1, 5, 6, 7, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 5, 6, 7, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 5, 6, 7, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\views\\autocomplete.py": {"executed_lines": [1, 2, 3, 5, 7, 11, 12, 13, 14, 15, 16, 21, 25, 26, 27, 28, 29, 30, 35], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"OfficerAutocomplete.get_queryset": {"executed_lines": [14, 15, 16, 21], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "UserAutocomplete.get_queryset": {"executed_lines": [28, 29, 30, 35], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 11, 12, 13, 25, 26, 27], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"OfficerAutocomplete": {"executed_lines": [14, 15, 16, 21], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "UserAutocomplete": {"executed_lines": [28, 29, 30, 35], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 11, 12, 13, 25, 26, 27], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\views\\candidate_portal.py": {"executed_lines": [1, 3, 4, 5, 6, 8, 9, 10, 12, 14, 16, 22, 23, 24, 26, 29, 30, 35, 36, 37, 38, 40, 41, 44, 45, 46, 47, 48, 49, 51, 55, 58, 59, 60, 61, 66, 67, 68, 79], "summary": {"covered_lines": 39, "num_statements": 39, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"get_logistics": {"executed_lines": [23, 24, 26], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "user_candidate_portal": {"executed_lines": [30, 35, 36, 37, 38, 40, 41], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "candidate_portal_view_by_username": {"executed_lines": [46, 47, 48, 49, 51, 55], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "candidate_portal": {"executed_lines": [60, 61, 66, 67, 68, 79], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 6, 8, 9, 10, 12, 14, 16, 22, 29, 44, 45, 58, 59], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 4, 5, 6, 8, 9, 10, 12, 14, 16, 22, 23, 24, 26, 29, 30, 35, 36, 37, 38, 40, 41, 44, 45, 46, 47, 48, 49, 51, 55, 58, 59, 60, 61, 66, 67, 68, 79], "summary": {"covered_lines": 39, "num_statements": 39, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\views\\confirm_request.py": {"executed_lines": [1, 3, 4, 5, 7, 9, 10, 13, 14, 15, 16, 18, 19, 20, 22, 25, 26, 27, 28, 30, 31, 32, 34, 37, 38, 39, 42, 43, 44, 45, 46, 48, 49, 52, 53, 55, 56, 58, 59, 60, 61, 65, 68, 69, 72, 74, 77, 78, 79, 82, 83, 84, 85, 87, 88, 91, 92, 93, 94, 98, 101, 102, 103, 106, 108], "summary": {"covered_lines": 65, "num_statements": 80, "percent_covered": 81.25, "percent_covered_display": "81", "missing_lines": 15, "excluded_lines": 0}, "missing_lines": [40, 50, 54, 62, 63, 66, 70, 71, 80, 89, 95, 96, 99, 104, 105], "excluded_lines": [], "functions": {"confirm_challenge": {"executed_lines": [15, 16, 18, 19, 20, 22], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "confirm_bitbyte": {"executed_lines": [27, 28, 30, 31, 32, 34], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "checkoff_req": {"executed_lines": [39, 42, 43, 44, 45, 46, 48, 49, 52, 53, 55, 56, 58, 59, 60, 61, 65, 68, 69, 72, 74], "summary": {"covered_lines": 21, "num_statements": 29, "percent_covered": 72.41379310344827, "percent_covered_display": "72", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [40, 50, 54, 62, 63, 66, 70, 71], "excluded_lines": []}, "checkoff_event": {"executed_lines": [79, 82, 83, 84, 85, 87, 88, 91, 92, 93, 94, 98, 101, 102, 103, 106, 108], "summary": {"covered_lines": 17, "num_statements": 24, "percent_covered": 70.83333333333333, "percent_covered_display": "71", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [80, 89, 95, 96, 99, 104, 105], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 7, 9, 10, 13, 14, 25, 26, 37, 38, 77, 78], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 4, 5, 7, 9, 10, 13, 14, 15, 16, 18, 19, 20, 22, 25, 26, 27, 28, 30, 31, 32, 34, 37, 38, 39, 42, 43, 44, 45, 46, 48, 49, 52, 53, 55, 56, 58, 59, 60, 61, 65, 68, 69, 72, 74, 77, 78, 79, 82, 83, 84, 85, 87, 88, 91, 92, 93, 94, 98, 101, 102, 103, 106, 108], "summary": {"covered_lines": 65, "num_statements": 80, "percent_covered": 81.25, "percent_covered_display": "81", "missing_lines": 15, "excluded_lines": 0}, "missing_lines": [40, 50, 54, 62, 63, 66, 70, 71, 80, 89, 95, 96, 99, 104, 105], "excluded_lines": []}}}, "hknweb\\candidate\\views\\form_request.py": {"executed_lines": [1, 2, 3, 5, 7, 10, 11, 12, 14, 15, 16, 18, 19, 20, 23, 24, 25, 28, 29, 30, 31, 32, 33, 35], "summary": {"covered_lines": 24, "num_statements": 24, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"request_form": {"executed_lines": [11, 12, 14, 15, 16, 18, 19, 20], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "request_bitbyte": {"executed_lines": [25], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "request_challenge": {"executed_lines": [30, 35], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "request_challenge.form_wrapper": {"executed_lines": [31, 32, 33], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 10, 23, 24, 28, 29], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 7, 10, 11, 12, 14, 15, 16, 18, 19, 20, 23, 24, 25, 28, 29, 30, 31, 32, 33, 35], "summary": {"covered_lines": 24, "num_statements": 24, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\views\\officer_portal.py": {"executed_lines": [1, 2, 4, 5, 6, 8, 9, 11, 12, 15, 16, 17, 28, 29, 30, 32, 34, 35, 36, 37, 39, 40, 41, 42, 44, 45, 46, 51, 58, 59, 60, 61, 62, 65, 68, 75, 79, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 95, 106, 114, 117, 123, 124, 126, 130, 131, 132, 133, 144, 145, 148, 151, 152, 153, 154, 155, 165, 168, 169, 170, 171, 179, 181, 182, 183, 192, 194, 195, 196, 204, 206, 207, 208, 214, 215, 216, 218, 220, 221, 224, 233, 234, 235, 237, 238, 239, 240, 241, 242, 243, 245, 247, 248, 249, 250, 251, 252, 253, 256, 258, 259, 260, 262, 263, 264], "summary": {"covered_lines": 116, "num_statements": 117, "percent_covered": 99.14529914529915, "percent_covered_display": "99", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [255], "excluded_lines": [], "functions": {"officer_portal": {"executed_lines": [17, 28, 29, 30, 32, 34, 35, 36, 37, 39, 40, 41, 42, 44, 45, 46, 51, 58, 59, 60, 61, 62, 65, 68, 75, 79, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 95, 106, 114], "summary": {"covered_lines": 40, "num_statements": 40, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "get_checkoff_info": {"executed_lines": [123, 124, 126, 130, 131, 132, 133, 144, 145], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "get_mandatory_events_info": {"executed_lines": [151, 152, 153, 154, 155, 165], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Bulk.challenges": {"executed_lines": [171, 179], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Bulk.hangouts": {"executed_lines": [183, 192], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Bulk.bitbytes": {"executed_lines": [196, 204], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Bulk.mandatory_events": {"executed_lines": [208, 214, 215, 216, 218], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Bulk.event_reqs": {"executed_lines": [224, 233, 234, 235, 237, 238, 239, 240, 241, 242, 243, 245], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Bulk._reqs_helper": {"executed_lines": [249, 250, 251, 252, 253, 256], "summary": {"covered_lines": 6, "num_statements": 7, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [255], "excluded_lines": []}, "Bulk.form_reqs": {"executed_lines": [260], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Bulk.misc_reqs": {"executed_lines": [264], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 6, 8, 9, 11, 12, 15, 16, 117, 148, 168, 169, 170, 181, 182, 194, 195, 206, 207, 220, 221, 247, 248, 258, 259, 262, 263], "summary": {"covered_lines": 30, "num_statements": 30, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Bulk": {"executed_lines": [171, 179, 183, 192, 196, 204, 208, 214, 215, 216, 218, 224, 233, 234, 235, 237, 238, 239, 240, 241, 242, 243, 245, 249, 250, 251, 252, 253, 256, 260, 264], "summary": {"covered_lines": 31, "num_statements": 32, "percent_covered": 96.875, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [255], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 6, 8, 9, 11, 12, 15, 16, 17, 28, 29, 30, 32, 34, 35, 36, 37, 39, 40, 41, 42, 44, 45, 46, 51, 58, 59, 60, 61, 62, 65, 68, 75, 79, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 95, 106, 114, 117, 123, 124, 126, 130, 131, 132, 133, 144, 145, 148, 151, 152, 153, 154, 155, 165, 168, 169, 170, 181, 182, 194, 195, 206, 207, 220, 221, 247, 248, 258, 259, 262, 263], "summary": {"covered_lines": 85, "num_statements": 85, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\course_surveys\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\course_surveys\\admin.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\course_surveys\\constants.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 51, 62, 63, 64, 67, 68, 69, 70, 71, 72, 80, 81, 82, 83, 87, 90, 91, 92, 93, 94, 97, 98, 104, 110, 116], "summary": {"covered_lines": 73, "num_statements": 73, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 51, 62, 63, 64, 67, 68, 69, 70, 71, 72, 80, 81, 82, 83, 87, 90, 91, 92, 93, 94, 97, 98, 104, 110, 116], "summary": {"covered_lines": 73, "num_statements": 73, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Attr": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CAS": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "COLORS": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "UploadStages": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "UploadStageInfo": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 51, 62, 63, 64, 67, 68, 69, 70, 71, 72, 80, 81, 82, 83, 87, 90, 91, 92, 93, 94, 97, 98, 104, 110, 116], "summary": {"covered_lines": 73, "num_statements": 73, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\course_surveys\\migrations\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\course_surveys\\models.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\course_surveys\\urls.py": {"executed_lines": [1, 3, 6, 7], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 6, 7], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\course_surveys\\views\\__init__.py": {"executed_lines": [1, 2, 4, 5, 6], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 4, 5, 6], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 5, 6], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\course_surveys\\views\\index.py": {"executed_lines": [1, 3, 4, 6, 7, 8, 10, 20, 21, 22, 24, 25, 28, 29, 32, 35, 36, 39, 40, 41, 44, 45, 48, 51, 56, 58, 63, 66, 79, 83, 84, 85, 87, 88, 89, 105, 106, 109, 110, 112, 113, 121, 122, 123, 126, 127, 129, 134, 143, 147, 148, 151, 152, 154, 155, 159, 160, 161, 163, 168, 173, 180, 184, 185, 186, 187, 189, 191, 192, 193, 200, 201, 202, 203, 204, 205, 206, 207, 210, 217, 219, 220, 221, 222, 224, 226, 230, 233, 236, 238, 240, 242, 248, 252, 253, 254, 255, 283, 284, 285, 291, 292, 293, 294, 296, 307, 308, 350, 351], "summary": {"covered_lines": 102, "num_statements": 127, "percent_covered": 80.31496062992126, "percent_covered_display": "80", "missing_lines": 25, "excluded_lines": 25}, "missing_lines": [208, 234, 239, 257, 259, 263, 265, 266, 267, 269, 274, 279, 309, 311, 312, 316, 317, 318, 319, 320, 324, 329, 331, 340, 352], "excluded_lines": [79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103], "functions": {"IndexView.get_context_data": {"executed_lines": [25, 28, 29, 32, 35, 36, 39, 40, 41, 44, 45, 48, 51, 56, 58, 63, 66], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "IndexView._validate_cas": {"executed_lines": [83, 84, 85, 87, 88, 89], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 24}, "missing_lines": [], "excluded_lines": [80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103]}, "IndexView._get_courses": {"executed_lines": [109, 110, 112, 113, 121, 122, 123, 126, 127, 129, 134, 143], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "IndexView._get_instructors": {"executed_lines": [151, 152, 154, 155, 159, 160, 161, 163, 168, 173, 180], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "IndexView._get_start_end_indices": {"executed_lines": [186, 187, 189], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "IndexView._get_pagination_info": {"executed_lines": [193], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "IndexView._get_pages": {"executed_lines": [202, 203, 204, 205, 206, 207, 210, 217], "summary": {"covered_lines": 8, "num_statements": 9, "percent_covered": 88.88888888888889, "percent_covered_display": "89", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [208], "excluded_lines": []}, "IndexView._get_course": {"executed_lines": [221, 222, 224, 226, 230, 233, 236, 238, 240, 242, 248], "summary": {"covered_lines": 11, "num_statements": 13, "percent_covered": 84.61538461538461, "percent_covered_display": "85", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [234, 239], "excluded_lines": []}, "IndexView._get_instructor": {"executed_lines": [254, 255], "summary": {"covered_lines": 2, "num_statements": 11, "percent_covered": 18.181818181818183, "percent_covered_display": "18", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [257, 259, 263, 265, 266, 267, 269, 274, 279], "excluded_lines": []}, "IndexView._get_survey_context": {"executed_lines": [285], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "IndexView._get_survey": {"executed_lines": [293, 294, 296, 307, 308], "summary": {"covered_lines": 5, "num_statements": 17, "percent_covered": 29.41176470588235, "percent_covered_display": "29", "missing_lines": 12, "excluded_lines": 0}, "missing_lines": [309, 311, 312, 316, 317, 318, 319, 320, 324, 329, 331, 340], "excluded_lines": []}, "IndexView._interpolate": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [352], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 6, 7, 8, 10, 20, 21, 22, 24, 79, 105, 106, 147, 148, 184, 185, 191, 192, 200, 201, 219, 220, 252, 253, 283, 284, 291, 292, 350, 351], "summary": {"covered_lines": 31, "num_statements": 31, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [79]}}, "classes": {"IndexView": {"executed_lines": [25, 28, 29, 32, 35, 36, 39, 40, 41, 44, 45, 48, 51, 56, 58, 63, 66, 83, 84, 85, 87, 88, 89, 109, 110, 112, 113, 121, 122, 123, 126, 127, 129, 134, 143, 151, 152, 154, 155, 159, 160, 161, 163, 168, 173, 180, 186, 187, 189, 193, 202, 203, 204, 205, 206, 207, 210, 217, 221, 222, 224, 226, 230, 233, 236, 238, 240, 242, 248, 254, 255, 285, 293, 294, 296, 307, 308], "summary": {"covered_lines": 71, "num_statements": 96, "percent_covered": 73.95833333333333, "percent_covered_display": "74", "missing_lines": 25, "excluded_lines": 24}, "missing_lines": [208, 234, 239, 257, 259, 263, 265, 266, 267, 269, 274, 279, 309, 311, 312, 316, 317, 318, 319, 320, 324, 329, 331, 340, 352], "excluded_lines": [80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103]}, "": {"executed_lines": [1, 3, 4, 6, 7, 8, 10, 20, 21, 22, 24, 79, 105, 106, 147, 148, 184, 185, 191, 192, 200, 201, 219, 220, 252, 253, 283, 284, 291, 292, 350, 351], "summary": {"covered_lines": 31, "num_statements": 31, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [79]}}}, "hknweb\\course_surveys\\views\\merge_instructors.py": {"executed_lines": [1, 3, 4, 6, 7, 10, 11, 12, 15, 16, 17, 18, 21, 22, 23, 25, 26, 27, 29, 31], "summary": {"covered_lines": 20, "num_statements": 22, "percent_covered": 90.9090909090909, "percent_covered_display": "91", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [13, 19], "excluded_lines": [], "functions": {"merge_instructors": {"executed_lines": [12, 15, 16, 17, 18, 21, 22, 23, 25, 26, 27, 29, 31], "summary": {"covered_lines": 13, "num_statements": 15, "percent_covered": 86.66666666666667, "percent_covered_display": "87", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [13, 19], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 6, 7, 10, 11], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 4, 6, 7, 10, 11, 12, 15, 16, 17, 18, 21, 22, 23, 25, 26, 27, 29, 31], "summary": {"covered_lines": 20, "num_statements": 22, "percent_covered": 90.9090909090909, "percent_covered_display": "91", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [13, 19], "excluded_lines": []}}}, "hknweb\\course_surveys\\views\\merge_questions.py": {"executed_lines": [1, 3, 4, 6, 7, 10, 11, 12, 15, 16, 17, 18, 21, 22, 23, 25, 26, 27, 29, 31], "summary": {"covered_lines": 20, "num_statements": 22, "percent_covered": 90.9090909090909, "percent_covered_display": "91", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [13, 19], "excluded_lines": [], "functions": {"merge_questions": {"executed_lines": [12, 15, 16, 17, 18, 21, 22, 23, 25, 26, 27, 29, 31], "summary": {"covered_lines": 13, "num_statements": 15, "percent_covered": 86.66666666666667, "percent_covered_display": "87", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [13, 19], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 6, 7, 10, 11], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 4, 6, 7, 10, 11, 12, 15, 16, 17, 18, 21, 22, 23, 25, 26, 27, 29, 31], "summary": {"covered_lines": 20, "num_statements": 22, "percent_covered": 90.9090909090909, "percent_covered_display": "91", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [13, 19], "excluded_lines": []}}}, "hknweb\\course_surveys\\views\\upload.py": {"executed_lines": [1, 4, 6, 7, 15, 16, 17, 19, 22, 42, 45, 64, 85], "summary": {"covered_lines": 13, "num_statements": 36, "percent_covered": 36.111111111111114, "percent_covered_display": "36", "missing_lines": 23, "excluded_lines": 0}, "missing_lines": [20, 23, 25, 26, 27, 28, 29, 31, 37, 38, 40, 43, 46, 47, 48, 52, 59, 65, 66, 67, 71, 80, 86], "excluded_lines": [], "functions": {"UploadView.post": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [20], "excluded_lines": []}, "UploadView.get_context_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [23, 25, 26, 27, 28, 29, 31, 37, 38, 40], "excluded_lines": []}, "UploadView._present_upload": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [43], "excluded_lines": []}, "UploadView._present_questions": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [46, 47, 48, 52, 59], "excluded_lines": []}, "UploadView._present_instructors": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [65, 66, 67, 71, 80], "excluded_lines": []}, "UploadView._finished": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [86], "excluded_lines": []}, "": {"executed_lines": [1, 4, 6, 7, 15, 16, 17, 19, 22, 42, 45, 64, 85], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"UploadView": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 23, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 23, "excluded_lines": 0}, "missing_lines": [20, 23, 25, 26, 27, 28, 29, 31, 37, 38, 40, 43, 46, 47, 48, 52, 59, 65, 66, 67, 71, 80, 86], "excluded_lines": []}, "": {"executed_lines": [1, 4, 6, 7, 15, 16, 17, 19, 22, 42, 45, 64, 85], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\course_surveys\\views\\upload_csv.py": {"executed_lines": [1, 3, 4, 5, 7, 9, 12, 13], "summary": {"covered_lines": 8, "num_statements": 20, "percent_covered": 40.0, "percent_covered_display": "40", "missing_lines": 12, "excluded_lines": 0}, "missing_lines": [14, 15, 16, 18, 20, 21, 22, 23, 24, 25, 29, 32], "excluded_lines": [], "functions": {"upload_csv": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 12, "excluded_lines": 0}, "missing_lines": [14, 15, 16, 18, 20, 21, 22, 23, 24, 25, 29, 32], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 7, 9, 12, 13], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 4, 5, 7, 9, 12, 13], "summary": {"covered_lines": 8, "num_statements": 20, "percent_covered": 40.0, "percent_covered_display": "40", "missing_lines": 12, "excluded_lines": 0}, "missing_lines": [14, 15, 16, 18, 20, 21, 22, 23, 24, 25, 29, 32], "excluded_lines": []}}}, "hknweb\\coursesemester\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\coursesemester\\admin.py": {"executed_lines": [1, 2, 4, 5, 6, 7], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 4, 5, 6, 7], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 5, 6, 7], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\coursesemester\\migrations\\0001_initial.py": {"executed_lines": [3, 4, 7, 9, 11, 14], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 7, 9, 11, 14], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 7, 9, 11, 14], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\coursesemester\\migrations\\0002_auto_20210202_0225.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\coursesemester\\migrations\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\coursesemester\\models.py": {"executed_lines": [1, 5, 6, 9, 13, 17, 18, 19, 21, 25, 26, 27, 28, 30, 34, 35, 36, 38, 39, 43, 44], "summary": {"covered_lines": 21, "num_statements": 33, "percent_covered": 63.63636363636363, "percent_covered_display": "64", "missing_lines": 12, "excluded_lines": 0}, "missing_lines": [14, 22, 31, 45, 46, 47, 48, 49, 52, 53, 54, 57], "excluded_lines": [], "functions": {"Department.__str__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [14], "excluded_lines": []}, "Instructor.__str__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [22], "excluded_lines": []}, "Course.__str__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [31], "excluded_lines": []}, "Semester.__str__": {"executed_lines": [39], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Semester.get_current_semester": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [45, 46, 47, 48, 49, 52, 53, 54, 57], "excluded_lines": []}, "": {"executed_lines": [1, 5, 6, 9, 13, 17, 18, 19, 21, 25, 26, 27, 28, 30, 34, 35, 36, 38, 43, 44], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Department": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [14], "excluded_lines": []}, "Instructor": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [22], "excluded_lines": []}, "Course": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [31], "excluded_lines": []}, "Semester": {"executed_lines": [39], "summary": {"covered_lines": 1, "num_statements": 10, "percent_covered": 10.0, "percent_covered_display": "10", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [45, 46, 47, 48, 49, 52, 53, 54, 57], "excluded_lines": []}, "": {"executed_lines": [1, 5, 6, 9, 13, 17, 18, 19, 21, 25, 26, 27, 28, 30, 34, 35, 36, 38, 43, 44], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\coursesemester\\views.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\admin\\__init__.py": {"executed_lines": [1, 3, 4, 5, 6, 10, 11, 12, 14], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 4, 5, 6, 10, 11, 12, 14], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 4, 5, 6, 10, 11, 12, 14], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\admin\\attendance\\__init__.py": {"executed_lines": [1, 2], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\admin\\attendance\\attendance_form.py": {"executed_lines": [1, 3, 6, 7, 8, 9], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7, 8, 9], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"AttendanceFormAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 8, 9], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\admin\\attendance\\attendance_response.py": {"executed_lines": [1, 3, 6, 7, 8, 9], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7, 8, 9], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"AttendanceResponseAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 8, 9], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\admin\\event.py": {"executed_lines": [1, 3, 4, 5, 8, 9, 10, 25, 26, 35, 43, 49, 50, 52], "summary": {"covered_lines": 14, "num_statements": 21, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [53, 54, 55, 57, 58, 59, 63], "excluded_lines": [], "functions": {"EventAdmin.delete_queryset": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [53, 54, 55, 57, 58, 59, 63], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 8, 9, 10, 25, 26, 35, 43, 49, 50, 52], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"EventAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [53, 54, 55, 57, 58, 59, 63], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 8, 9, 10, 25, 26, 35, 43, 49, 50, 52], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\admin\\event_type.py": {"executed_lines": [1, 3, 6, 7, 8, 9], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7, 8, 9], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"EventTypeAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 8, 9], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\admin\\google_calendar\\__init__.py": {"executed_lines": [1, 4], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 4], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 4], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\admin\\google_calendar\\access_level_mapping.py": {"executed_lines": [1, 3, 6, 7, 8, 9], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7, 8, 9], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"GCalAccessLevelMappingAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 8, 9], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\admin\\google_calendar\\credentials.py": {"executed_lines": [1, 2, 4, 6, 7, 13, 14, 15, 18, 19, 20, 22, 24, 28, 29, 55], "summary": {"covered_lines": 16, "num_statements": 32, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 16, "excluded_lines": 0}, "missing_lines": [25, 26, 31, 32, 35, 37, 38, 39, 41, 43, 47, 48, 49, 51, 52, 53], "excluded_lines": [], "functions": {"GoogleCalendarCredentialsAdmin.provision_calendar": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [25, 26], "excluded_lines": []}, "GoogleCalendarCredentialsAdmin._provision_calendar": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 14, "excluded_lines": 0}, "missing_lines": [31, 32, 35, 37, 38, 39, 41, 43, 47, 48, 49, 51, 52, 53], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 6, 7, 13, 14, 15, 18, 19, 20, 22, 24, 28, 29, 55], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"GoogleCalendarCredentialsAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 16, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 16, "excluded_lines": 0}, "missing_lines": [25, 26, 31, 32, 35, 37, 38, 39, 41, 43, 47, 48, 49, 51, 52, 53], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 6, 7, 13, 14, 15, 18, 19, 20, 22, 24, 28, 29, 55], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\admin\\ical_view.py": {"executed_lines": [1, 3, 6, 7, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"ICalViewAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\admin\\rsvp.py": {"executed_lines": [1, 2, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 21, 22, 24, 26, 29, 32, 34, 37, 39, 42, 44], "summary": {"covered_lines": 23, "num_statements": 31, "percent_covered": 74.19354838709677, "percent_covered_display": "74", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [27, 30, 35, 40, 45, 46, 47, 52], "excluded_lines": [], "functions": {"RsvpAdmin.full_name": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [27], "excluded_lines": []}, "RsvpAdmin.mark_confirmed": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [30], "excluded_lines": []}, "RsvpAdmin.mark_unconfirmed": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [35], "excluded_lines": []}, "RsvpAdmin.cute_animal": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [40], "excluded_lines": []}, "RsvpAdmin.delete_queryset": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [45, 46, 47, 52], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 21, 22, 24, 26, 29, 32, 34, 37, 39, 42, 44], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"RsvpAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [27, 30, 35, 40, 45, 46, 47, 52], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 21, 22, 24, 26, 29, 32, 34, 37, 39, 42, 44], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\constants.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 21, 23], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 21, 23], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"ATTR": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 21, 23], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\forms\\__init__.py": {"executed_lines": [1, 2, 3], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 3], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\forms\\attendance\\__init__.py": {"executed_lines": [1, 2], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\forms\\attendance\\create_response.py": {"executed_lines": [1, 3, 6, 7, 8, 10, 11, 12, 14, 18], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7, 8, 10, 11, 12, 14, 18], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"AttendanceResponseForm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "AttendanceResponseForm.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 8, 10, 11, 12, 14, 18], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\forms\\attendance\\manage_form.py": {"executed_lines": [1, 3, 6, 7, 9, 10, 11, 13, 17], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7, 9, 10, 11, 13, 17], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"AttendanceFormForm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "AttendanceFormForm.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 9, 10, 11, 13, 17], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\forms\\event\\__init__.py": {"executed_lines": [1, 2], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\forms\\event\\create.py": {"executed_lines": [1, 3, 4, 5, 8, 9, 10, 13, 16, 22, 29, 30, 31, 43, 47], "summary": {"covered_lines": 15, "num_statements": 23, "percent_covered": 65.21739130434783, "percent_covered_display": "65", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [48, 49, 50, 51, 52, 53, 57, 58], "excluded_lines": [], "functions": {"EventForm.clean": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [48, 49, 50, 51, 52, 53, 57, 58], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 8, 9, 10, 13, 16, 22, 29, 30, 31, 43, 47], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"EventForm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [48, 49, 50, 51, 52, 53, 57, 58], "excluded_lines": []}, "EventForm.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 8, 9, 10, 13, 16, 22, 29, 30, 31, 43, 47], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\forms\\event\\update.py": {"executed_lines": [1, 3, 4, 7, 8, 9, 10, 12, 13, 14, 26, 30], "summary": {"covered_lines": 12, "num_statements": 17, "percent_covered": 70.58823529411765, "percent_covered_display": "71", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [31, 32, 33, 34, 35], "excluded_lines": [], "functions": {"EventUpdateForm.clean": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [31, 32, 33, 34, 35], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 7, 8, 9, 10, 12, 13, 14, 26, 30], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"EventUpdateForm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [31, 32, 33, 34, 35], "excluded_lines": []}, "EventUpdateForm.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 7, 8, 9, 10, 12, 13, 14, 26, 30], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\forms\\event_photo.py": {"executed_lines": [1, 3, 6, 7, 8, 9], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7, 8, 9], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"EventPhotoForm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EventPhotoForm.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 8, 9], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\google_calendar_utils.py": {"executed_lines": [1, 3, 4, 5, 7, 10, 11, 12, 15, 27, 28, 29, 30, 31, 33, 36, 43, 50, 52, 53, 55, 56, 58, 59, 61, 62, 67, 68, 73, 76, 77, 109, 110, 129, 130, 146, 147, 170, 171, 172, 173, 175, 176, 179, 180], "summary": {"covered_lines": 33, "num_statements": 33, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 119}, "missing_lines": [], "excluded_lines": [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 36, 37, 38, 39, 40, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196], "functions": {"get_credentials": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 8}, "missing_lines": [], "excluded_lines": [17, 18, 19, 20, 21, 22, 23, 24]}, "check_credentials_wrapper": {"executed_lines": [28, 33], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "check_credentials_wrapper.new_fn": {"executed_lines": [29, 30, 31], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "get_service": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 4}, "missing_lines": [], "excluded_lines": [37, 38, 39, 40]}, "create_event_resource": {"executed_lines": [50, 52, 53, 55, 56, 58, 59, 61, 62, 67, 68, 73], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "create_event": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 22}, "missing_lines": [], "excluded_lines": [85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106]}, "update_event": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 14}, "missing_lines": [], "excluded_lines": [113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126]}, "delete_event": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 11}, "missing_lines": [], "excluded_lines": [133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143]}, "clear_calendar": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 20}, "missing_lines": [], "excluded_lines": [148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167]}, "get_calendar_link": {"executed_lines": [171, 172, 173, 175, 176], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "create_personal_calendar": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 16}, "missing_lines": [], "excluded_lines": [181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196]}, "": {"executed_lines": [1, 3, 4, 5, 7, 10, 11, 12, 15, 27, 36, 43, 76, 77, 109, 110, 129, 130, 146, 147, 170, 179, 180], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 24}, "missing_lines": [], "excluded_lines": [15, 16, 36, 76, 77, 78, 79, 80, 81, 82, 83, 84, 109, 110, 111, 112, 129, 130, 131, 132, 146, 147, 179, 180]}}, "classes": {"": {"executed_lines": [1, 3, 4, 5, 7, 10, 11, 12, 15, 27, 28, 29, 30, 31, 33, 36, 43, 50, 52, 53, 55, 56, 58, 59, 61, 62, 67, 68, 73, 76, 77, 109, 110, 129, 130, 146, 147, 170, 171, 172, 173, 175, 176, 179, 180], "summary": {"covered_lines": 33, "num_statements": 33, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 119}, "missing_lines": [], "excluded_lines": [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 36, 37, 38, 39, 40, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196]}}}, "hknweb\\events\\migrations\\0001_squashed_0017_rsvp_google_calendar_event_id.py": {"executed_lines": [3, 4, 5, 6, 7, 8, 11, 13, 15, 17, 22], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 5, 6, 7, 8, 11, 13, 15, 17, 22], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 5, 6, 7, 8, 11, 13, 15, 17, 22], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\migrations\\0002_auto_20220228_1257.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\migrations\\0003_gcalaccesslevelmapping.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\migrations\\0004_auto_20220303_2140.py": {"executed_lines": [3, 4, 7, 9, 14], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 7, 9, 14], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 7, 9, 14], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\migrations\\0005_attendanceform.py": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\migrations\\0006_attendanceresponse.py": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\migrations\\0007_attendanceresponse_feedback.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\migrations\\0008_attendanceform_description.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\migrations\\0009_auto_20220506_1809.py": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\migrations\\0010_event_photographer.py": {"executed_lines": [3, 4, 5, 8, 10, 15], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 5, 8, 10, 15], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 5, 8, 10, 15], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\migrations\\0011_eventphoto.py": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\migrations\\0012_icalview.py": {"executed_lines": [3, 4, 5, 6, 9, 10, 15], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 5, 6, 9, 10, 15], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 5, 6, 9, 10, 15], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\migrations\\0013_alter_icalview_options_alter_event_description.py": {"executed_lines": [3, 4, 7, 8, 12], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 7, 8, 12], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 7, 8, 12], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\migrations\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\models\\__init__.py": {"executed_lines": [1, 2, 3, 4, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 3, 4, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\models\\attendance\\__init__.py": {"executed_lines": [1, 2], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\models\\attendance\\attendance_form.py": {"executed_lines": [1, 3, 6, 7, 8, 9, 11, 19], "summary": {"covered_lines": 8, "num_statements": 14, "percent_covered": 57.142857142857146, "percent_covered_display": "57", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [12, 13, 14, 16, 17, 20], "excluded_lines": [], "functions": {"AttendanceForm.__repr__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [12, 13, 14, 16, 17], "excluded_lines": []}, "AttendanceForm.__str__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [20], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 8, 9, 11, 19], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"AttendanceForm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [12, 13, 14, 16, 17, 20], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 8, 9, 11, 19], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\models\\attendance\\attendance_response.py": {"executed_lines": [1, 3, 4, 7, 8, 9, 10, 12, 15, 18], "summary": {"covered_lines": 10, "num_statements": 15, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [13, 16, 19, 20, 22], "excluded_lines": [], "functions": {"AttendanceResponse.__repr__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [13], "excluded_lines": []}, "AttendanceResponse.__str__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [16], "excluded_lines": []}, "AttendanceResponse.save": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [19, 20, 22], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 7, 8, 9, 10, 12, 15, 18], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"AttendanceResponse": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [13, 16, 19, 20, 22], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 7, 8, 9, 10, 12, 15, 18], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\models\\constants.py": {"executed_lines": [1], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\models\\event.py": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, 26, 27, 28, 29, 37, 38, 42, 44, 67, 68, 70, 71, 73, 74, 76, 77, 79, 80, 81, 82, 84, 85, 86, 87, 94, 96, 97, 99, 100, 101, 102, 142, 144], "summary": {"covered_lines": 52, "num_statements": 81, "percent_covered": 64.19753086419753, "percent_covered_display": "64", "missing_lines": 29, "excluded_lines": 0}, "missing_lines": [45, 46, 47, 48, 49, 50, 51, 52, 54, 55, 56, 57, 58, 60, 61, 62, 63, 65, 111, 112, 116, 117, 121, 130, 139, 140, 145, 146, 148], "excluded_lines": [], "functions": {"Event.semester": {"executed_lines": [42], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Event.to_ical_obj": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 14, "excluded_lines": 0}, "missing_lines": [45, 46, 47, 48, 49, 50, 51, 52, 54, 60, 61, 62, 63, 65], "excluded_lines": []}, "Event.to_ical_obj.make_attendee": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [55, 56, 57, 58], "excluded_lines": []}, "Event.get_absolute_url": {"executed_lines": [68], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Event.__repr__": {"executed_lines": [71], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Event.__str__": {"executed_lines": [74], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Event.admitted_set": {"executed_lines": [77], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Event.waitlist_set": {"executed_lines": [80, 81, 82], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Event.on_waitlist": {"executed_lines": [85, 86, 87], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Event.newly_off_waitlist_rsvps": {"executed_lines": [96, 97], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Event.save": {"executed_lines": [100, 101, 102, 142], "summary": {"covered_lines": 4, "num_statements": 12, "percent_covered": 33.333333333333336, "percent_covered_display": "33", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [111, 112, 116, 117, 121, 130, 139, 140], "excluded_lines": []}, "Event.delete": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [145, 146, 148], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, 26, 27, 28, 29, 37, 38, 44, 67, 70, 73, 76, 79, 84, 94, 99, 144], "summary": {"covered_lines": 35, "num_statements": 35, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Event": {"executed_lines": [42, 68, 71, 74, 77, 80, 81, 82, 85, 86, 87, 96, 97, 100, 101, 102, 142], "summary": {"covered_lines": 17, "num_statements": 46, "percent_covered": 36.95652173913044, "percent_covered_display": "37", "missing_lines": 29, "excluded_lines": 0}, "missing_lines": [45, 46, 47, 48, 49, 50, 51, 52, 54, 55, 56, 57, 58, 60, 61, 62, 63, 65, 111, 112, 116, 117, 121, 130, 139, 140, 145, 146, 148], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, 26, 27, 28, 29, 37, 38, 44, 67, 70, 73, 76, 79, 84, 94, 99, 144], "summary": {"covered_lines": 35, "num_statements": 35, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\models\\event_photo.py": {"executed_lines": [1, 3, 5, 8, 9, 10, 12, 15], "summary": {"covered_lines": 8, "num_statements": 10, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [13, 16], "excluded_lines": [], "functions": {"EventPhoto.__str__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [13], "excluded_lines": []}, "EventPhoto.photo_display_url": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [16], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 8, 9, 10, 12, 15], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"EventPhoto": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [13, 16], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 8, 9, 10, 12, 15], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\models\\event_type.py": {"executed_lines": [1, 4, 5, 7, 9, 10, 12, 13], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"EventType.__repr__": {"executed_lines": [10], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EventType.__str__": {"executed_lines": [13], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 4, 5, 7, 9, 12], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"EventType": {"executed_lines": [10, 13], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 4, 5, 7, 9, 12], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\models\\google_calendar\\__init__.py": {"executed_lines": [1, 4], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 4], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 4], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\models\\google_calendar\\access_level_mapping.py": {"executed_lines": [1, 3, 6, 7, 11, 13, 14, 15, 16, 17], "summary": {"covered_lines": 10, "num_statements": 12, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [19, 20], "excluded_lines": [], "functions": {"GCalAccessLevelMapping.get_calendar_id": {"executed_lines": [15, 16, 17], "summary": {"covered_lines": 3, "num_statements": 5, "percent_covered": 60.0, "percent_covered_display": "60", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [19, 20], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 11, 13, 14], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"GCalAccessLevelMapping": {"executed_lines": [15, 16, 17], "summary": {"covered_lines": 3, "num_statements": 5, "percent_covered": 60.0, "percent_covered_display": "60", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [19, 20], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 11, 13, 14], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\models\\google_calendar\\credentials.py": {"executed_lines": [1, 4, 5, 7, 8], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 4, 5, 7, 8], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"GoogleCalendarCredentials": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "GoogleCalendarCredentials.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 4, 5, 7, 8], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\models\\ical_view.py": {"executed_lines": [1, 2, 3, 5, 6, 7, 8, 10, 11, 14, 15, 16, 18, 19, 20, 21, 23, 24, 27, 40], "summary": {"covered_lines": 20, "num_statements": 39, "percent_covered": 51.282051282051285, "percent_covered_display": "51", "missing_lines": 19, "excluded_lines": 0}, "missing_lines": [25, 28, 29, 30, 31, 33, 34, 35, 37, 38, 51, 53, 54, 55, 56, 60, 61, 62, 63], "excluded_lines": [], "functions": {"ICalView.url": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [25], "excluded_lines": []}, "ICalView.to_ical_obj": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [28, 29, 30, 31, 33, 34, 35, 37, 38], "excluded_lines": []}, "ICalView.dummy_event": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [51, 53, 54, 55, 56, 60, 61, 62, 63], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 6, 7, 8, 10, 11, 14, 15, 16, 18, 19, 20, 21, 23, 24, 27, 40], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"ICalView": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 19, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 19, "excluded_lines": 0}, "missing_lines": [25, 28, 29, 30, 31, 33, 34, 35, 37, 38, 51, 53, 54, 55, 56, 60, 61, 62, 63], "excluded_lines": []}, "ICalView.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 6, 7, 8, 10, 11, 14, 15, 16, 18, 19, 20, 21, 23, 24, 27, 40], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\models\\rsvp.py": {"executed_lines": [1, 2, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 17, 18, 20, 21, 23, 24, 26, 27, 28, 30, 31, 32, 36, 60, 61, 68], "summary": {"covered_lines": 28, "num_statements": 34, "percent_covered": 82.3529411764706, "percent_covered_display": "82", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [38, 39, 48, 58, 62, 63], "excluded_lines": [], "functions": {"Rsvp.__repr__": {"executed_lines": [21], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Rsvp.__str__": {"executed_lines": [24], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Rsvp.has_not_rsvpd": {"executed_lines": [28], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Rsvp.save": {"executed_lines": [31, 32, 36], "summary": {"covered_lines": 3, "num_statements": 7, "percent_covered": 42.857142857142854, "percent_covered_display": "43", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [38, 39, 48, 58], "excluded_lines": []}, "Rsvp.delete": {"executed_lines": [61, 68], "summary": {"covered_lines": 2, "num_statements": 4, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [62, 63], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 17, 18, 20, 23, 26, 27, 30, 60], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Rsvp": {"executed_lines": [21, 24, 28, 31, 32, 36, 61, 68], "summary": {"covered_lines": 8, "num_statements": 14, "percent_covered": 57.142857142857146, "percent_covered_display": "57", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [38, 39, 48, 58, 62, 63], "excluded_lines": []}, "Rsvp.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 17, 18, 20, 23, 26, 27, 30, 60], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\templatetags\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\templatetags\\event_filters.py": {"executed_lines": [1, 2, 3, 4, 5, 7, 10, 11, 12, 15, 16, 17, 19, 20, 22, 25, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43, 46, 47, 48, 49, 50, 52, 53, 56, 57, 58, 59, 60, 61], "summary": {"covered_lines": 41, "num_statements": 41, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"event_name": {"executed_lines": [12], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "military_hour_to_hour": {"executed_lines": [16, 17, 19, 20, 22, 25], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "get_time_string": {"executed_lines": [31, 32, 33, 34], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "get_date_string": {"executed_lines": [38, 39, 40, 41, 42, 43], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "get_event_timerange": {"executed_lines": [47, 48, 49, 50, 52, 53], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "process_event_time": {"executed_lines": [58, 59, 60, 61], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 7, 10, 11, 15, 30, 37, 46, 56, 57], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 7, 10, 11, 12, 15, 16, 17, 19, 20, 22, 25, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43, 46, 47, 48, 49, 50, 52, 53, 56, 57, 58, 59, 60, 61], "summary": {"covered_lines": 41, "num_statements": 41, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\urls.py": {"executed_lines": [1, 3, 5, 7, 14, 22, 29, 42], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 5, 7, 14, 22, 29, 42], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 5, 7, 14, 22, 29, 42], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\utils.py": {"executed_lines": [1, 2, 4, 5, 6, 8, 9, 10, 13, 30, 34, 40, 43, 58, 77, 78, 79, 80, 81, 82, 83, 84, 87, 90, 91, 92, 93, 100, 101, 104, 105, 109], "summary": {"covered_lines": 32, "num_statements": 43, "percent_covered": 74.4186046511628, "percent_covered_display": "74", "missing_lines": 11, "excluded_lines": 0}, "missing_lines": [35, 36, 37, 38, 44, 55, 94, 99, 106, 107, 110], "excluded_lines": [], "functions": {"get_events": {"executed_lines": [30, 34, 40], "summary": {"covered_lines": 3, "num_statements": 7, "percent_covered": 42.857142857142854, "percent_covered_display": "43", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [35, 36, 37, 38], "excluded_lines": []}, "create_event": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [44, 55], "excluded_lines": []}, "generate_recurrence_times": {"executed_lines": [77, 78, 79, 80, 81, 82, 83, 84], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "format_url": {"executed_lines": [91, 92, 93, 100, 101], "summary": {"covered_lines": 5, "num_statements": 7, "percent_covered": 71.42857142857143, "percent_covered_display": "71", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [94, 99], "excluded_lines": []}, "SingleThreadWrapper.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [106, 107], "excluded_lines": []}, "SingleThreadWrapper.run": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [110], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 6, 8, 9, 10, 13, 43, 58, 87, 90, 104, 105, 109], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"SingleThreadWrapper": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [106, 107, 110], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 6, 8, 9, 10, 13, 30, 34, 40, 43, 58, 77, 78, 79, 80, 81, 82, 83, 84, 87, 90, 91, 92, 93, 100, 101, 104, 105, 109], "summary": {"covered_lines": 32, "num_statements": 40, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [35, 36, 37, 38, 44, 55, 94, 99], "excluded_lines": []}}}, "hknweb\\events\\views\\__init__.py": {"executed_lines": [1, 7, 12, 18], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 7, 12, 18], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 7, 12, 18], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\views\\aggregate_displays\\__init__.py": {"executed_lines": [1, 2, 3], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 3], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\views\\aggregate_displays\\calendar.py": {"executed_lines": [1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 15, 16, 17, 18, 21, 22, 24, 34, 35, 40, 48, 49, 51, 52, 53, 54, 56, 64, 67, 68, 69, 70, 71, 73, 74, 75, 84, 104, 106, 109], "summary": {"covered_lines": 40, "num_statements": 53, "percent_covered": 75.47169811320755, "percent_covered_display": "75", "missing_lines": 13, "excluded_lines": 0}, "missing_lines": [19, 36, 37, 77, 85, 86, 87, 94, 95, 96, 97, 105, 107], "excluded_lines": [], "functions": {"index": {"executed_lines": [17, 18, 21, 22, 24], "summary": {"covered_lines": 5, "num_statements": 6, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [19], "excluded_lines": []}, "ical": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [36, 37], "excluded_lines": []}, "calendar_helper": {"executed_lines": [48, 49, 51, 52, 53, 54, 56, 64], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "get_calendars": {"executed_lines": [68, 69, 70, 71, 73, 74, 75, 84, 104, 106, 109], "summary": {"covered_lines": 11, "num_statements": 21, "percent_covered": 52.38095238095238, "percent_covered_display": "52", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [77, 85, 86, 87, 94, 95, 96, 97, 105, 107], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 15, 16, 34, 35, 40, 67], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 15, 16, 17, 18, 21, 22, 24, 34, 35, 40, 48, 49, 51, 52, 53, 54, 56, 64, 67, 68, 69, 70, 71, 73, 74, 75, 84, 104, 106, 109], "summary": {"covered_lines": 40, "num_statements": 53, "percent_covered": 75.47169811320755, "percent_covered_display": "75", "missing_lines": 13, "excluded_lines": 0}, "missing_lines": [19, 36, 37, 77, 85, 86, 87, 94, 95, 96, 97, 105, 107], "excluded_lines": []}}}, "hknweb\\events\\views\\aggregate_displays\\leaderboard.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 11, 12], "summary": {"covered_lines": 9, "num_statements": 28, "percent_covered": 32.142857142857146, "percent_covered_display": "32", "missing_lines": 19, "excluded_lines": 0}, "missing_lines": [13, 14, 15, 20, 21, 28, 29, 30, 35, 36, 37, 38, 39, 41, 43, 45, 46, 48, 49], "excluded_lines": [], "functions": {"get_leaderboard": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 19, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 19, "excluded_lines": 0}, "missing_lines": [13, 14, 15, 20, 21, 28, 29, 30, 35, 36, 37, 38, 39, 41, 43, 45, 46, 48, 49], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 11, 12], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 11, 12], "summary": {"covered_lines": 9, "num_statements": 28, "percent_covered": 32.142857142857146, "percent_covered_display": "32", "missing_lines": 19, "excluded_lines": 0}, "missing_lines": [13, 14, 15, 20, 21, 28, 29, 30, 35, 36, 37, 38, 39, 41, 43, 45, 46, 48, 49], "excluded_lines": []}}}, "hknweb\\events\\views\\aggregate_displays\\photos.py": {"executed_lines": [1, 2, 3, 4, 6, 9, 12, 13], "summary": {"covered_lines": 8, "num_statements": 14, "percent_covered": 57.142857142857146, "percent_covered_display": "57", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [14, 18, 20, 21, 23, 24], "excluded_lines": [], "functions": {"photos": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [14, 18, 20, 21, 23, 24], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 9, 12, 13], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 6, 9, 12, 13], "summary": {"covered_lines": 8, "num_statements": 14, "percent_covered": 57.142857142857146, "percent_covered_display": "57", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [14, 18, 20, 21, 23, 24], "excluded_lines": []}}}, "hknweb\\events\\views\\attendance\\__init__.py": {"executed_lines": [1, 2], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\views\\attendance\\manage_attendance.py": {"executed_lines": [1, 2, 4, 5, 6, 9, 10], "summary": {"covered_lines": 7, "num_statements": 22, "percent_covered": 31.818181818181817, "percent_covered_display": "32", "missing_lines": 15, "excluded_lines": 0}, "missing_lines": [11, 12, 13, 15, 16, 17, 19, 20, 21, 22, 24, 25, 29, 31, 35], "excluded_lines": [], "functions": {"manage_attendance": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 15, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 15, "excluded_lines": 0}, "missing_lines": [11, 12, 13, 15, 16, 17, 19, 20, 21, 22, 24, 25, 29, 31, 35], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 6, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 5, 6, 9, 10], "summary": {"covered_lines": 7, "num_statements": 22, "percent_covered": 31.818181818181817, "percent_covered_display": "32", "missing_lines": 15, "excluded_lines": 0}, "missing_lines": [11, 12, 13, 15, 16, 17, 19, 20, 21, 22, 24, 25, 29, 31, 35], "excluded_lines": []}}}, "hknweb\\events\\views\\attendance\\submit_attendance.py": {"executed_lines": [1, 2, 4, 5, 6, 9, 10], "summary": {"covered_lines": 7, "num_statements": 22, "percent_covered": 31.818181818181817, "percent_covered_display": "32", "missing_lines": 15, "excluded_lines": 0}, "missing_lines": [11, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 25, 27, 29, 33], "excluded_lines": [], "functions": {"submit_attendance": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 15, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 15, "excluded_lines": 0}, "missing_lines": [11, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 25, 27, 29, 33], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 6, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 5, 6, 9, 10], "summary": {"covered_lines": 7, "num_statements": 22, "percent_covered": 31.818181818181817, "percent_covered_display": "32", "missing_lines": 15, "excluded_lines": 0}, "missing_lines": [11, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 25, 27, 29, 33], "excluded_lines": []}}}, "hknweb\\events\\views\\event_transactions\\__init__.py": {"executed_lines": [1, 2, 3, 4], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 3, 4], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\views\\event_transactions\\add_event.py": {"executed_lines": [1, 2, 4, 5, 6, 12, 13, 14, 15, 34, 38], "summary": {"covered_lines": 11, "num_statements": 19, "percent_covered": 57.89473684210526, "percent_covered_display": "58", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [16, 17, 19, 26, 27, 29, 30, 32], "excluded_lines": [], "functions": {"add_event": {"executed_lines": [14, 15, 34, 38], "summary": {"covered_lines": 4, "num_statements": 12, "percent_covered": 33.333333333333336, "percent_covered_display": "33", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [16, 17, 19, 26, 27, 29, 30, 32], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 6, 12, 13], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 5, 6, 12, 13, 14, 15, 34, 38], "summary": {"covered_lines": 11, "num_statements": 19, "percent_covered": 57.89473684210526, "percent_covered_display": "58", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [16, 17, 19, 26, 27, 29, 30, 32], "excluded_lines": []}}}, "hknweb\\events\\views\\event_transactions\\delete_event.py": {"executed_lines": [1, 2, 4, 5, 8, 9, 10, 11], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 4, 5, 8, 9, 10, 11], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"EventDeleteView": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 8, 9, 10, 11], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\views\\event_transactions\\show_event.py": {"executed_lines": [1, 2, 3, 4, 6, 8, 9, 14, 15, 16, 17, 20, 21, 22, 25, 26, 27, 28, 29, 31, 41, 42, 44, 45, 46, 48, 49, 50, 59, 63, 64, 65, 67, 70, 74, 82, 92, 93, 94, 95, 101, 110], "summary": {"covered_lines": 42, "num_statements": 52, "percent_covered": 80.76923076923077, "percent_covered_display": "81", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [52, 54, 55, 56, 60, 61, 83, 96, 97, 99], "excluded_lines": [], "functions": {"show_details": {"executed_lines": [22], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "show_details_helper": {"executed_lines": [26, 27, 28, 29, 31, 41, 42, 44, 45, 46, 48, 49, 50, 59, 63, 64, 65, 67, 70, 74, 82, 92, 93, 94, 95, 101, 110], "summary": {"covered_lines": 27, "num_statements": 37, "percent_covered": 72.97297297297297, "percent_covered_display": "73", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [52, 54, 55, 56, 60, 61, 83, 96, 97, 99], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 8, 9, 14, 15, 16, 17, 20, 21, 25], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 6, 8, 9, 14, 15, 16, 17, 20, 21, 22, 25, 26, 27, 28, 29, 31, 41, 42, 44, 45, 46, 48, 49, 50, 59, 63, 64, 65, 67, 70, 74, 82, 92, 93, 94, 95, 101, 110], "summary": {"covered_lines": 42, "num_statements": 52, "percent_covered": 80.76923076923077, "percent_covered_display": "81", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [52, 54, 55, 56, 60, 61, 83, 96, 97, 99], "excluded_lines": []}}}, "hknweb\\events\\views\\event_transactions\\update_event.py": {"executed_lines": [1, 2, 4, 9, 10, 13, 14, 15, 16, 17, 19, 20, 21, 22, 24, 27, 28, 31, 34, 36], "summary": {"covered_lines": 20, "num_statements": 23, "percent_covered": 86.95652173913044, "percent_covered_display": "87", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [37, 38, 43], "excluded_lines": [], "functions": {"EventUpdateView.get_context_data": {"executed_lines": [20, 21, 22], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EventUpdateView.get_initial": {"executed_lines": [27, 28, 31, 34], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EventUpdateView.form_valid": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [37, 38, 43], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 9, 10, 13, 14, 15, 16, 17, 19, 24, 36], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"EventUpdateView": {"executed_lines": [20, 21, 22, 27, 28, 31, 34], "summary": {"covered_lines": 7, "num_statements": 10, "percent_covered": 70.0, "percent_covered_display": "70", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [37, 38, 43], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 9, 10, 13, 14, 15, 16, 17, 19, 24, 36], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\views\\rsvp_transactions\\__init__.py": {"executed_lines": [1, 2, 3], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 3], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\views\\rsvp_transactions\\confirm_rsvp.py": {"executed_lines": [1, 2, 3, 6, 7, 8, 11, 12, 13, 15, 16, 18], "summary": {"covered_lines": 12, "num_statements": 13, "percent_covered": 92.3076923076923, "percent_covered_display": "92", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [9], "excluded_lines": [], "functions": {"confirm_rsvp": {"executed_lines": [8, 11, 12, 13, 15, 16, 18], "summary": {"covered_lines": 7, "num_statements": 8, "percent_covered": 87.5, "percent_covered_display": "88", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [9], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 6, 7], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 6, 7, 8, 11, 12, 13, 15, 16, 18], "summary": {"covered_lines": 12, "num_statements": 13, "percent_covered": 92.3076923076923, "percent_covered_display": "92", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [9], "excluded_lines": []}}}, "hknweb\\events\\views\\rsvp_transactions\\rsvp.py": {"executed_lines": [1, 2, 3, 4, 5, 8, 9, 10, 11, 13, 15, 16, 18, 20], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"rsvp": {"executed_lines": [10, 11, 13, 15, 16, 18, 20], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 8, 9], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 8, 9, 10, 11, 13, 15, 16, 18, 20], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\views\\rsvp_transactions\\unrsvp.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 12, 15, 16, 17, 18, 20, 21, 22, 23, 25, 26, 27, 30, 33], "summary": {"covered_lines": 21, "num_statements": 28, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [28, 34, 36, 39, 48, 51, 52], "excluded_lines": [], "functions": {"unrsvp": {"executed_lines": [17, 18, 20, 21, 22, 23, 25, 26, 27, 30], "summary": {"covered_lines": 10, "num_statements": 11, "percent_covered": 90.9090909090909, "percent_covered_display": "91", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [28], "excluded_lines": []}, "send_off_waitlist_email": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [34, 36, 39, 48, 51, 52], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 12, 15, 16, 33], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 12, 15, 16, 17, 18, 20, 21, 22, 23, 25, 26, 27, 30, 33], "summary": {"covered_lines": 21, "num_statements": 28, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [28, 34, 36, 39, 48, 51, 52], "excluded_lines": []}}}, "hknweb\\forms.py": {"executed_lines": [1, 2, 6, 7, 8, 9, 10, 11, 12, 14, 16, 18, 20, 21, 22, 23, 26, 27, 28, 29, 32, 33, 35, 38, 42, 43, 44, 54, 55, 56, 57, 58, 60, 61, 62, 69, 71, 72, 73, 83, 84, 87, 90, 91, 93, 94, 95, 98, 99, 100, 101, 104, 105, 110, 111, 112, 113, 115, 118, 120, 168, 182], "summary": {"covered_lines": 62, "num_statements": 122, "percent_covered": 50.81967213114754, "percent_covered_display": "51", "missing_lines": 60, "excluded_lines": 0}, "missing_lines": [65, 122, 125, 126, 131, 135, 136, 148, 155, 157, 160, 161, 165, 166, 172, 174, 175, 180, 184, 185, 186, 187, 190, 191, 192, 195, 196, 197, 198, 202, 203, 204, 205, 207, 210, 211, 212, 213, 214, 216, 217, 219, 221, 223, 231, 234, 236, 237, 239, 241, 242, 244, 245, 248, 251, 258, 261, 264, 266, 269], "excluded_lines": [], "functions": {"SignupForm.clean_email": {"executed_lines": [61, 62, 69], "summary": {"covered_lines": 3, "num_statements": 4, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [65], "excluded_lines": []}, "ProvisionCandidatesForm.send_candidate_account_emails": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [122, 125, 126, 131, 135, 160, 161, 165, 166], "excluded_lines": []}, "ProvisionCandidatesForm.send_candidate_account_emails.create_email": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [136, 148, 155, 157], "excluded_lines": []}, "ProvisionCandidatesForm.add_messages": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [172, 174, 175, 180], "excluded_lines": []}, "ProvisionCandidatesForm.save": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 36, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 36, "excluded_lines": 0}, "missing_lines": [184, 185, 186, 187, 190, 191, 192, 195, 196, 197, 198, 202, 210, 211, 212, 213, 214, 216, 217, 219, 221, 223, 231, 234, 236, 241, 242, 244, 245, 248, 251, 258, 261, 264, 266, 269], "excluded_lines": []}, "ProvisionCandidatesForm.save.email_to_username": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [203, 204, 205, 207], "excluded_lines": []}, "ProvisionCandidatesForm.save.generate_password": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [237, 239], "excluded_lines": []}, "": {"executed_lines": [1, 2, 6, 7, 8, 9, 10, 11, 12, 14, 16, 18, 20, 21, 22, 23, 26, 27, 28, 29, 32, 33, 35, 38, 42, 43, 44, 54, 55, 56, 57, 58, 60, 71, 72, 73, 83, 84, 87, 90, 91, 93, 94, 95, 98, 99, 100, 101, 104, 105, 110, 111, 112, 113, 115, 118, 120, 168, 182], "summary": {"covered_lines": 59, "num_statements": 59, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"SettingsForm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "SettingsForm.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ProfileForm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ProfileForm.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "SignupForm": {"executed_lines": [61, 62, 69], "summary": {"covered_lines": 3, "num_statements": 4, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [65], "excluded_lines": []}, "SignupForm.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "UpdatePasswordForm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ValidPasswordForm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ValidPasswordForm.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ProfilePictureForm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ProfilePictureForm.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "SemesterSelectForm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ProvisionCandidatesForm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 59, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 59, "excluded_lines": 0}, "missing_lines": [122, 125, 126, 131, 135, 136, 148, 155, 157, 160, 161, 165, 166, 172, 174, 175, 180, 184, 185, 186, 187, 190, 191, 192, 195, 196, 197, 198, 202, 203, 204, 205, 207, 210, 211, 212, 213, 214, 216, 217, 219, 221, 223, 231, 234, 236, 237, 239, 241, 242, 244, 245, 248, 251, 258, 261, 264, 266, 269], "excluded_lines": []}, "": {"executed_lines": [1, 2, 6, 7, 8, 9, 10, 11, 12, 14, 16, 18, 20, 21, 22, 23, 26, 27, 28, 29, 32, 33, 35, 38, 42, 43, 44, 54, 55, 56, 57, 58, 60, 71, 72, 73, 83, 84, 87, 90, 91, 93, 94, 95, 98, 99, 100, 101, 104, 105, 110, 111, 112, 113, 115, 118, 120, 168, 182], "summary": {"covered_lines": 59, "num_statements": 59, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\google_drive_utils.py": {"executed_lines": [1, 2, 3, 4, 5, 8, 9, 10, 17, 44, 45, 49, 52, 53, 60, 61, 62, 79, 80, 81, 110, 111, 112, 148, 149, 150, 188, 189, 190, 212, 213, 214, 246, 247, 248, 274], "summary": {"covered_lines": 10, "num_statements": 24, "percent_covered": 41.666666666666664, "percent_covered_display": "42", "missing_lines": 14, "excluded_lines": 234}, "missing_lines": [6, 11, 46, 47, 48, 51, 68, 69, 70, 72, 73, 75, 76, 78], "excluded_lines": [18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 54, 55, 56, 57, 58, 59, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295], "functions": {"get_credentials": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 24}, "missing_lines": [], "excluded_lines": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42]}, "check_credentials_wrapper": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [47, 51], "excluded_lines": []}, "check_credentials_wrapper.new_fn": {"executed_lines": [49], "summary": {"covered_lines": 1, "num_statements": 2, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [48], "excluded_lines": []}, "get_service": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 4}, "missing_lines": [], "excluded_lines": [56, 57, 58, 59]}, "create_metadata": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [68, 69, 70, 72, 73, 75, 76, 78], "excluded_lines": []}, "create_folder": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 24}, "missing_lines": [], "excluded_lines": [86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109]}, "create_pdf": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 30}, "missing_lines": [], "excluded_lines": [118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147]}, "create_permission": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 31}, "missing_lines": [], "excluded_lines": [157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187]}, "delete_permission": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 19}, "missing_lines": [], "excluded_lines": [193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211]}, "update_permission": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 24}, "missing_lines": [], "excluded_lines": [222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245]}, "get_permission_id": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 23}, "missing_lines": [], "excluded_lines": [251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273]}, "get_files": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 19}, "missing_lines": [], "excluded_lines": [277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295]}, "": {"executed_lines": [1, 2, 3, 4, 5, 8, 9, 10, 17, 44, 45, 52, 53, 60, 61, 62, 79, 80, 81, 110, 111, 112, 148, 149, 150, 188, 189, 190, 212, 213, 214, 246, 247, 248, 274], "summary": {"covered_lines": 9, "num_statements": 12, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 3, "excluded_lines": 36}, "missing_lines": [6, 11, 46], "excluded_lines": [18, 54, 55, 81, 82, 83, 84, 85, 112, 113, 114, 115, 116, 117, 150, 151, 152, 153, 154, 155, 156, 190, 191, 192, 214, 215, 216, 217, 218, 219, 220, 221, 248, 249, 250, 276]}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 8, 9, 10, 17, 44, 45, 49, 52, 53, 60, 61, 62, 79, 80, 81, 110, 111, 112, 148, 149, 150, 188, 189, 190, 212, 213, 214, 246, 247, 248, 274], "summary": {"covered_lines": 10, "num_statements": 24, "percent_covered": 41.666666666666664, "percent_covered_display": "42", "missing_lines": 14, "excluded_lines": 234}, "missing_lines": [6, 11, 46, 47, 48, 51, 68, 69, 70, 72, 73, 75, 76, 78], "excluded_lines": [18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 54, 55, 56, 57, 58, 59, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295]}}}, "hknweb\\industry\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\industry\\urls.py": {"executed_lines": [1, 3, 6, 7], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 6, 7], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\industry\\views.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 9, 12, 13, 20, 21, 28, 29, 36, 37, 44, 45], "summary": {"covered_lines": 18, "num_statements": 23, "percent_covered": 78.26086956521739, "percent_covered_display": "78", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [14, 22, 30, 38, 46], "excluded_lines": [], "functions": {"what_is_hkn": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [14], "excluded_lines": []}, "resume_book": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [22], "excluded_lines": []}, "eecs_career_fair": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [30], "excluded_lines": []}, "infosessions": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [38], "excluded_lines": []}, "current_sponsors": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [46], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 9, 12, 13, 20, 21, 28, 29, 36, 37, 44, 45], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 9, 12, 13, 20, 21, 28, 29, 36, 37, 44, 45], "summary": {"covered_lines": 18, "num_statements": 23, "percent_covered": 78.26086956521739, "percent_covered_display": "78", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [14, 22, 30, 38, 46], "excluded_lines": []}}}, "hknweb\\init_permissions.py": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 11, 12, 13, 16, 31, 45, 46, 47, 48, 49, 51, 52, 53, 54], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"provision": {"executed_lines": [12, 13, 16, 31, 45, 46, 47, 48, 49, 51, 52, 53, 54], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 11], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 11, 12, 13, 16, 31, 45, 46, 47, 48, 49, 51, 52, 53, 54], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\management\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\management\\commands\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\management\\commands\\init_permissions.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [1, 3, 6, 7, 9, 10], "excluded_lines": [], "functions": {"Command.handle": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [10], "excluded_lines": []}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [1, 3, 6, 7, 9], "excluded_lines": []}}, "classes": {"Command": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [10], "excluded_lines": []}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [1, 3, 6, 7, 9], "excluded_lines": []}}}, "hknweb\\markdown_pages\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\markdown_pages\\admin.py": {"executed_lines": [1, 3, 4, 6], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 4, 6], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 4, 6], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\markdown_pages\\forms.py": {"executed_lines": [1, 2, 5, 6, 7, 8, 9], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 5, 6, 7, 8, 9], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"EditPageForm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 5, 6, 7, 8, 9], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\markdown_pages\\migrations\\0001_initial.py": {"executed_lines": [3, 4, 7, 9, 11, 14], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 7, 9, 11, 14], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 7, 9, 11, 14], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\markdown_pages\\migrations\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\markdown_pages\\models.py": {"executed_lines": [1, 2, 5, 6, 7, 8, 9, 10, 12, 13, 15], "summary": {"covered_lines": 11, "num_statements": 12, "percent_covered": 91.66666666666667, "percent_covered_display": "92", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [16], "excluded_lines": [], "functions": {"MarkdownPage.__str__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [16], "excluded_lines": []}, "": {"executed_lines": [1, 2, 5, 6, 7, 8, 9, 10, 12, 13, 15], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"MarkdownPage": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [16], "excluded_lines": []}, "": {"executed_lines": [1, 2, 5, 6, 7, 8, 9, 10, 12, 13, 15], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\markdown_pages\\urls.py": {"executed_lines": [1, 2, 4, 7, 8], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 4, 7, 8], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 7, 8], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\markdown_pages\\views.py": {"executed_lines": [1, 2, 4, 5, 8, 9, 22, 23], "summary": {"covered_lines": 8, "num_statements": 18, "percent_covered": 44.44444444444444, "percent_covered_display": "44", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [10, 11, 12, 13, 14, 15, 17, 19, 24, 25], "excluded_lines": [], "functions": {"editor": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [10, 11, 12, 13, 14, 15, 17, 19], "excluded_lines": []}, "display": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [24, 25], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 8, 9, 22, 23], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 5, 8, 9, 22, 23], "summary": {"covered_lines": 8, "num_statements": 18, "percent_covered": 44.44444444444444, "percent_covered_display": "44", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [10, 11, 12, 13, 14, 15, 17, 19, 24, 25], "excluded_lines": []}}}, "hknweb\\migrations\\0001_squashed_0013_auto_20210202_0210.py": {"executed_lines": [3, 4, 5, 6, 7, 10, 12, 14, 16, 20], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 5, 6, 7, 10, 12, 14, 16, 20], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 5, 6, 7, 10, 12, 14, 16, 20], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\migrations\\0014_auto_20210202_0225_squashed_0017_auto_20220228_0019.py": {"executed_lines": [3, 4, 7, 9, 11, 16], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 7, 9, 11, 16], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 7, 9, 11, 16], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\migrations\\0015_candidateprovisioningpassword.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\migrations\\0016_committee_committeeship_elections.py": {"executed_lines": [3, 4, 5, 8, 10, 16], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 5, 8, 10, 16], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 5, 8, 10, 16], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\migrations\\0017_auto_20220518_1813.py": {"executed_lines": [3, 6, 8, 13], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 13], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 13], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\migrations\\0018_auto_20220518_1816.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\migrations\\0019_auto_20220518_1827.py": {"executed_lines": [3, 4, 7, 9, 14], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 7, 9, 14], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 7, 9, 14], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\migrations\\0020_auto_20220519_1358.py": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\migrations\\0021_auto_20220520_1403.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\migrations\\0022_committee_is_exec.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\migrations\\0023_auto_20220521_1203.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\migrations\\0024_profile_preferred_courses.py": {"executed_lines": [3, 6, 8, 13], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 13], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 13], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\migrations\\0025_drivefolderid.py": {"executed_lines": [3, 6, 7, 11], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 7, 11], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 7, 11], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\migrations\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\models.py": {"executed_lines": [1, 2, 4, 5, 6, 7, 8, 9, 10, 12, 14, 17, 18, 22, 27, 28, 29, 30, 31, 32, 35, 36, 37, 38, 41, 42, 44, 45, 46, 47, 49, 50, 51, 53, 54, 55, 56, 65, 68, 71, 77, 78, 84, 85, 87, 88, 90, 94, 95, 98, 99, 100, 102, 106, 107, 109, 113, 114, 115, 116, 117, 120, 124, 127, 138, 139, 141, 143], "summary": {"covered_lines": 65, "num_statements": 74, "percent_covered": 87.83783783783784, "percent_covered_display": "88", "missing_lines": 9, "excluded_lines": 6}, "missing_lines": [66, 69, 91, 103, 110, 125, 128, 129, 131], "excluded_lines": [71, 72, 73, 74, 143, 144], "functions": {"Profile.create_user_profile": {"executed_lines": [46, 47], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Profile.save_user_profile": {"executed_lines": [51], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Profile.clean": {"executed_lines": [54, 55, 56], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Profile.picture_display_url": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [66], "excluded_lines": []}, "Profile.__str__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [69], "excluded_lines": []}, "Profile.preferred_courses_str": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3}, "missing_lines": [], "excluded_lines": [72, 73, 74]}, "Announcement.__str__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [91], "excluded_lines": []}, "Committee.__str__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [103], "excluded_lines": []}, "Election.__str__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [110], "excluded_lines": []}, "Committeeship.__str__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [125], "excluded_lines": []}, "Committeeship.people": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [128, 129, 131], "excluded_lines": []}, "DriveFolderID.__str__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [144]}, "": {"executed_lines": [1, 2, 4, 5, 6, 7, 8, 9, 10, 12, 14, 17, 18, 22, 27, 28, 29, 30, 31, 32, 35, 36, 37, 38, 41, 42, 44, 45, 49, 50, 53, 65, 68, 71, 77, 78, 84, 85, 87, 88, 90, 94, 95, 98, 99, 100, 102, 106, 107, 109, 113, 114, 115, 116, 117, 120, 124, 127, 138, 139, 141, 143], "summary": {"covered_lines": 59, "num_statements": 59, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [71, 143]}}, "classes": {"Profile": {"executed_lines": [46, 47, 51, 54, 55, 56], "summary": {"covered_lines": 6, "num_statements": 8, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 2, "excluded_lines": 3}, "missing_lines": [66, 69], "excluded_lines": [72, 73, 74]}, "Announcement": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [91], "excluded_lines": []}, "CandidateProvisioningPassword": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Committee": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [103], "excluded_lines": []}, "Election": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [110], "excluded_lines": []}, "Committeeship": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [125, 128, 129, 131], "excluded_lines": []}, "DriveFolderID": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [144]}, "": {"executed_lines": [1, 2, 4, 5, 6, 7, 8, 9, 10, 12, 14, 17, 18, 22, 27, 28, 29, 30, 31, 32, 35, 36, 37, 38, 41, 42, 44, 45, 49, 50, 53, 65, 68, 71, 77, 78, 84, 85, 87, 88, 90, 94, 95, 98, 99, 100, 102, 106, 107, 109, 113, 114, 115, 116, 117, 120, 124, 127, 138, 139, 141, 143], "summary": {"covered_lines": 59, "num_statements": 59, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [71, 143]}}}, "hknweb\\studentservices\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\studentservices\\admin.py": {"executed_lines": [1, 2, 4, 14, 15, 16, 17, 18, 19, 22, 23, 24, 33, 34, 46, 47, 48, 49, 52, 53, 54, 55, 56, 59, 60, 61, 64, 65, 66, 75, 76, 77, 78, 90], "summary": {"covered_lines": 34, "num_statements": 34, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 4, 14, 15, 16, 17, 18, 19, 22, 23, 24, 33, 34, 46, 47, 48, 49, 52, 53, 54, 55, 56, 59, 60, 61, 64, 65, 66, 75, 76, 77, 78, 90], "summary": {"covered_lines": 34, "num_statements": 34, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"ResumeAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ToursAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CourseGuideNodeAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CourseGuideAdjacencyListAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CourseGuideGroupAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CourseGuideParamAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CourseDescriptionAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 14, 15, 16, 17, 18, 19, 22, 23, 24, 33, 34, 46, 47, 48, 49, 52, 53, 54, 55, 56, 59, 60, 61, 64, 65, 66, 75, 76, 77, 78, 90], "summary": {"covered_lines": 34, "num_statements": 34, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\studentservices\\forms.py": {"executed_lines": [1, 2, 4, 5, 6, 9, 10, 12, 13, 14, 16, 22, 23, 29, 30, 31, 33, 34, 35, 36, 37, 39, 42, 43, 44, 45, 52], "summary": {"covered_lines": 27, "num_statements": 27, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"TourRequest.clean": {"executed_lines": [34, 35, 36, 37, 39], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 6, 9, 10, 12, 13, 14, 16, 22, 23, 29, 30, 31, 33, 42, 43, 44, 45, 52], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"DocumentForm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DocumentForm.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TourRequest": {"executed_lines": [34, 35, 36, 37, 39], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TourRequest.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CourseEditForm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CourseEditForm.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 6, 9, 10, 12, 13, 14, 16, 22, 23, 29, 30, 31, 33, 42, 43, 44, 45, 52], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\studentservices\\migrations\\0001_initial.py": {"executed_lines": [3, 6, 8, 10, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 10, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 10, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\studentservices\\migrations\\0002_reviewsession.py": {"executed_lines": [3, 4, 5, 8, 10, 15], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 5, 8, 10, 15], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 5, 8, 10, 15], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\studentservices\\migrations\\0003_auto_20220228_1425.py": {"executed_lines": [3, 4, 5, 8, 10, 14], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 5, 8, 10, 14], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 5, 8, 10, 14], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\studentservices\\migrations\\0004_courseguideadjacencylist_courseguidegroup_courseguidenode.py": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\studentservices\\migrations\\0005_auto_20220303_1644.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\studentservices\\migrations\\0006_courseguideparam.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\studentservices\\migrations\\0007_courseguidegroup_name.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\studentservices\\migrations\\0008_auto_20220402_2356.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\studentservices\\migrations\\0009_delete_reviewsession.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\studentservices\\migrations\\0010_auto_20220421_0027.py": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\studentservices\\migrations\\0011_coursedescription.py": {"executed_lines": [3, 6, 7, 11], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 7, 11], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 7, 11], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\studentservices\\migrations\\0012_remove_coursedescription_prerequisites_raw_and_more.py": {"executed_lines": [3, 4, 7, 8, 12], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 7, 8, 12], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 7, 8, 12], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\studentservices\\migrations\\0013_alter_coursedescription_description_and_more.py": {"executed_lines": [3, 4, 7, 8, 12], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 7, 8, 12], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 7, 8, 12], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\studentservices\\migrations\\0014_coursedescription_folderid.py": {"executed_lines": [3, 6, 7, 11], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 7, 11], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 7, 11], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\studentservices\\migrations\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\studentservices\\models.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 9, 12, 13, 14, 15, 16, 17, 18, 21, 22, 23, 25, 26, 27, 30, 34, 35, 41, 42, 43, 45, 46, 49, 50, 51, 52, 53, 55, 56, 59, 60, 63, 67, 68, 69, 70, 73, 74, 75, 77, 78, 81, 82, 83, 84, 85, 86, 88, 89, 91, 92, 101, 102, 103, 104, 105, 106, 107, 108, 110, 112, 113, 115, 125], "summary": {"covered_lines": 71, "num_statements": 76, "percent_covered": 93.42105263157895, "percent_covered_display": "93", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [119, 120, 122, 123, 126], "excluded_lines": [], "functions": {"DepTour.__str__": {"executed_lines": [46], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CourseGuideNode.__str__": {"executed_lines": [56], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CourseGuideAdjacencyList.__str__": {"executed_lines": [68, 69, 70], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CourseGuideGroup.__str__": {"executed_lines": [78], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CourseGuideParam.__str__": {"executed_lines": [89], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CourseGuideParam.to_dict": {"executed_lines": [92], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CourseDescription.save": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [119, 120, 122, 123], "excluded_lines": []}, "CourseDescription.__str__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [126], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 9, 12, 13, 14, 15, 16, 17, 18, 21, 22, 23, 25, 26, 27, 30, 34, 35, 41, 42, 43, 45, 49, 50, 51, 52, 53, 55, 59, 60, 63, 67, 73, 74, 75, 77, 81, 82, 83, 84, 85, 86, 88, 91, 101, 102, 103, 104, 105, 106, 107, 108, 110, 112, 113, 115, 125], "summary": {"covered_lines": 63, "num_statements": 63, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Resume": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DepTour": {"executed_lines": [46], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DepTour.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CourseGuideNode": {"executed_lines": [56], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CourseGuideAdjacencyList": {"executed_lines": [68, 69, 70], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CourseGuideGroup": {"executed_lines": [78], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CourseGuideParam": {"executed_lines": [89, 92], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CourseDescription": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [119, 120, 122, 123, 126], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 9, 12, 13, 14, 15, 16, 17, 18, 21, 22, 23, 25, 26, 27, 30, 34, 35, 41, 42, 43, 45, 49, 50, 51, 52, 53, 55, 59, 60, 63, 67, 73, 74, 75, 77, 81, 82, 83, 84, 85, 86, 88, 91, 101, 102, 103, 104, 105, 106, 107, 108, 110, 112, 113, 115, 125], "summary": {"covered_lines": 63, "num_statements": 63, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\studentservices\\urls.py": {"executed_lines": [1, 2, 3, 6, 7], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 3, 6, 7], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 6, 7], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\studentservices\\views.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 17, 24, 25, 28, 29, 30, 31, 33, 34, 35, 37, 44, 45, 46, 51, 52, 53, 58, 59, 60, 61, 62, 63, 66, 67, 69, 79, 82, 83, 85, 86, 88, 89, 91, 94, 95, 96, 98, 99, 101, 105, 108, 109, 110, 111, 112, 114, 115, 116, 117, 118, 120, 121, 123, 127, 128, 129, 130, 131, 133, 134, 135, 136, 138, 144, 145, 146, 147, 148, 149, 151, 161, 163, 164, 165, 166, 175, 179, 182, 183, 205, 206, 224, 225], "summary": {"covered_lines": 96, "num_statements": 118, "percent_covered": 81.35593220338983, "percent_covered_display": "81", "missing_lines": 22, "excluded_lines": 0}, "missing_lines": [184, 185, 186, 187, 188, 189, 194, 202, 207, 208, 209, 210, 211, 212, 213, 214, 216, 221, 226, 228, 229, 231], "excluded_lines": [], "functions": {"resume_critique_submit": {"executed_lines": [30, 31, 33, 34, 35, 37], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "reviewsessions": {"executed_lines": [46], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "show_reviewsession_details": {"executed_lines": [53], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "tours": {"executed_lines": [60, 61, 62, 63, 66, 67, 69, 79, 82, 83, 85, 86, 88, 89, 91], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "course_guide": {"executed_lines": [96, 98, 99, 101, 105], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "course_guide_data": {"executed_lines": [110, 111, 112, 114, 115, 116, 117, 118, 120, 121, 123, 127, 128, 129, 130, 131, 133, 134, 135, 136, 138, 144, 145, 146, 147, 148, 149, 151, 161, 163, 164, 165, 166, 175, 179], "summary": {"covered_lines": 35, "num_statements": 35, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "course_description": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [184, 185, 186, 187, 188, 189, 194, 202], "excluded_lines": []}, "edit_description": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [207, 208, 209, 210, 211, 212, 213, 214, 216, 221], "excluded_lines": []}, "delete_description": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [226, 228, 229, 231], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 17, 24, 25, 28, 29, 44, 45, 51, 52, 58, 59, 94, 95, 108, 109, 182, 183, 205, 206, 224, 225], "summary": {"covered_lines": 33, "num_statements": 33, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 17, 24, 25, 28, 29, 30, 31, 33, 34, 35, 37, 44, 45, 46, 51, 52, 53, 58, 59, 60, 61, 62, 63, 66, 67, 69, 79, 82, 83, 85, 86, 88, 89, 91, 94, 95, 96, 98, 99, 101, 105, 108, 109, 110, 111, 112, 114, 115, 116, 117, 118, 120, 121, 123, 127, 128, 129, 130, 131, 133, 134, 135, 136, 138, 144, 145, 146, 147, 148, 149, 151, 161, 163, 164, 165, 166, 175, 179, 182, 183, 205, 206, 224, 225], "summary": {"covered_lines": 96, "num_statements": 118, "percent_covered": 81.35593220338983, "percent_covered_display": "81", "missing_lines": 22, "excluded_lines": 0}, "missing_lines": [184, 185, 186, 187, 188, 189, 194, 202, 207, 208, 209, 210, 211, 212, 213, 214, 216, 221, 226, 228, 229, 231], "excluded_lines": []}}}, "hknweb\\tutoring\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\tutoring\\admin.py": {"executed_lines": [1, 3, 6, 7, 8, 11, 12, 13, 16, 17, 18, 27, 28, 29, 30, 32, 35], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7, 8, 11, 12, 13, 16, 17, 18, 27, 28, 29, 30, 32, 35], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"TutoringLogisticsAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "SlotAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CribSheetsAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 8, 11, 12, 13, 16, 17, 18, 27, 28, 29, 30, 32, 35], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\tutoring\\forms.py": {"executed_lines": [1, 3, 5, 6, 7, 8, 9, 10, 13, 14, 22, 23, 24, 27, 28, 36, 37, 38, 41, 42, 43, 44, 47, 48, 49, 50, 51, 53, 54, 55, 57], "summary": {"covered_lines": 31, "num_statements": 40, "percent_covered": 77.5, "percent_covered_display": "78", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [58, 60, 61, 63, 64, 65, 67, 68, 70], "excluded_lines": [], "functions": {"CourseFilterForm.__init__": {"executed_lines": [23, 24], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TutorFilterForm.__init__": {"executed_lines": [37, 38], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "AddCribForm.clean_file": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [58, 60, 61, 63, 64, 65, 67, 68, 70], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 6, 7, 8, 9, 10, 13, 14, 22, 27, 28, 36, 41, 42, 43, 44, 47, 48, 49, 50, 51, 53, 54, 55, 57], "summary": {"covered_lines": 27, "num_statements": 27, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"CourseFilterForm": {"executed_lines": [23, 24], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TutorFilterForm": {"executed_lines": [37, 38], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "AddCourseForm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "AddCourseForm.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "AddCribForm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [58, 60, 61, 63, 64, 65, 67, 68, 70], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 6, 7, 8, 9, 10, 13, 14, 22, 27, 28, 36, 41, 42, 43, 44, 47, 48, 49, 50, 51, 53, 54, 55, 57], "summary": {"covered_lines": 27, "num_statements": 27, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\tutoring\\migrations\\0001_squashed_0007_auto_20220127_1958.py": {"executed_lines": [3, 4, 5, 8, 10, 12, 14, 19], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 5, 8, 10, 12, 14, 19], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 5, 8, 10, 12, 14, 19], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\tutoring\\migrations\\0002_auto_20221006_1638.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\tutoring\\migrations\\0003_auto_20221128_1703.py": {"executed_lines": [3, 4, 5, 6, 9, 11, 17], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 5, 6, 9, 11, 17], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 5, 6, 9, 11, 17], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\tutoring\\migrations\\0004_cribsheet_and_more.py": {"executed_lines": [3, 4, 7, 8, 14], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 7, 8, 14], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 7, 8, 14], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\tutoring\\migrations\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\tutoring\\models.py": {"executed_lines": [1, 3, 5, 6, 7, 8, 10, 11, 14, 15, 16, 18, 22, 23, 24, 26, 29, 32, 36, 39, 40, 41, 45, 48, 49, 52, 53, 54, 56, 57, 58, 59, 61, 64, 65, 68, 71, 72, 74, 76, 78, 80, 82, 84, 86, 87, 94], "summary": {"covered_lines": 43, "num_statements": 43, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 8}, "missing_lines": [], "excluded_lines": [18, 19, 36, 37, 61, 62, 94, 95], "functions": {"Room.__str__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [19]}, "TutoringLogistics.__str__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [37]}, "TutoringLogistics.get_most_recent": {"executed_lines": [41, 45], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Slot.__str__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [62]}, "Slot.tutor_names": {"executed_lines": [65, 68], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CribSheet.__str__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [95]}, "": {"executed_lines": [1, 3, 5, 6, 7, 8, 10, 11, 14, 15, 16, 18, 22, 23, 24, 26, 29, 32, 36, 39, 40, 48, 49, 52, 53, 54, 56, 57, 58, 59, 61, 64, 71, 72, 74, 76, 78, 80, 82, 84, 86, 87, 94], "summary": {"covered_lines": 39, "num_statements": 39, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 4}, "missing_lines": [], "excluded_lines": [18, 36, 61, 94]}}, "classes": {"Room": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [19]}, "TutoringLogistics": {"executed_lines": [41, 45], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [37]}, "TutoringLogistics.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Slot": {"executed_lines": [65, 68], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [62]}, "CribSheet": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [95]}, "CribSheet.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 6, 7, 8, 10, 11, 14, 15, 16, 18, 22, 23, 24, 26, 29, 32, 36, 39, 40, 48, 49, 52, 53, 54, 56, 57, 58, 59, 61, 64, 71, 72, 74, 76, 78, 80, 82, 84, 86, 87, 94], "summary": {"covered_lines": 39, "num_statements": 39, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 4}, "missing_lines": [], "excluded_lines": [18, 36, 61, 94]}}}, "hknweb\\tutoring\\scheduler\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\tutoring\\scheduler\\data.py": {"executed_lines": [1, 2, 3, 5, 7, 10, 11, 19, 20, 21, 23, 35, 36, 40, 41, 42, 44, 45, 46, 48, 50, 53, 54, 55, 65, 66, 76, 77, 78, 80, 82, 83, 86, 87, 92], "summary": {"covered_lines": 24, "num_statements": 25, "percent_covered": 96.0, "percent_covered_display": "96", "missing_lines": 1, "excluded_lines": 28}, "missing_lines": [37], "excluded_lines": [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 50, 51, 76, 77, 78, 79, 80, 81, 82, 83, 86, 87, 88, 89, 90, 91, 92, 93], "functions": {"Data.__init__": {"executed_lines": [20, 21], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Data.readable_formatted_assignments": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 9}, "missing_lines": [], "excluded_lines": [24, 25, 26, 27, 28, 29, 30, 31, 32]}, "DjangoData.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [37], "excluded_lines": []}, "JSONData.__init__": {"executed_lines": [42, 44, 45, 46, 48], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "JSONData.get_json_str": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [51]}, "JSONData.post_init": {"executed_lines": [54, 55, 65, 66], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "RemoteJSONData.__init__": {"executed_lines": [78, 80], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3}, "missing_lines": [], "excluded_lines": [78, 79, 80]}, "RemoteJSONData.get_json_str": {"executed_lines": [83], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [83]}, "LocalJSONData.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3}, "missing_lines": [], "excluded_lines": [88, 89, 90]}, "LocalJSONData.get_json_str": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [93]}, "": {"executed_lines": [1, 2, 3, 5, 7, 10, 11, 19, 23, 35, 36, 40, 41, 50, 53, 76, 77, 82, 86, 87, 92], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 10}, "missing_lines": [], "excluded_lines": [23, 50, 76, 77, 81, 82, 86, 87, 91, 92]}}, "classes": {"Data": {"executed_lines": [20, 21], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 9}, "missing_lines": [], "excluded_lines": [24, 25, 26, 27, 28, 29, 30, 31, 32]}, "DjangoData": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [37], "excluded_lines": []}, "JSONData": {"executed_lines": [42, 44, 45, 46, 48, 54, 55, 65, 66], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [51]}, "RemoteJSONData": {"executed_lines": [78, 80, 83], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 4}, "missing_lines": [], "excluded_lines": [78, 79, 80, 83]}, "LocalJSONData": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 4}, "missing_lines": [], "excluded_lines": [88, 89, 90, 93]}, "": {"executed_lines": [1, 2, 3, 5, 7, 10, 11, 19, 23, 35, 36, 40, 41, 50, 53, 76, 77, 82, 86, 87, 92], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 10}, "missing_lines": [], "excluded_lines": [23, 50, 76, 77, 81, 82, 86, 87, 91, 92]}}}, "hknweb\\tutoring\\scheduler\\evaluator.py": {"executed_lines": [1, 3, 5, 7, 8, 9, 12, 13, 15, 16, 17, 18, 20, 21, 22, 23, 24, 27, 28, 29, 33, 34, 35, 36, 37, 39, 40, 42, 43, 44, 45], "summary": {"covered_lines": 31, "num_statements": 31, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"Evaluator.evaluate": {"executed_lines": [17, 18, 20, 21, 22, 23, 24, 27, 28, 29, 33, 34, 35, 36, 37, 39, 40, 42, 43, 44, 45], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 7, 8, 9, 12, 13, 15, 16], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Evaluator": {"executed_lines": [17, 18, 20, 21, 22, 23, 24, 27, 28, 29, 33, 34, 35, 36, 37, 39, 40, 42, 43, 44, 45], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 7, 8, 9, 12, 13, 15, 16], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\tutoring\\scheduler\\graph.py": {"executed_lines": [1, 3, 6, 7, 10, 11, 12, 14, 15, 16, 18, 19], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"Graph.__init__": {"executed_lines": [12], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Graph.add_edge": {"executed_lines": [15, 16], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Graph.get_neighbors": {"executed_lines": [19], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 10, 11, 14, 18], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Graph": {"executed_lines": [12, 15, 16, 19], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 10, 11, 14, 18], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\tutoring\\scheduler\\matching.py": {"executed_lines": [1, 3, 5, 6, 8, 9, 10, 11, 14, 15, 16, 17, 19, 20, 21, 22, 23, 25, 26, 27, 28, 29, 31, 32, 34, 35, 42, 43, 44, 49, 50, 53, 55, 59, 60, 61, 63, 64, 65, 68, 69, 71, 72, 74, 76, 77, 79, 80, 81, 83, 88, 89, 90, 92, 93, 95, 96, 98, 100, 101, 107, 108, 109, 110, 112, 113, 114, 115, 118, 120, 121, 122, 124, 125, 126, 128, 129, 130, 131, 133, 139, 140, 141, 142, 144, 146, 147, 152, 153, 154, 155, 156, 157, 158, 159, 160, 162, 163, 164, 165, 166, 167, 168, 170, 171, 173, 174, 175, 176, 177, 179, 180, 182, 183, 184, 186, 187, 188, 190, 191, 192, 193, 197, 198, 199, 201, 203, 204, 208, 209, 210, 211, 213, 214, 215, 216, 217, 219, 220, 222, 223, 227, 228, 229, 231, 232, 233, 234, 235, 236, 237], "summary": {"covered_lines": 151, "num_statements": 151, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"Matcher.AssignDTO.__init__": {"executed_lines": [17], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Matcher.AssignDTO.init_assign": {"executed_lines": [20, 21, 22, 23], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Matcher.AssignDTO.init_matching": {"executed_lines": [26, 27, 28, 29], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Matcher.__init__": {"executed_lines": [32], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Matcher.match": {"executed_lines": [35, 42, 43, 44, 49, 50, 53], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Matcher.assign": {"executed_lines": [59, 60, 61, 63, 64, 65, 68, 69, 71, 72, 74, 76, 77, 79, 80, 81, 83, 88, 89, 90, 92, 93, 95, 96, 98], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Matcher.update_matching": {"executed_lines": [107, 108, 109, 110, 112, 113, 114, 115, 118, 120, 121, 122, 124, 125, 126, 128, 129, 130, 131, 133, 139, 140, 141, 142, 144], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Matcher.find_augmenting_path": {"executed_lines": [152, 153, 154, 155, 156, 157, 158, 159, 160, 162, 163, 164, 165, 166, 167, 168, 170, 171, 173, 174, 175, 176, 177, 179, 180, 182, 183, 184, 186, 187, 188, 190, 191, 192, 193, 197, 198, 199, 201], "summary": {"covered_lines": 39, "num_statements": 39, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Matcher.update_prices": {"executed_lines": [208, 209, 210, 211, 213, 214, 215, 216, 217, 219, 220], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Matcher.augment_path": {"executed_lines": [227, 228, 229, 231, 232, 233, 234, 235, 236, 237], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 6, 8, 9, 10, 11, 14, 15, 16, 19, 25, 31, 34, 55, 100, 101, 146, 147, 203, 204, 222, 223], "summary": {"covered_lines": 24, "num_statements": 24, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Matcher": {"executed_lines": [32, 35, 42, 43, 44, 49, 50, 53, 59, 60, 61, 63, 64, 65, 68, 69, 71, 72, 74, 76, 77, 79, 80, 81, 83, 88, 89, 90, 92, 93, 95, 96, 98, 107, 108, 109, 110, 112, 113, 114, 115, 118, 120, 121, 122, 124, 125, 126, 128, 129, 130, 131, 133, 139, 140, 141, 142, 144, 152, 153, 154, 155, 156, 157, 158, 159, 160, 162, 163, 164, 165, 166, 167, 168, 170, 171, 173, 174, 175, 176, 177, 179, 180, 182, 183, 184, 186, 187, 188, 190, 191, 192, 193, 197, 198, 199, 201, 208, 209, 210, 211, 213, 214, 215, 216, 217, 219, 220, 227, 228, 229, 231, 232, 233, 234, 235, 236, 237], "summary": {"covered_lines": 118, "num_statements": 118, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Matcher.AssignDTO": {"executed_lines": [17, 20, 21, 22, 23, 26, 27, 28, 29], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 6, 8, 9, 10, 11, 14, 15, 16, 19, 25, 31, 34, 55, 100, 101, 146, 147, 203, 204, 222, 223], "summary": {"covered_lines": 24, "num_statements": 24, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\tutoring\\scheduler\\schedule.py": {"executed_lines": [1, 3, 4, 5, 6, 7, 10, 17, 23, 24, 26, 28, 29, 30, 31, 34, 38, 39, 43], "summary": {"covered_lines": 18, "num_statements": 19, "percent_covered": 94.73684210526316, "percent_covered_display": "95", "missing_lines": 1, "excluded_lines": 3}, "missing_lines": [27], "excluded_lines": [39, 40, 41], "functions": {"schedule": {"executed_lines": [23, 24, 26, 28, 29, 30, 31, 34, 38, 39, 43], "summary": {"covered_lines": 10, "num_statements": 11, "percent_covered": 90.9090909090909, "percent_covered_display": "91", "missing_lines": 1, "excluded_lines": 3}, "missing_lines": [27], "excluded_lines": [39, 40, 41]}, "": {"executed_lines": [1, 3, 4, 5, 6, 7, 10, 17], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 4, 5, 6, 7, 10, 17, 23, 24, 26, 28, 29, 30, 31, 34, 38, 39, 43], "summary": {"covered_lines": 18, "num_statements": 19, "percent_covered": 94.73684210526316, "percent_covered_display": "95", "missing_lines": 1, "excluded_lines": 3}, "missing_lines": [27], "excluded_lines": [39, 40, 41]}}}, "hknweb\\tutoring\\scheduler\\swapper.py": {"executed_lines": [1, 3, 5, 7, 8, 9, 10, 13, 14, 15, 17, 18, 24, 27, 28, 30, 32, 34, 36, 39, 40, 42, 44, 45, 46, 48, 50, 51, 55, 58, 59, 62, 64, 65, 68, 69], "summary": {"covered_lines": 36, "num_statements": 37, "percent_covered": 97.29729729729729, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 1}, "missing_lines": [56], "excluded_lines": [52], "functions": {"Swapper.stabilize": {"executed_lines": [24, 27, 28, 30, 32, 34, 36, 39, 40, 42, 44, 45, 46, 48, 50, 51, 55], "summary": {"covered_lines": 17, "num_statements": 18, "percent_covered": 94.44444444444444, "percent_covered_display": "94", "missing_lines": 1, "excluded_lines": 1}, "missing_lines": [56], "excluded_lines": [52]}, "Swapper._circular_swap": {"executed_lines": [62, 64, 65, 68, 69], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 7, 8, 9, 10, 13, 14, 15, 17, 18, 58, 59], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Swapper": {"executed_lines": [24, 27, 28, 30, 32, 34, 36, 39, 40, 42, 44, 45, 46, 48, 50, 51, 55, 62, 64, 65, 68, 69], "summary": {"covered_lines": 22, "num_statements": 23, "percent_covered": 95.65217391304348, "percent_covered_display": "96", "missing_lines": 1, "excluded_lines": 1}, "missing_lines": [56], "excluded_lines": [52]}, "": {"executed_lines": [1, 3, 5, 7, 8, 9, 10, 13, 14, 15, 17, 18, 58, 59], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\tutoring\\scheduler\\tutoring.py": {"executed_lines": [1, 4, 5, 6, 7, 8, 9, 11, 13, 14, 16, 17, 19, 20, 22, 23, 29, 33, 34, 42, 44, 45, 46, 47, 49, 51, 52, 54, 55, 57, 58, 60, 61, 62, 64, 66], "summary": {"covered_lines": 34, "num_statements": 34, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 4}, "missing_lines": [], "excluded_lines": [29, 30, 66, 67], "functions": {"Slot.__init__": {"executed_lines": [6, 7, 8, 9, 11], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Slot.assign": {"executed_lines": [14], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Slot.unassign": {"executed_lines": [17], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Slot.simultaneous": {"executed_lines": [20], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Slot.adjacent": {"executed_lines": [23], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Slot.__repr__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [30]}, "Tutor.__init__": {"executed_lines": [42, 44, 45, 46, 47, 49], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Tutor.conflict": {"executed_lines": [52], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Tutor.assign": {"executed_lines": [55], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Tutor.unassign": {"executed_lines": [58], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Tutor.clear_slots": {"executed_lines": [61, 62, 64], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Tutor.__repr__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [67]}, "": {"executed_lines": [1, 4, 5, 13, 16, 19, 22, 29, 33, 34, 51, 54, 57, 60, 66], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 66]}}, "classes": {"Slot": {"executed_lines": [6, 7, 8, 9, 11, 14, 17, 20, 23], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [30]}, "Tutor": {"executed_lines": [42, 44, 45, 46, 47, 49, 52, 55, 58, 61, 62, 64], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [67]}, "": {"executed_lines": [1, 4, 5, 13, 16, 19, 22, 29, 33, 34, 51, 54, 57, 60, 66], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 66]}}}, "hknweb\\tutoring\\scheduler\\weighting.py": {"executed_lines": [1, 3, 6, 7, 8, 26, 27, 33, 39, 45, 46, 67, 68, 74, 79, 80, 81, 83, 84, 85, 86, 87, 89, 91, 94, 95], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 57}, "missing_lines": [], "excluded_lines": [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64], "functions": {"Weighting.weight": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 15}, "missing_lines": [], "excluded_lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]}, "Butler.weight": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 18}, "missing_lines": [], "excluded_lines": [47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64]}, "Gardener.weight": {"executed_lines": [81, 83, 84, 85, 86, 87, 89, 91], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 8, 26, 27, 33, 39, 45, 46, 67, 68, 74, 79, 80, 94, 95], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 24}, "missing_lines": [], "excluded_lines": [6, 7, 8, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46]}}, "classes": {"Weighting": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 15}, "missing_lines": [], "excluded_lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]}, "Butler": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 18}, "missing_lines": [], "excluded_lines": [47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64]}, "Gardener": {"executed_lines": [81, 83, 84, 85, 86, 87, 89, 91], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "OldGardener": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 8, 26, 27, 33, 39, 45, 46, 67, 68, 74, 79, 80, 94, 95], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 24}, "missing_lines": [], "excluded_lines": [6, 7, 8, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46]}}}, "hknweb\\tutoring\\urls.py": {"executed_lines": [1, 3, 4, 5, 6, 24, 25, 26, 27, 28, 30, 32], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 4, 5, 6], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 4, 5, 6], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\tutoring\\views\\__init__.py": {"executed_lines": [1, 2, 3, 4, 5, 6], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 3, 4, 5, 6], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 6], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\tutoring\\views\\autocomplete.py": {"executed_lines": [1, 2, 4, 6, 8, 9, 12, 13, 25, 26, 27, 30, 33, 34, 43, 44], "summary": {"covered_lines": 12, "num_statements": 13, "percent_covered": 92.3076923076923, "percent_covered_display": "92", "missing_lines": 1, "excluded_lines": 19}, "missing_lines": [28], "excluded_lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 33, 34, 35, 36, 37, 38, 39, 40], "functions": {"CourseAutocomplete.get_queryset": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 9}, "missing_lines": [], "excluded_lines": [14, 15, 16, 17, 18, 19, 20, 21, 22]}, "get_tutors": {"executed_lines": [26, 27, 30], "summary": {"covered_lines": 3, "num_statements": 4, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [28], "excluded_lines": []}, "TutorAutocomplete.get_queryset": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 6}, "missing_lines": [], "excluded_lines": [35, 36, 37, 38, 39, 40]}, "": {"executed_lines": [1, 2, 4, 6, 8, 9, 12, 13, 25, 33, 34, 43, 44], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 4}, "missing_lines": [], "excluded_lines": [12, 13, 33, 34]}}, "classes": {"CourseAutocomplete": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 9}, "missing_lines": [], "excluded_lines": [14, 15, 16, 17, 18, 19, 20, 21, 22]}, "TutorAutocomplete": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 6}, "missing_lines": [], "excluded_lines": [35, 36, 37, 38, 39, 40]}, "": {"executed_lines": [1, 2, 4, 6, 8, 9, 12, 13, 25, 26, 27, 30, 33, 34, 43, 44], "summary": {"covered_lines": 12, "num_statements": 13, "percent_covered": 92.3076923076923, "percent_covered_display": "92", "missing_lines": 1, "excluded_lines": 4}, "missing_lines": [28], "excluded_lines": [12, 13, 33, 34]}}}, "hknweb\\tutoring\\views\\courses.py": {"executed_lines": [1, 2, 3, 4, 5, 8, 9], "summary": {"covered_lines": 7, "num_statements": 15, "percent_covered": 46.666666666666664, "percent_covered_display": "47", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [10, 11, 12, 13, 15, 19, 21, 23], "excluded_lines": [], "functions": {"courses": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [10, 11, 12, 13, 15, 19, 21, 23], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 8, 9], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 8, 9], "summary": {"covered_lines": 7, "num_statements": 15, "percent_covered": 46.666666666666664, "percent_covered_display": "47", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [10, 11, 12, 13, 15, 19, 21, 23], "excluded_lines": []}}}, "hknweb\\tutoring\\views\\crib.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 15, 16, 17, 20, 21, 22, 24, 46, 61, 67, 113, 114], "summary": {"covered_lines": 16, "num_statements": 73, "percent_covered": 21.91780821917808, "percent_covered_display": "22", "missing_lines": 57, "excluded_lines": 0}, "missing_lines": [14, 23, 26, 27, 29, 30, 31, 38, 39, 40, 42, 43, 44, 45, 47, 49, 50, 51, 52, 54, 62, 64, 65, 66, 68, 70, 71, 72, 73, 74, 75, 76, 77, 79, 80, 81, 84, 85, 86, 87, 88, 89, 91, 93, 95, 96, 103, 105, 106, 108, 111, 112, 115, 117, 118, 120, 122], "excluded_lines": [], "functions": {"CribView.get_queryset": {"executed_lines": [46], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 12, "excluded_lines": 0}, "missing_lines": [27, 29, 30, 31, 38, 39, 40, 42, 43, 44, 45, 47], "excluded_lines": []}, "CribView.get_context": {"executed_lines": [61], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [50, 51, 52, 54, 62], "excluded_lines": []}, "CribView.get": {"executed_lines": [67], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [65, 66, 68], "excluded_lines": []}, "CribView.post": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 24, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 24, "excluded_lines": 0}, "missing_lines": [71, 72, 73, 74, 75, 76, 77, 79, 80, 81, 84, 85, 86, 87, 88, 89, 91, 93, 95, 96, 103, 105, 106, 108], "excluded_lines": []}, "toggle_public": {"executed_lines": [113, 114], "summary": {"covered_lines": 2, "num_statements": 7, "percent_covered": 28.571428571428573, "percent_covered_display": "29", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [115, 117, 118, 120, 122], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 15, 16, 17, 20, 21, 22, 24], "summary": {"covered_lines": 14, "num_statements": 22, "percent_covered": 63.63636363636363, "percent_covered_display": "64", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [14, 23, 26, 49, 64, 70, 111, 112], "excluded_lines": []}}, "classes": {"CribView": {"executed_lines": [46, 61, 67], "summary": {"covered_lines": 0, "num_statements": 44, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 44, "excluded_lines": 0}, "missing_lines": [27, 29, 30, 31, 38, 39, 40, 42, 43, 44, 45, 47, 50, 51, 52, 54, 62, 65, 66, 68, 71, 72, 73, 74, 75, 76, 77, 79, 80, 81, 84, 85, 86, 87, 88, 89, 91, 93, 95, 96, 103, 105, 106, 108], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 15, 16, 17, 20, 21, 22, 24, 113, 114], "summary": {"covered_lines": 16, "num_statements": 29, "percent_covered": 55.172413793103445, "percent_covered_display": "55", "missing_lines": 13, "excluded_lines": 0}, "missing_lines": [14, 23, 26, 49, 64, 70, 111, 112, 115, 117, 118, 120, 122], "excluded_lines": []}}}, "hknweb\\tutoring\\views\\index.py": {"executed_lines": [1, 2, 3, 4, 6, 8, 9, 12, 13, 14, 15, 16, 20, 21, 22, 26, 27, 32, 35, 38, 40, 41, 42, 48], "summary": {"covered_lines": 24, "num_statements": 26, "percent_covered": 92.3076923076923, "percent_covered_display": "92", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [17, 18], "excluded_lines": [], "functions": {"index": {"executed_lines": [14, 15, 16, 20, 21, 22, 26, 27, 32, 35, 38, 40, 41, 42, 48], "summary": {"covered_lines": 15, "num_statements": 17, "percent_covered": 88.23529411764706, "percent_covered_display": "88", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [17, 18], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 8, 9, 12, 13], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 6, 8, 9, 12, 13, 14, 15, 16, 20, 21, 22, 26, 27, 32, 35, 38, 40, 41, 42, 48], "summary": {"covered_lines": 24, "num_statements": 26, "percent_covered": 92.3076923076923, "percent_covered_display": "92", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [17, 18], "excluded_lines": []}}}, "hknweb\\tutoring\\views\\slots.py": {"executed_lines": [1, 3, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 22, 23, 24, 27, 28, 29, 30, 31, 33, 35, 38, 40, 50, 52, 61, 62, 63, 64, 74, 75], "summary": {"covered_lines": 33, "num_statements": 35, "percent_covered": 94.28571428571429, "percent_covered_display": "94", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [18, 53], "excluded_lines": [], "functions": {"slots": {"executed_lines": [16, 17, 20, 22, 35, 38, 40, 50, 52, 61, 74, 75], "summary": {"covered_lines": 12, "num_statements": 13, "percent_covered": 92.3076923076923, "percent_covered_display": "92", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [18], "excluded_lines": []}, "slots.get_filter_params": {"executed_lines": [23, 24, 27, 28, 29, 30, 31, 33], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "slots.serialize_tutor": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [53], "excluded_lines": []}, "slots.serialize_slot": {"executed_lines": [62, 63, 64], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 6, 7, 9, 11, 14, 15], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 22, 23, 24, 27, 28, 29, 30, 31, 33, 35, 38, 40, 50, 52, 61, 62, 63, 64, 74, 75], "summary": {"covered_lines": 33, "num_statements": 35, "percent_covered": 94.28571428571429, "percent_covered_display": "94", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [18, 53], "excluded_lines": []}}}, "hknweb\\tutoring\\views\\tutoringportal.py": {"executed_lines": [1, 2, 3, 6, 7], "summary": {"covered_lines": 5, "num_statements": 6, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [8], "excluded_lines": [], "functions": {"tutoringportal": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [8], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 6, 7], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 6, 7], "summary": {"covered_lines": 5, "num_statements": 6, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [8], "excluded_lines": []}}}, "hknweb\\urls.py": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 18, 21, 26, 52, 69, 74, 79], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [79, 80], "functions": {"": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 18, 21, 26, 52, 69, 74, 79], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [79, 80]}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 18, 21, 26, 52, 69, 74, 79], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [79, 80]}}}, "hknweb\\utils.py": {"executed_lines": [1, 2, 3, 6, 7, 9, 10, 11, 12, 17, 18, 19, 20, 21, 22, 27, 28, 32, 33, 35, 36, 37, 39, 40, 41, 43, 44, 46, 49, 50, 53, 54, 55, 66, 69, 72, 76, 84, 85, 86, 87, 88, 90, 93, 94, 101, 102, 105, 106, 110, 111, 113, 116, 117, 124, 125, 128, 129, 130, 131, 133, 136, 137, 143, 144, 150, 158, 167, 171, 172, 175, 189, 204, 206, 209, 212, 217, 218, 221, 222, 224, 225, 228, 229, 230, 232, 242, 245, 246, 254, 256, 259, 266, 267, 268, 269, 270, 271, 274], "summary": {"covered_lines": 99, "num_statements": 132, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 33, "excluded_lines": 0}, "missing_lines": [103, 126, 152, 153, 154, 159, 160, 161, 178, 179, 183, 190, 191, 193, 194, 195, 197, 198, 199, 201, 276, 277, 278, 279, 280, 281, 284, 285, 286, 287, 288, 289, 291], "excluded_lines": [], "functions": {"_record_permission": {"executed_lines": [33, 35, 46], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_record_permission.decorator": {"executed_lines": [36, 37, 39, 40, 43, 44], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_record_permission.decorator.wrapped": {"executed_lines": [41], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "allow_public_access": {"executed_lines": [50], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_wrap_with_access_check": {"executed_lines": [54, 66], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_wrap_with_access_check.decorator": {"executed_lines": [55], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "login_and_permission": {"executed_lines": [76], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "access_level_required": {"executed_lines": [85, 90], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "access_level_required.test_user": {"executed_lines": [86, 87, 88], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "login_and_access_level": {"executed_lines": [94], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "committee_required": {"executed_lines": [102, 105, 113], "summary": {"covered_lines": 3, "num_statements": 4, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [103], "excluded_lines": []}, "committee_required.test_user": {"executed_lines": [106, 110, 111], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "login_and_committee": {"executed_lines": [117], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "exec_required": {"executed_lines": [125, 128, 133], "summary": {"covered_lines": 3, "num_statements": 4, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [126], "excluded_lines": []}, "exec_required.test_user": {"executed_lines": [129, 130, 131], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "login_and_exec": {"executed_lines": [137], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "method_login_and_permission": {"executed_lines": [144], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "get_all_photos": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [152, 153, 154], "excluded_lines": []}, "get_rand_photo": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [159, 160, 161], "excluded_lines": []}, "get_semester": {"executed_lines": [171, 172], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "get_semester_bounds": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [178, 179, 183], "excluded_lines": []}, "export_model_as_csv": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [190, 191, 193, 194, 195, 197, 198, 199, 201], "excluded_lines": []}, "markdownify": {"executed_lines": [206, 209, 212, 217, 218, 221, 222, 224, 225, 228, 229, 230, 232, 242, 245, 246, 254, 256], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "get_access_level": {"executed_lines": [267, 268, 269, 270, 271], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "view_url": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 0}, "missing_lines": [276, 277, 278, 279, 280, 281, 284, 285, 286, 287, 288, 289, 291], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 6, 7, 9, 10, 11, 12, 17, 18, 19, 20, 21, 22, 27, 28, 32, 49, 53, 69, 72, 84, 93, 101, 116, 124, 136, 143, 150, 158, 167, 175, 189, 204, 259, 266, 274], "summary": {"covered_lines": 38, "num_statements": 38, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 6, 7, 9, 10, 11, 12, 17, 18, 19, 20, 21, 22, 27, 28, 32, 33, 35, 36, 37, 39, 40, 41, 43, 44, 46, 49, 50, 53, 54, 55, 66, 69, 72, 76, 84, 85, 86, 87, 88, 90, 93, 94, 101, 102, 105, 106, 110, 111, 113, 116, 117, 124, 125, 128, 129, 130, 131, 133, 136, 137, 143, 144, 150, 158, 167, 171, 172, 175, 189, 204, 206, 209, 212, 217, 218, 221, 222, 224, 225, 228, 229, 230, 232, 242, 245, 246, 254, 256, 259, 266, 267, 268, 269, 270, 271, 274], "summary": {"covered_lines": 99, "num_statements": 132, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 33, "excluded_lines": 0}, "missing_lines": [103, 126, 152, 153, 154, 159, 160, 161, 178, 179, 183, 190, 191, 193, 194, 195, 197, 198, 199, 201, 276, 277, 278, 279, 280, 281, 284, 285, 286, 287, 288, 289, 291], "excluded_lines": []}}}, "hknweb\\views\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\views\\bitbyte_tree.py": {"executed_lines": [1, 3, 4, 5, 9, 10, 44, 45], "summary": {"covered_lines": 8, "num_statements": 30, "percent_covered": 26.666666666666668, "percent_covered_display": "27", "missing_lines": 22, "excluded_lines": 0}, "missing_lines": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 27, 28, 29, 37, 38, 39, 41, 46], "excluded_lines": [], "functions": {"bitbyte_tree_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 21, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 21, "excluded_lines": 0}, "missing_lines": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 27, 28, 29, 37, 38, 39, 41], "excluded_lines": []}, "bitbyte_tree": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [46], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 9, 10, 44, 45], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 4, 5, 9, 10, 44, 45], "summary": {"covered_lines": 8, "num_statements": 30, "percent_covered": 26.666666666666668, "percent_covered_display": "27", "missing_lines": 22, "excluded_lines": 0}, "missing_lines": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 27, 28, 29, 37, 38, 39, 41, 46], "excluded_lines": []}}}, "hknweb\\views\\committees.py": {"executed_lines": [1, 2, 5, 6], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [7], "excluded_lines": [], "functions": {"portal": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [7], "excluded_lines": []}, "": {"executed_lines": [1, 2, 5, 6], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 5, 6], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [7], "excluded_lines": []}}}, "hknweb\\views\\indrel.py": {"executed_lines": [1, 3, 6, 7], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [8], "excluded_lines": [], "functions": {"indrel": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [8], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 6, 7], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [8], "excluded_lines": []}}}, "hknweb\\views\\landing.py": {"executed_lines": [1, 2, 3, 5, 6, 9, 12, 13, 33, 34], "summary": {"covered_lines": 10, "num_statements": 18, "percent_covered": 55.55555555555556, "percent_covered_display": "56", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [15, 18, 20, 21, 23, 25, 30, 35], "excluded_lines": [], "functions": {"home": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [15, 18, 20, 21, 23, 25, 30], "excluded_lines": []}, "about": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [35], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 6, 9, 12, 13, 33, 34], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 6, 9, 12, 13, 33, 34], "summary": {"covered_lines": 10, "num_statements": 18, "percent_covered": 55.55555555555556, "percent_covered_display": "56", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [15, 18, 20, 21, 23, 25, 30, 35], "excluded_lines": []}}}, "hknweb\\views\\outreach.py": {"executed_lines": [1, 4, 7, 8], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [9], "excluded_lines": [], "functions": {"outreach": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [9], "excluded_lines": []}, "": {"executed_lines": [1, 4, 7, 8], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 4, 7, 8], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [9], "excluded_lines": []}}}, "hknweb\\views\\people.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 10, 11, 13, 16, 17], "summary": {"covered_lines": 12, "num_statements": 35, "percent_covered": 34.285714285714285, "percent_covered_display": "34", "missing_lines": 23, "excluded_lines": 0}, "missing_lines": [18, 19, 21, 24, 25, 26, 28, 31, 33, 39, 40, 41, 43, 45, 48, 52, 53, 54, 55, 56, 57, 59, 66], "excluded_lines": [], "functions": {"people": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 23, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 23, "excluded_lines": 0}, "missing_lines": [18, 19, 21, 24, 25, 26, 28, 31, 33, 39, 40, 41, 43, 45, 48, 52, 53, 54, 55, 56, 57, 59, 66], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 10, 11, 13, 16, 17], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 10, 11, 13, 16, 17], "summary": {"covered_lines": 12, "num_statements": 35, "percent_covered": 34.285714285714285, "percent_covered_display": "34", "missing_lines": 23, "excluded_lines": 0}, "missing_lines": [18, 19, 21, 24, 25, 26, 28, 31, 33, 39, 40, 41, 43, 45, 48, 52, 53, 54, 55, 56, 57, 59, 66], "excluded_lines": []}}}, "hknweb\\views\\users.py": {"executed_lines": [1, 2, 3, 4, 5, 11, 12, 13, 14, 15, 16, 17, 18, 19, 23, 24, 25, 28, 29, 33, 36, 37, 38, 41, 42, 43, 46, 48, 49, 50, 51, 52, 58, 62, 63, 64, 65, 66, 67, 68, 72, 73, 74, 76, 77, 78, 80, 81, 91, 92, 94, 95, 98, 99, 100, 111, 112, 113, 114, 115, 118, 119, 120, 123, 125, 126, 129, 130, 131, 134, 135, 136, 137, 138, 139, 140, 144, 152, 153, 154, 156, 157, 158, 160, 161, 165, 174, 176, 180, 188, 191, 192, 193, 195, 200], "summary": {"covered_lines": 85, "num_statements": 91, "percent_covered": 93.4065934065934, "percent_covered_display": "93", "missing_lines": 6, "excluded_lines": 27}, "missing_lines": [82, 83, 87, 88, 89, 121], "excluded_lines": [46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 69, 70, 71, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "functions": {"add_officer_context": {"executed_lines": [24, 25, 28, 29, 33], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "add_exec_context": {"executed_lines": [37, 38, 41, 42, 43], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "get_current_cand_semester": {"executed_lines": [48, 49, 50, 51, 52, 58], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 11}, "missing_lines": [], "excluded_lines": [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58]}, "account_create": {"executed_lines": [64, 65, 66, 67, 68, 72, 73, 74, 76, 77, 78, 80, 81, 91, 92, 94, 95], "summary": {"covered_lines": 17, "num_statements": 22, "percent_covered": 77.27272727272727, "percent_covered_display": "77", "missing_lines": 5, "excluded_lines": 3}, "missing_lines": [82, 83, 87, 88, 89], "excluded_lines": [69, 70, 71]}, "confirm_recaptcha": {"executed_lines": [99, 100], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 10}, "missing_lines": [], "excluded_lines": [99, 100, 101, 102, 103, 104, 105, 106, 107, 108]}, "account_settings": {"executed_lines": [113, 114, 115, 118, 119, 120, 123, 125, 126, 129, 130, 131, 134, 135, 136, 137, 138, 139, 140, 144, 152, 153, 154, 156, 157, 158, 160, 161, 165, 174, 176, 180, 188, 191, 192, 193, 195, 200], "summary": {"covered_lines": 38, "num_statements": 39, "percent_covered": 97.43589743589743, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [121], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 11, 12, 13, 14, 15, 16, 17, 18, 19, 23, 36, 46, 62, 63, 98, 111, 112], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3}, "missing_lines": [], "excluded_lines": [46, 47, 98]}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 11, 12, 13, 14, 15, 16, 17, 18, 19, 23, 24, 25, 28, 29, 33, 36, 37, 38, 41, 42, 43, 46, 48, 49, 50, 51, 52, 58, 62, 63, 64, 65, 66, 67, 68, 72, 73, 74, 76, 77, 78, 80, 81, 91, 92, 94, 95, 98, 99, 100, 111, 112, 113, 114, 115, 118, 119, 120, 123, 125, 126, 129, 130, 131, 134, 135, 136, 137, 138, 139, 140, 144, 152, 153, 154, 156, 157, 158, 160, 161, 165, 174, 176, 180, 188, 191, 192, 193, 195, 200], "summary": {"covered_lines": 85, "num_statements": 91, "percent_covered": 93.4065934065934, "percent_covered_display": "93", "missing_lines": 6, "excluded_lines": 27}, "missing_lines": [82, 83, 87, 88, 89, 121], "excluded_lines": [46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 69, 70, 71, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108]}}}, "tests\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\academics\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\academics\\models\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\academics\\models\\course_surveys\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\academics\\models\\logistics\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\academics\\utils.py": {"executed_lines": [1, 3, 5, 17, 18, 19, 20, 22, 23, 24, 28, 29, 31, 32, 33, 36, 37, 39, 40, 41, 45, 46, 48, 49, 50, 52, 53, 54, 58, 62, 67, 69, 70, 71, 72, 74, 80, 81, 82, 85, 89, 94, 96, 97, 98, 100, 102, 103, 106, 112, 120, 125, 127, 128, 129, 130, 131, 132, 134, 142, 143, 144, 147, 148, 151, 152, 153, 154, 155, 157, 158, 159, 160, 162], "summary": {"covered_lines": 74, "num_statements": 74, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"ModelFactory.create_course": {"executed_lines": [20], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_department": {"executed_lines": [24, 28, 29], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_instructor": {"executed_lines": [33, 36, 37], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_semester": {"executed_lines": [41, 45, 46], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_question": {"executed_lines": [50], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_rating": {"executed_lines": [54, 58, 62, 67], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_default_rating": {"executed_lines": [71, 72, 74], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_survey": {"executed_lines": [82, 85, 89, 94], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_default_survey": {"executed_lines": [98, 100], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_icsr": {"executed_lines": [106, 112, 120, 125], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_default_icsr": {"executed_lines": [129, 130, 131, 132, 134], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_user": {"executed_lines": [144, 147, 148], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "login_user": {"executed_lines": [152, 153, 154, 155, 157, 158, 159, 160, 162], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 17, 18, 19, 22, 23, 31, 32, 39, 40, 48, 49, 52, 53, 69, 70, 80, 81, 96, 97, 102, 103, 127, 128, 142, 143, 151], "summary": {"covered_lines": 29, "num_statements": 29, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"ModelFactory": {"executed_lines": [20, 24, 28, 29, 33, 36, 37, 41, 45, 46, 50, 54, 58, 62, 67, 71, 72, 74, 82, 85, 89, 94, 98, 100, 106, 112, 120, 125, 129, 130, 131, 132, 134, 144, 147, 148], "summary": {"covered_lines": 36, "num_statements": 36, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 17, 18, 19, 22, 23, 31, 32, 39, 40, 48, 49, 52, 53, 69, 70, 80, 81, 96, 97, 102, 103, 127, 128, 142, 143, 151, 152, 153, 154, 155, 157, 158, 159, 160, 162], "summary": {"covered_lines": 38, "num_statements": 38, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\candidate\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\candidate\\admin\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\candidate\\models\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\candidate\\models\\utils.py": {"executed_lines": [1, 2, 4, 5, 7, 18, 19, 20, 21, 24, 25, 27, 28, 29, 33, 37, 39, 40, 41, 44, 48, 50, 51, 52, 56, 60, 62, 63, 65, 67, 68, 69, 73, 77, 82, 84, 85, 86, 90, 94, 96, 97, 98, 101, 105, 107, 108, 109, 110, 111, 113, 114, 115, 125, 127, 129, 130, 131, 136, 140, 142, 143, 144, 149, 153], "summary": {"covered_lines": 65, "num_statements": 65, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"ModelFactory.create_user": {"executed_lines": [21, 24, 25], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_semester": {"executed_lines": [29, 33, 37], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_eventtype": {"executed_lines": [41, 44, 48], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_bitbyteactivity_activity": {"executed_lines": [52, 56, 60, 62, 63, 65], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_officerchallenge_activity": {"executed_lines": [69, 73, 77, 82], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_announcement": {"executed_lines": [86, 90, 94], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_event_req": {"executed_lines": [98, 101, 105], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_default_event_req": {"executed_lines": [109, 110, 111], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_default_logistics": {"executed_lines": [115, 125, 127], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_misc_req": {"executed_lines": [131, 136, 140], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_form_req": {"executed_lines": [144, 149, 153], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 7, 18, 19, 20, 27, 28, 39, 40, 50, 51, 67, 68, 84, 85, 96, 97, 107, 108, 113, 114, 129, 130, 142, 143], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"ModelFactory": {"executed_lines": [21, 24, 25, 29, 33, 37, 41, 44, 48, 52, 56, 60, 62, 63, 65, 69, 73, 77, 82, 86, 90, 94, 98, 101, 105, 109, 110, 111, 115, 125, 127, 131, 136, 140, 144, 149, 153], "summary": {"covered_lines": 37, "num_statements": 37, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 7, 18, 19, 20, 27, 28, 39, 40, 50, 51, 67, 68, 84, 85, 96, 97, 107, 108, 113, 114, 129, 130, 142, 143], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\candidate\\templatetags\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\candidate\\views\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\candidate\\views\\utils.py": {"executed_lines": [1, 2, 4, 5, 8, 9, 10, 11, 17, 18, 19, 25, 26, 27, 33, 34, 36, 38, 39, 40, 41, 42, 43, 44, 46, 47, 48, 49], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"CandidateViewTestsBase.setUp": {"executed_lines": [10, 11, 17, 18, 19, 25, 26, 27, 33, 34, 36, 38, 39, 40, 41, 42, 43, 44, 46, 47, 48, 49], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 8, 9], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"CandidateViewTestsBase": {"executed_lines": [10, 11, 17, 18, 19, 25, 26, 27, 33, 34, 36, 38, 39, 40, 41, 42, 43, 44, 46, 47, 48, 49], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 8, 9], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\course_surveys\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\course_surveys\\utils.py": {"executed_lines": [1, 2, 4, 5, 7, 10, 11, 12, 13, 14, 16, 17, 18, 22, 24], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"create_user_with_course_surveys_edit_permission": {"executed_lines": [11, 12, 13, 14, 16, 17, 18, 22, 24], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 7, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 5, 7, 10, 11, 12, 13, 14, 16, 17, 18, 22, 24], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\events\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\events\\models\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\events\\models\\utils.py": {"executed_lines": [1, 3, 5, 6, 9, 10, 11, 12, 15, 16, 18, 19, 20, 23, 24, 26, 27, 28, 33, 39, 40, 42, 43, 44, 48, 49, 51, 52, 53, 54, 55, 60, 61, 63, 70, 72], "summary": {"covered_lines": 36, "num_statements": 36, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"ModelFactory.create_user": {"executed_lines": [12, 15, 16], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_event_type": {"executed_lines": [20, 23, 24], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_event": {"executed_lines": [28, 33, 39, 40], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_rsvp": {"executed_lines": [44, 48, 49], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_event_with_rsvps": {"executed_lines": [53, 54, 55, 60, 61, 63, 70, 72], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 6, 9, 10, 11, 18, 19, 26, 27, 42, 43, 51, 52], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"ModelFactory": {"executed_lines": [12, 15, 16, 20, 23, 24, 28, 33, 39, 40, 44, 48, 49, 53, 54, 55, 60, 61, 63, 70, 72], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 6, 9, 10, 11, 18, 19, 26, 27, 42, 43, 51, 52], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\events\\views\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\events\\views\\aggregate_displays\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\events\\views\\event_transactions\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\events\\views\\event_transactions\\utils.py": {"executed_lines": [1, 2, 4, 6, 9, 10, 11, 12, 13, 15, 16, 19, 21, 23, 24, 31, 32, 33], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"setUp": {"executed_lines": [10, 11, 12, 13, 15, 16, 19, 21, 23, 24, 31, 32, 33], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 6, 9], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 6, 9, 10, 11, 12, 13, 15, 16, 19, 21, 23, 24, 31, 32, 33], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\events\\views\\rsvp_transactions\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\events\\views\\rsvp_transactions\\utils.py": {"executed_lines": [1, 2, 4, 6, 9, 10, 11, 12, 13, 15, 16, 17, 20, 22, 24, 25, 32, 33, 34], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"setUp": {"executed_lines": [10, 11, 12, 13, 15, 16, 17, 20, 22, 24, 25, 32, 33, 34], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 6, 9], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 6, 9, 10, 11, 12, 13, 15, 16, 17, 20, 22, 24, 25, 32, 33, 34], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\events\\views\\templatetags\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\studentservices\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\studentservices\\models\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\studentservices\\views\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\tutoring\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\tutoring\\views\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\views\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}}, "totals": {"covered_lines": 3503, "num_statements": 4162, "percent_covered": 84.16626621816434, "percent_covered_display": "84", "missing_lines": 659, "excluded_lines": 533}} \ No newline at end of file diff --git a/hknweb/google_drive_utils.py b/hknweb/google_drive_utils.py index f6eaca03..9d7e699d 100644 --- a/hknweb/google_drive_utils.py +++ b/hknweb/google_drive_utils.py @@ -1,3 +1,4 @@ +from functools import wraps import google.oauth2.service_account as service_account from googleapiclient.discovery import build from googleapiclient.errors import HttpError @@ -42,6 +43,7 @@ def get_credentials(): # pragma: no cover def check_credentials_wrapper(fn): + @wraps(fn) def new_fn(*args, **kwargs): get_credentials() return fn(*args, **kwargs) diff --git a/hknweb/tutoring/urls.py b/hknweb/tutoring/urls.py index 35c5bc79..16bd7913 100644 --- a/hknweb/tutoring/urls.py +++ b/hknweb/tutoring/urls.py @@ -1,9 +1,5 @@ from django.urls import path -from hknweb import settings -from django.utils.decorators import method_decorator -from hknweb.utils import login_and_committee - from . import views app_name = "tutoring" @@ -22,12 +18,6 @@ ), path("portal", views.tutoringportal, name="tutoring_portal"), path("courses", views.courses, name="courses"), - path( - "crib", - method_decorator(login_and_committee(settings.TUTORING_GROUP), name="dispatch")( - views.CribView.as_view() - ), - name="crib", - ), + path("crib", views.CribView.as_view(), name="crib"), path("crib/toggle_public/", views.toggle_public, name="toggle_public"), ] diff --git a/hknweb/tutoring/views/crib.py b/hknweb/tutoring/views/crib.py index 887ec93c..f8fda4fb 100644 --- a/hknweb/tutoring/views/crib.py +++ b/hknweb/tutoring/views/crib.py @@ -1,4 +1,3 @@ -from io import BytesIO from django.shortcuts import render, get_object_or_404, redirect from hknweb.utils import login_and_committee from hknweb.tutoring.models import CribSheet, CourseDescription @@ -15,11 +14,14 @@ from django.views import View from django.core.paginator import Paginator from django.db.models import Q +from django.utils.decorators import method_decorator + +@method_decorator(login_and_committee(settings.TUTORING_GROUP), name="dispatch") class CribView(View): template = "tutoring/crib.html" - paginte_by = 10 + paginate_by = 10 def get_queryset(self, request): qs = CribSheet.objects.all() @@ -39,12 +41,13 @@ def get_queryset(self, request): semester_query = request.GET.get("semester", "").strip() if semester_query: - qs = qs.filter(semester__name=semester_query) + semester_semester, semester_year = semester_query.split() + qs = qs.filter(semester__semester=semester_semester, semester__year=semester_year) return qs.order_by("-upload_date") def get_context(self, request, qs): - paginator = Paginator(qs, self.paginte_by) + paginator = Paginator(qs, self.paginate_by) page_number = request.GET.get("page") page_obj = paginator.get_page(page_number) @@ -61,7 +64,6 @@ def get_context(self, request, qs): def get(self, request): qs = self.get_queryset(request) context = self.get_context(request, qs) - return render(request, self.template, context=context) def post(self, request): @@ -85,7 +87,6 @@ def post(self, request): course.folderID = folderID course.save() else: - print("Error creating folder for course:", result["result"]) return result = create_pdf(title, file, parents=[folderID], description=comment) @@ -99,10 +100,6 @@ def post(self, request): comment=comment, ) sheet.save() - else: - print("Error uploading crib sheet:", result["result"]) - else: - print("Invalid form submission:", form.errors) qs = self.get_queryset(request) context = self.get_context(request, qs) diff --git a/tests/tutoring/views/test_crib.py b/tests/tutoring/views/test_crib.py new file mode 100644 index 00000000..e7c1dbcc --- /dev/null +++ b/tests/tutoring/views/test_crib.py @@ -0,0 +1,104 @@ +from django.test import TestCase + +from django.urls import reverse + +from hknweb import settings +from hknweb.models import DriveFolderID +from tests.candidate.models.utils import ModelFactory +from django.contrib.auth.models import Group, AnonymousUser + +from hknweb.tutoring.models import CribSheet +from hknweb.coursesemester.models import Semester +from hknweb.google_drive_utils import create_pdf, create_folder +from hknweb.studentservices.models import CourseDescription +from django.core.files.uploadedfile import SimpleUploadedFile +from unittest.mock import patch + + +class CribViewTests(TestCase): + @classmethod + def setUpTestData(cls): + cls.anon = AnonymousUser() + cls.tutoring_officer = ModelFactory.create_user(username="tutoring_officer") + cls.member = ModelFactory.create_user(username="member") + cls.tutoring_group = Group.objects.create(name=settings.TUTORING_GROUP) + cls.tutoring_officer.groups.add(cls.tutoring_group) + + cls.users = [(cls.anon, 302), (cls.member, 403), (cls.tutoring_officer, 200)] + + + def test_crib_view_get(self): + for user, status_code in self.users: + self.client.force_login(user) if user.is_authenticated else self.client.logout() + response = self.client.get(reverse("tutoring:crib")) + self.assertEqual(response.status_code, status_code) + if status_code == 200: + self.assertTemplateUsed(response, "tutoring/crib.html") + + def test_crib_view_get_query(self): + CourseDescription.objects.create(title="CS161", slug="cs161") + Semester.objects.create(semester="Spring", year=2026) + CribSheet.objects.create( + course=CourseDescription.objects.get(title="CS161"), + semester=Semester.objects.get(semester="Spring", year=2026), + title="Test Sheet", + ) + + for user, status_code in self.users: + self.client.force_login(user) if user.is_authenticated else self.client.logout() + response = self.client.get(reverse("tutoring:crib"), {'q': 'test', 'course': 'CS161', 'semester': 'Spring 2026'}) + self.assertEqual(response.status_code, status_code) + if status_code == 200: + self.assertTemplateUsed(response, "tutoring/crib.html") + + def test_crib_view_post_empty_form(self): + self.client.force_login(self.tutoring_officer) + response = self.client.post(reverse("tutoring:crib"), {}) + + form = response.context.get("form") + self.assertIsNotNone(form) + self.assertFalse(form.is_valid()) + + self.assertEqual(response.status_code, 200) + self.assertTemplateUsed(response, "tutoring/crib.html") + + + + @patch("hknweb.tutoring.views.crib.create_pdf") + @patch("hknweb.tutoring.views.crib.create_folder") + def test_crib_view_post_valid_form(self, mock_create_folder, mock_create_pdf): + self.client.force_login(self.tutoring_officer) + + course = CourseDescription.objects.create(title="CS161", slug="cs161") + Semester.objects.create(semester="Spring", year=2026) + DriveFolderID.objects.create(title="Crib Sheets",folderID="test_folder_id") + + mock_create_pdf.return_value = {"status": True, "result": "test_pdf_id"} + mock_create_folder.return_value = {"status": True, "result": "test_folder_id"} + + + valid_file = SimpleUploadedFile( + "test_crib.pdf", + b"%PDF-1.4 test pdf content", + content_type="application/pdf", + ) + + valid_data = { + "course": course.pk, + "title": "Test Sheet", + "file": valid_file, + } + + + response = self.client.post( + reverse("tutoring:crib"), + data=valid_data, + files={"file": valid_file}, + ) + + + self.assertEqual(response.status_code, 200) + self.assertTemplateUsed(response, "tutoring/crib.html") + self.assertTrue(CribSheet.objects.filter(title="Test Sheet", course=course).exists()) + mock_create_folder.assert_called_once() + course.refresh_from_db() From e85466621450f01e58289079bdf4d3a682caf29e Mon Sep 17 00:00:00 2001 From: Ryan Trinh Date: Wed, 4 Feb 2026 19:26:12 -0800 Subject: [PATCH 5/6] Fixed format once again --- hknweb/tutoring/views/crib.py | 5 ++-- tests/tutoring/views/test_crib.py | 41 +++++++++++++++++-------------- 2 files changed, 25 insertions(+), 21 deletions(-) diff --git a/hknweb/tutoring/views/crib.py b/hknweb/tutoring/views/crib.py index f8fda4fb..9a4fd993 100644 --- a/hknweb/tutoring/views/crib.py +++ b/hknweb/tutoring/views/crib.py @@ -17,7 +17,6 @@ from django.utils.decorators import method_decorator - @method_decorator(login_and_committee(settings.TUTORING_GROUP), name="dispatch") class CribView(View): template = "tutoring/crib.html" @@ -42,7 +41,9 @@ def get_queryset(self, request): semester_query = request.GET.get("semester", "").strip() if semester_query: semester_semester, semester_year = semester_query.split() - qs = qs.filter(semester__semester=semester_semester, semester__year=semester_year) + qs = qs.filter( + semester__semester=semester_semester, semester__year=semester_year + ) return qs.order_by("-upload_date") diff --git a/tests/tutoring/views/test_crib.py b/tests/tutoring/views/test_crib.py index e7c1dbcc..9f6a2bf1 100644 --- a/tests/tutoring/views/test_crib.py +++ b/tests/tutoring/views/test_crib.py @@ -23,18 +23,19 @@ def setUpTestData(cls): cls.member = ModelFactory.create_user(username="member") cls.tutoring_group = Group.objects.create(name=settings.TUTORING_GROUP) cls.tutoring_officer.groups.add(cls.tutoring_group) - + cls.users = [(cls.anon, 302), (cls.member, 403), (cls.tutoring_officer, 200)] - - + def test_crib_view_get(self): for user, status_code in self.users: - self.client.force_login(user) if user.is_authenticated else self.client.logout() + self.client.force_login( + user + ) if user.is_authenticated else self.client.logout() response = self.client.get(reverse("tutoring:crib")) self.assertEqual(response.status_code, status_code) if status_code == 200: self.assertTemplateUsed(response, "tutoring/crib.html") - + def test_crib_view_get_query(self): CourseDescription.objects.create(title="CS161", slug="cs161") Semester.objects.create(semester="Spring", year=2026) @@ -43,27 +44,30 @@ def test_crib_view_get_query(self): semester=Semester.objects.get(semester="Spring", year=2026), title="Test Sheet", ) - + for user, status_code in self.users: - self.client.force_login(user) if user.is_authenticated else self.client.logout() - response = self.client.get(reverse("tutoring:crib"), {'q': 'test', 'course': 'CS161', 'semester': 'Spring 2026'}) + self.client.force_login( + user + ) if user.is_authenticated else self.client.logout() + response = self.client.get( + reverse("tutoring:crib"), + {"q": "test", "course": "CS161", "semester": "Spring 2026"}, + ) self.assertEqual(response.status_code, status_code) if status_code == 200: self.assertTemplateUsed(response, "tutoring/crib.html") - + def test_crib_view_post_empty_form(self): self.client.force_login(self.tutoring_officer) response = self.client.post(reverse("tutoring:crib"), {}) - + form = response.context.get("form") self.assertIsNotNone(form) self.assertFalse(form.is_valid()) - + self.assertEqual(response.status_code, 200) self.assertTemplateUsed(response, "tutoring/crib.html") - - - + @patch("hknweb.tutoring.views.crib.create_pdf") @patch("hknweb.tutoring.views.crib.create_folder") def test_crib_view_post_valid_form(self, mock_create_folder, mock_create_pdf): @@ -71,12 +75,11 @@ def test_crib_view_post_valid_form(self, mock_create_folder, mock_create_pdf): course = CourseDescription.objects.create(title="CS161", slug="cs161") Semester.objects.create(semester="Spring", year=2026) - DriveFolderID.objects.create(title="Crib Sheets",folderID="test_folder_id") + DriveFolderID.objects.create(title="Crib Sheets", folderID="test_folder_id") mock_create_pdf.return_value = {"status": True, "result": "test_pdf_id"} mock_create_folder.return_value = {"status": True, "result": "test_folder_id"} - valid_file = SimpleUploadedFile( "test_crib.pdf", b"%PDF-1.4 test pdf content", @@ -89,16 +92,16 @@ def test_crib_view_post_valid_form(self, mock_create_folder, mock_create_pdf): "file": valid_file, } - response = self.client.post( reverse("tutoring:crib"), data=valid_data, files={"file": valid_file}, ) - self.assertEqual(response.status_code, 200) self.assertTemplateUsed(response, "tutoring/crib.html") - self.assertTrue(CribSheet.objects.filter(title="Test Sheet", course=course).exists()) + self.assertTrue( + CribSheet.objects.filter(title="Test Sheet", course=course).exists() + ) mock_create_folder.assert_called_once() course.refresh_from_db() From b11a3b09ab30d8d2da14386d2c05893aa8475218 Mon Sep 17 00:00:00 2001 From: ryantrinh05 <156976151+ryantrinh05@users.noreply.github.com> Date: Wed, 4 Feb 2026 19:41:48 -0800 Subject: [PATCH 6/6] Delete coverage.json --- coverage.json | 1 - 1 file changed, 1 deletion(-) delete mode 100644 coverage.json diff --git a/coverage.json b/coverage.json deleted file mode 100644 index a71d5b0f..00000000 --- a/coverage.json +++ /dev/null @@ -1 +0,0 @@ -{"meta": {"format": 3, "version": "7.6.10", "timestamp": "2026-02-04T18:32:25.149651", "branch_coverage": false, "show_contexts": false}, "files": {"hknweb\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\admin.py": {"executed_lines": [1, 3, 15, 16, 17, 18, 19, 20, 21, 22], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 15, 16, 17, 18, 19, 20, 21, 22], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 15, 16, 17, 18, 19, 20, 21, 22], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\migrations\\0001_initial.py": {"executed_lines": [3, 4, 5, 8, 10, 12, 15], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 5, 8, 10, 12, 15], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 5, 8, 10, 12, 15], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\migrations\\0002_auto_20211223_1902.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\migrations\\0003_alter_icsr_course_name.py": {"executed_lines": [3, 6, 7, 11], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 7, 11], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 7, 11], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\migrations\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\models\\__init__.py": {"executed_lines": [1, 2, 8, 13], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 8, 13], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 8, 13], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\models\\base_models.py": {"executed_lines": [1, 4, 5, 6], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 4, 5, 6], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"AcademicEntity": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 4, 5, 6], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\models\\course_surveys\\__init__.py": {"executed_lines": [1, 2, 3], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 3], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\models\\course_surveys\\question.py": {"executed_lines": [1, 4, 5], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 4, 5], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Question": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 4, 5], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\models\\course_surveys\\rating.py": {"executed_lines": [1, 3, 6, 8, 11, 16, 17, 18, 19], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 8, 11, 16, 17, 18, 19], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Rating": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 8, 11, 16, 17, 18, 19], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\models\\course_surveys\\survey.py": {"executed_lines": [1, 2, 4, 7, 9, 14, 15, 16], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 4, 7, 9, 14, 15, 16], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Survey": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 7, 9, 14, 15, 16], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\models\\icsr.py": {"executed_lines": [1, 3, 6, 7, 12, 15, 18, 21, 26, 27, 28, 29, 30, 31], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7, 12, 15, 18, 21, 26, 27, 28, 29, 30, 31], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"ICSR": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 12, 15, 18, 21, 26, 27, 28, 29, 30, 31], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\models\\logistics\\__init__.py": {"executed_lines": [1, 2, 3, 4], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 3, 4], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\models\\logistics\\course.py": {"executed_lines": [1, 4, 5], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 4, 5], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Course": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 4, 5], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\models\\logistics\\department.py": {"executed_lines": [1, 3, 6, 7, 8], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7, 8], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Department": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 8], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\models\\logistics\\instructor.py": {"executed_lines": [1, 3, 6, 7], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Instructor": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\models\\logistics\\semester.py": {"executed_lines": [1, 2, 4, 7, 8, 9, 10, 11, 19, 20], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 4, 7, 8, 9, 10, 11, 19, 20], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Semester": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 7, 8, 9, 10, 11, 19, 20], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\permissions.py": {"executed_lines": [1, 4, 5, 11, 16], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"HasPermissionOrReadOnly.has_permission": {"executed_lines": [16], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 4, 5, 11], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"HasPermissionOrReadOnly": {"executed_lines": [16], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 4, 5, 11], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\serializers\\__init__.py": {"executed_lines": [1, 6, 12], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 6, 12], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 6, 12], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\serializers\\course_surveys\\__init__.py": {"executed_lines": [1, 2, 3], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 3], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\serializers\\course_surveys\\question.py": {"executed_lines": [1, 3, 6, 7, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"QuestionSerializer": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "QuestionSerializer.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\serializers\\course_surveys\\rating.py": {"executed_lines": [1, 3, 6, 7, 10, 14, 15, 16, 26], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7, 10, 14, 15, 16, 26], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"RatingSerializer": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "RatingSerializer.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 10, 14, 15, 16, 26], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\serializers\\course_surveys\\survey.py": {"executed_lines": [1, 3, 4, 7, 8, 11, 13, 14, 15, 24], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 4, 7, 8, 11, 13, 14, 15, 24], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"SurveySerializer": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "SurveySerializer.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 7, 8, 11, 13, 14, 15, 24], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\serializers\\icsr.py": {"executed_lines": [1, 3, 10, 13, 14, 17, 20, 23, 27, 29, 30, 31, 46], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 10, 13, 14, 17, 20, 23, 27, 29, 30, 31, 46], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"ICSRSerializer": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ICSRSerializer.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 10, 13, 14, 17, 20, 23, 27, 29, 30, 31, 46], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\serializers\\logistics\\__init__.py": {"executed_lines": [1, 2, 3, 4], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 3, 4], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\serializers\\logistics\\course.py": {"executed_lines": [1, 3, 6, 7, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"CourseSerializer": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CourseSerializer.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\serializers\\logistics\\department.py": {"executed_lines": [1, 3, 6, 7, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"DepartmentSerializer": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DepartmentSerializer.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\serializers\\logistics\\instructor.py": {"executed_lines": [1, 3, 6, 7, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"InstructorSerializer": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "InstructorSerializer.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\serializers\\logistics\\semester.py": {"executed_lines": [1, 3, 6, 7, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"SemesterSerializer": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "SemesterSerializer.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\urls.py": {"executed_lines": [1, 2, 4, 5, 8, 10, 13, 14, 17, 19, 21], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 4, 5, 8, 10, 13, 14, 17, 19, 21], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"RootView": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 8, 10, 13, 14, 17, 19, 21], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\views\\__init__.py": {"executed_lines": [1, 6, 12, 15, 16, 17, 18, 19, 20, 21, 22, 23], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"register_viewsets": {"executed_lines": [16, 17, 18, 19, 20, 21, 22, 23], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 6, 12, 15], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 6, 12, 15, 16, 17, 18, 19, 20, 21, 22, 23], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\views\\base_viewset.py": {"executed_lines": [1, 3, 6, 7, 14], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7, 14], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"AcademicEntityViewSet": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 14], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\views\\course_surveys\\__init__.py": {"executed_lines": [1, 2, 3], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 3], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\views\\course_surveys\\question.py": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"QuestionViewSet": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\views\\course_surveys\\rating.py": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"RatingViewSet": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\views\\course_surveys\\survey.py": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"SurveyViewSet": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\views\\icsr.py": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"ICSRViewSet": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\views\\logistics\\__init__.py": {"executed_lines": [1, 2, 3, 4], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 3, 4], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\views\\logistics\\course.py": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"CourseViewSet": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\views\\logistics\\department.py": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"DepartmentViewSet": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\views\\logistics\\instructor.py": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"InstructorViewSet": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\academics\\views\\logistics\\semester.py": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"SemesterViewSet": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 8, 9, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\admin.py": {"executed_lines": [1, 2, 3, 5, 6, 8, 10, 19, 23, 27, 28, 29, 38, 40, 49, 52, 55, 58, 63, 65, 70, 72, 77, 79, 84, 86, 91, 93, 98, 100, 101, 102, 109, 111, 128, 131, 132, 133, 134, 136, 138, 141, 143, 146, 149, 150, 151, 154, 155, 156, 157, 158, 159], "summary": {"covered_lines": 53, "num_statements": 84, "percent_covered": 63.095238095238095, "percent_covered_display": "63", "missing_lines": 31, "excluded_lines": 0}, "missing_lines": [50, 53, 56, 59, 60, 61, 66, 67, 68, 73, 74, 75, 80, 81, 82, 87, 88, 89, 94, 95, 96, 112, 113, 114, 116, 117, 119, 121, 125, 139, 144], "excluded_lines": [], "functions": {"CustomUserAdmin.officer": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [50], "excluded_lines": []}, "CustomUserAdmin.candidate": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [53], "excluded_lines": []}, "CustomUserAdmin.exec": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [56], "excluded_lines": []}, "CustomUserAdmin.add_cand": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [59, 60, 61], "excluded_lines": []}, "CustomUserAdmin.add_officer": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [66, 67, 68], "excluded_lines": []}, "CustomUserAdmin.add_exec": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [73, 74, 75], "excluded_lines": []}, "CustomUserAdmin.remove_cand": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [80, 81, 82], "excluded_lines": []}, "CustomUserAdmin.remove_officer": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [87, 88, 89], "excluded_lines": []}, "CustomUserAdmin.remove_exec": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [94, 95, 96], "excluded_lines": []}, "CustomUserAdmin.get_urls": {"executed_lines": [101, 102, 109], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CustomUserAdmin.provision_candidate_accounts": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [112, 113, 114, 116, 117, 119, 121, 125], "excluded_lines": []}, "AnnouncementAdmin.set_visible": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [139], "excluded_lines": []}, "AnnouncementAdmin.set_invisible": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [144], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 6, 8, 10, 19, 23, 27, 28, 29, 38, 40, 49, 52, 55, 58, 63, 65, 70, 72, 77, 79, 84, 86, 91, 93, 98, 100, 111, 128, 131, 132, 133, 134, 136, 138, 141, 143, 146, 149, 150, 151, 154, 155, 156, 157, 158, 159], "summary": {"covered_lines": 50, "num_statements": 50, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"CustomUserAdmin": {"executed_lines": [101, 102, 109], "summary": {"covered_lines": 3, "num_statements": 32, "percent_covered": 9.375, "percent_covered_display": "9", "missing_lines": 29, "excluded_lines": 0}, "missing_lines": [50, 53, 56, 59, 60, 61, 66, 67, 68, 73, 74, 75, 80, 81, 82, 87, 88, 89, 94, 95, 96, 112, 113, 114, 116, 117, 119, 121, 125], "excluded_lines": []}, "AnnouncementAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [139, 144], "excluded_lines": []}, "CommitteeshipAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 6, 8, 10, 19, 23, 27, 28, 29, 38, 40, 49, 52, 55, 58, 63, 65, 70, 72, 77, 79, 84, 86, 91, 93, 98, 100, 111, 128, 131, 132, 133, 134, 136, 138, 141, 143, 146, 149, 150, 151, 154, 155, 156, 157, 158, 159], "summary": {"covered_lines": 50, "num_statements": 50, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\admin\\__init__.py": {"executed_lines": [1, 2, 3, 4], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 3, 4], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\admin\\announcement.py": {"executed_lines": [1, 3, 6, 7, 10, 11, 12, 13, 15, 17, 20, 22, 25], "summary": {"covered_lines": 13, "num_statements": 15, "percent_covered": 86.66666666666667, "percent_covered_display": "87", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [18, 23], "excluded_lines": [], "functions": {"AnnouncementAdmin.set_visible": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [18], "excluded_lines": []}, "AnnouncementAdmin.set_invisible": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [23], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 10, 11, 12, 13, 15, 17, 20, 22, 25], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"AnnouncementAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [18, 23], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 10, 11, 12, 13, 15, 17, 20, 22, 25], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\admin\\bitbyteactivity.py": {"executed_lines": [1, 3, 6, 7, 8, 9, 10, 17, 18, 25, 27, 28], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"BitByteActivityAdmin.participant_usernames": {"executed_lines": [28], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 8, 9, 10, 17, 18, 25, 27], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"BitByteActivityAdmin": {"executed_lines": [28], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 8, 9, 10, 17, 18, 25, 27], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\admin\\logistics.py": {"executed_lines": [1, 3, 6, 9, 10, 11, 12, 15, 16, 17, 18], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 9, 10, 11, 12, 15, 16, 17, 18], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"ExternalReqAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "LogisticsAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 9, 10, 11, 12, 15, 16, 17, 18], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\admin\\officer_challenge.py": {"executed_lines": [1, 2, 4, 7, 8, 9, 17, 18, 25, 31, 40, 42], "summary": {"covered_lines": 12, "num_statements": 15, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [43, 44, 45], "excluded_lines": [], "functions": {"OffChallengeAdmin.formfield_for_foreignkey": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [43, 44, 45], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 7, 8, 9, 17, 18, 25, 31, 40, 42], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"OffChallengeAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [43, 44, 45], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 7, 8, 9, 17, 18, 25, 31, 40, 42], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\forms.py": {"executed_lines": [1, 2, 4, 6, 9, 14, 15, 16, 17, 18, 27, 28, 29, 30, 31, 38, 39, 40], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"BitByteRequestForm.__init__": {"executed_lines": [39, 40], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 6, 9, 14, 15, 16, 17, 18, 27, 28, 29, 30, 31, 38], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"ChallengeRequestForm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ChallengeRequestForm.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "BitByteRequestForm": {"executed_lines": [39, 40], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "BitByteRequestForm.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 6, 9, 14, 15, 16, 17, 18, 27, 28, 29, 30, 31, 38], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\migrations\\0001_squashed_0029_auto_20220210_2239.py": {"executed_lines": [3, 4, 5, 6, 9, 11, 13, 15, 23], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 5, 6, 9, 11, 13, 15, 23], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 5, 6, 9, 11, 13, 15, 23], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\migrations\\0002_auto_20220228_1255.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\migrations\\0003_auto_20220330_0201.py": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\migrations\\0004_auto_20220404_1936.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\migrations\\0005_auto_20220421_0027.py": {"executed_lines": [3, 4, 7, 9, 14], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 7, 9, 14], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 7, 9, 14], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\migrations\\0006_auto_20220503_1505.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\migrations\\0007_basereq_eventreq_externalreq_formreq_logistics_miscreq.py": {"executed_lines": [3, 4, 5, 8, 10, 17], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 5, 8, 10, 17], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 5, 8, 10, 17], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\migrations\\0008_auto_20220503_1636.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\migrations\\0009_auto_20220503_1641.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\migrations\\0010_auto_20220503_1657.py": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\migrations\\0011_remove_offchallenge_csec_confirmed.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\migrations\\0012_auto_20220504_2020.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\migrations\\0013_auto_20220505_1338.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\migrations\\0014_externalreq_due_date.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\migrations\\0015_logistics_mandatory_events.py": {"executed_lines": [3, 6, 8, 13], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 13], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 13], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\migrations\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\models\\__init__.py": {"executed_lines": [1, 2, 3, 4], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 3, 4], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\models\\announcement.py": {"executed_lines": [1, 2, 4, 7, 8, 14, 15, 17, 18, 20, 21], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"Announcement.__str__": {"executed_lines": [21], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 7, 8, 14, 15, 17, 18, 20], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Announcement": {"executed_lines": [21], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 7, 8, 14, 15, 17, 18, 20], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\models\\bit_byte_activity.py": {"executed_lines": [1, 3, 6, 7, 13, 14, 16, 18, 19, 22, 25, 27, 28, 32, 33, 34, 36, 37, 38], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"BitByteActivity.__str__": {"executed_lines": [28], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "BitByteActivity.is_confirmed": {"executed_lines": [34], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "BitByteActivity.is_rejected": {"executed_lines": [38], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 13, 14, 16, 18, 19, 22, 25, 27, 32, 33, 36, 37], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"BitByteActivity": {"executed_lines": [28, 34, 38], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "BitByteActivity.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 13, 14, 16, 18, 19, 22, 25, 27, 32, 33, 36, 37], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\models\\constants.py": {"executed_lines": [1, 2], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\models\\logistics.py": {"executed_lines": [1, 3, 4, 5, 7, 8, 10, 11, 14, 15, 18, 19, 20, 22, 23, 26, 27, 28, 31, 32, 34, 35, 36, 37, 40, 41, 43, 44, 45, 46, 48, 49, 50, 53, 54, 55, 57, 58, 59, 61, 62, 64, 65, 66, 68, 70, 71, 73, 74, 77, 81, 85, 86, 87, 90, 93, 96, 97, 99, 100, 101, 102, 104, 107, 108, 109, 115, 116, 117, 119, 123, 127], "summary": {"covered_lines": 72, "num_statements": 72, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"EventReq.__str__": {"executed_lines": [23], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "MiscReq.__str__": {"executed_lines": [35, 36, 37], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FormReq.__str__": {"executed_lines": [44, 45, 46], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FormReq.display": {"executed_lines": [49, 50], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Logistics.populate": {"executed_lines": [74, 77, 81, 85, 86, 87, 90, 93, 96, 97, 99, 100, 101, 102, 104, 107, 108, 109, 115, 116, 117, 119, 123, 127], "summary": {"covered_lines": 24, "num_statements": 24, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 7, 8, 10, 11, 14, 15, 18, 19, 20, 22, 26, 27, 28, 31, 32, 34, 40, 41, 43, 48, 53, 54, 55, 57, 58, 59, 61, 62, 64, 65, 66, 68, 70, 71, 73], "summary": {"covered_lines": 39, "num_statements": 39, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"BaseReq": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EventReq": {"executed_lines": [23], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ExternalReq": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "MiscReq": {"executed_lines": [35, 36, 37], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FormReq": {"executed_lines": [44, 45, 46, 49, 50], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Logistics": {"executed_lines": [74, 77, 81, 85, 86, 87, 90, 93, 96, 97, 99, 100, 101, 102, 104, 107, 108, 109, 115, 116, 117, 119, 123, 127], "summary": {"covered_lines": 24, "num_statements": 24, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Logistics.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 7, 8, 10, 11, 14, 15, 18, 19, 20, 22, 26, 27, 28, 31, 32, 34, 40, 41, 43, 48, 53, 54, 55, 57, 58, 59, 61, 62, 64, 65, 66, 68, 70, 71, 73], "summary": {"covered_lines": 39, "num_statements": 39, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\models\\officer_challenge.py": {"executed_lines": [1, 2, 4, 7, 8, 19, 20, 24, 32, 39, 40, 42, 43, 45, 46, 47, 49, 50, 51, 53, 54], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"OffChallenge.confirmed": {"executed_lines": [47], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "OffChallenge.rejected": {"executed_lines": [51], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "OffChallenge.__str__": {"executed_lines": [54], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 7, 8, 19, 20, 24, 32, 39, 40, 42, 43, 45, 46, 49, 50, 53], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"OffChallenge": {"executed_lines": [47, 51, 54], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "OffChallenge.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 7, 8, 19, 20, 24, 32, 39, 40, 42, 43, 45, 46, 49, 50, 53], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\templatetags\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\templatetags\\app_filters.py": {"executed_lines": [1, 2, 4, 6, 9, 10, 11, 14, 15, 16, 19, 20, 21], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"has_group": {"executed_lines": [11], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "is_link": {"executed_lines": [16], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "zip_filter": {"executed_lines": [21], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 6, 9, 10, 14, 15, 19, 20], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 6, 9, 10, 11, 14, 15, 16, 19, 20, 21], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\urls.py": {"executed_lines": [1, 3, 5, 6], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 5, 6], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 5, 6], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\views\\__init__.py": {"executed_lines": [1, 5, 6, 7, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 5, 6, 7, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 5, 6, 7, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\views\\autocomplete.py": {"executed_lines": [1, 2, 3, 5, 7, 11, 12, 13, 14, 15, 16, 21, 25, 26, 27, 28, 29, 30, 35], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"OfficerAutocomplete.get_queryset": {"executed_lines": [14, 15, 16, 21], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "UserAutocomplete.get_queryset": {"executed_lines": [28, 29, 30, 35], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 11, 12, 13, 25, 26, 27], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"OfficerAutocomplete": {"executed_lines": [14, 15, 16, 21], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "UserAutocomplete": {"executed_lines": [28, 29, 30, 35], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 11, 12, 13, 25, 26, 27], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\views\\candidate_portal.py": {"executed_lines": [1, 3, 4, 5, 6, 8, 9, 10, 12, 14, 16, 22, 23, 24, 26, 29, 30, 35, 36, 37, 38, 40, 41, 44, 45, 46, 47, 48, 49, 51, 55, 58, 59, 60, 61, 66, 67, 68, 79], "summary": {"covered_lines": 39, "num_statements": 39, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"get_logistics": {"executed_lines": [23, 24, 26], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "user_candidate_portal": {"executed_lines": [30, 35, 36, 37, 38, 40, 41], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "candidate_portal_view_by_username": {"executed_lines": [46, 47, 48, 49, 51, 55], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "candidate_portal": {"executed_lines": [60, 61, 66, 67, 68, 79], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 6, 8, 9, 10, 12, 14, 16, 22, 29, 44, 45, 58, 59], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 4, 5, 6, 8, 9, 10, 12, 14, 16, 22, 23, 24, 26, 29, 30, 35, 36, 37, 38, 40, 41, 44, 45, 46, 47, 48, 49, 51, 55, 58, 59, 60, 61, 66, 67, 68, 79], "summary": {"covered_lines": 39, "num_statements": 39, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\views\\confirm_request.py": {"executed_lines": [1, 3, 4, 5, 7, 9, 10, 13, 14, 15, 16, 18, 19, 20, 22, 25, 26, 27, 28, 30, 31, 32, 34, 37, 38, 39, 42, 43, 44, 45, 46, 48, 49, 52, 53, 55, 56, 58, 59, 60, 61, 65, 68, 69, 72, 74, 77, 78, 79, 82, 83, 84, 85, 87, 88, 91, 92, 93, 94, 98, 101, 102, 103, 106, 108], "summary": {"covered_lines": 65, "num_statements": 80, "percent_covered": 81.25, "percent_covered_display": "81", "missing_lines": 15, "excluded_lines": 0}, "missing_lines": [40, 50, 54, 62, 63, 66, 70, 71, 80, 89, 95, 96, 99, 104, 105], "excluded_lines": [], "functions": {"confirm_challenge": {"executed_lines": [15, 16, 18, 19, 20, 22], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "confirm_bitbyte": {"executed_lines": [27, 28, 30, 31, 32, 34], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "checkoff_req": {"executed_lines": [39, 42, 43, 44, 45, 46, 48, 49, 52, 53, 55, 56, 58, 59, 60, 61, 65, 68, 69, 72, 74], "summary": {"covered_lines": 21, "num_statements": 29, "percent_covered": 72.41379310344827, "percent_covered_display": "72", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [40, 50, 54, 62, 63, 66, 70, 71], "excluded_lines": []}, "checkoff_event": {"executed_lines": [79, 82, 83, 84, 85, 87, 88, 91, 92, 93, 94, 98, 101, 102, 103, 106, 108], "summary": {"covered_lines": 17, "num_statements": 24, "percent_covered": 70.83333333333333, "percent_covered_display": "71", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [80, 89, 95, 96, 99, 104, 105], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 7, 9, 10, 13, 14, 25, 26, 37, 38, 77, 78], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 4, 5, 7, 9, 10, 13, 14, 15, 16, 18, 19, 20, 22, 25, 26, 27, 28, 30, 31, 32, 34, 37, 38, 39, 42, 43, 44, 45, 46, 48, 49, 52, 53, 55, 56, 58, 59, 60, 61, 65, 68, 69, 72, 74, 77, 78, 79, 82, 83, 84, 85, 87, 88, 91, 92, 93, 94, 98, 101, 102, 103, 106, 108], "summary": {"covered_lines": 65, "num_statements": 80, "percent_covered": 81.25, "percent_covered_display": "81", "missing_lines": 15, "excluded_lines": 0}, "missing_lines": [40, 50, 54, 62, 63, 66, 70, 71, 80, 89, 95, 96, 99, 104, 105], "excluded_lines": []}}}, "hknweb\\candidate\\views\\form_request.py": {"executed_lines": [1, 2, 3, 5, 7, 10, 11, 12, 14, 15, 16, 18, 19, 20, 23, 24, 25, 28, 29, 30, 31, 32, 33, 35], "summary": {"covered_lines": 24, "num_statements": 24, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"request_form": {"executed_lines": [11, 12, 14, 15, 16, 18, 19, 20], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "request_bitbyte": {"executed_lines": [25], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "request_challenge": {"executed_lines": [30, 35], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "request_challenge.form_wrapper": {"executed_lines": [31, 32, 33], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 7, 10, 23, 24, 28, 29], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 7, 10, 11, 12, 14, 15, 16, 18, 19, 20, 23, 24, 25, 28, 29, 30, 31, 32, 33, 35], "summary": {"covered_lines": 24, "num_statements": 24, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\candidate\\views\\officer_portal.py": {"executed_lines": [1, 2, 4, 5, 6, 8, 9, 11, 12, 15, 16, 17, 28, 29, 30, 32, 34, 35, 36, 37, 39, 40, 41, 42, 44, 45, 46, 51, 58, 59, 60, 61, 62, 65, 68, 75, 79, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 95, 106, 114, 117, 123, 124, 126, 130, 131, 132, 133, 144, 145, 148, 151, 152, 153, 154, 155, 165, 168, 169, 170, 171, 179, 181, 182, 183, 192, 194, 195, 196, 204, 206, 207, 208, 214, 215, 216, 218, 220, 221, 224, 233, 234, 235, 237, 238, 239, 240, 241, 242, 243, 245, 247, 248, 249, 250, 251, 252, 253, 256, 258, 259, 260, 262, 263, 264], "summary": {"covered_lines": 116, "num_statements": 117, "percent_covered": 99.14529914529915, "percent_covered_display": "99", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [255], "excluded_lines": [], "functions": {"officer_portal": {"executed_lines": [17, 28, 29, 30, 32, 34, 35, 36, 37, 39, 40, 41, 42, 44, 45, 46, 51, 58, 59, 60, 61, 62, 65, 68, 75, 79, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 95, 106, 114], "summary": {"covered_lines": 40, "num_statements": 40, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "get_checkoff_info": {"executed_lines": [123, 124, 126, 130, 131, 132, 133, 144, 145], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "get_mandatory_events_info": {"executed_lines": [151, 152, 153, 154, 155, 165], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Bulk.challenges": {"executed_lines": [171, 179], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Bulk.hangouts": {"executed_lines": [183, 192], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Bulk.bitbytes": {"executed_lines": [196, 204], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Bulk.mandatory_events": {"executed_lines": [208, 214, 215, 216, 218], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Bulk.event_reqs": {"executed_lines": [224, 233, 234, 235, 237, 238, 239, 240, 241, 242, 243, 245], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Bulk._reqs_helper": {"executed_lines": [249, 250, 251, 252, 253, 256], "summary": {"covered_lines": 6, "num_statements": 7, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [255], "excluded_lines": []}, "Bulk.form_reqs": {"executed_lines": [260], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Bulk.misc_reqs": {"executed_lines": [264], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 6, 8, 9, 11, 12, 15, 16, 117, 148, 168, 169, 170, 181, 182, 194, 195, 206, 207, 220, 221, 247, 248, 258, 259, 262, 263], "summary": {"covered_lines": 30, "num_statements": 30, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Bulk": {"executed_lines": [171, 179, 183, 192, 196, 204, 208, 214, 215, 216, 218, 224, 233, 234, 235, 237, 238, 239, 240, 241, 242, 243, 245, 249, 250, 251, 252, 253, 256, 260, 264], "summary": {"covered_lines": 31, "num_statements": 32, "percent_covered": 96.875, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [255], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 6, 8, 9, 11, 12, 15, 16, 17, 28, 29, 30, 32, 34, 35, 36, 37, 39, 40, 41, 42, 44, 45, 46, 51, 58, 59, 60, 61, 62, 65, 68, 75, 79, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 95, 106, 114, 117, 123, 124, 126, 130, 131, 132, 133, 144, 145, 148, 151, 152, 153, 154, 155, 165, 168, 169, 170, 181, 182, 194, 195, 206, 207, 220, 221, 247, 248, 258, 259, 262, 263], "summary": {"covered_lines": 85, "num_statements": 85, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\course_surveys\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\course_surveys\\admin.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\course_surveys\\constants.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 51, 62, 63, 64, 67, 68, 69, 70, 71, 72, 80, 81, 82, 83, 87, 90, 91, 92, 93, 94, 97, 98, 104, 110, 116], "summary": {"covered_lines": 73, "num_statements": 73, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 51, 62, 63, 64, 67, 68, 69, 70, 71, 72, 80, 81, 82, 83, 87, 90, 91, 92, 93, 94, 97, 98, 104, 110, 116], "summary": {"covered_lines": 73, "num_statements": 73, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Attr": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CAS": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "COLORS": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "UploadStages": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "UploadStageInfo": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 51, 62, 63, 64, 67, 68, 69, 70, 71, 72, 80, 81, 82, 83, 87, 90, 91, 92, 93, 94, 97, 98, 104, 110, 116], "summary": {"covered_lines": 73, "num_statements": 73, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\course_surveys\\migrations\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\course_surveys\\models.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\course_surveys\\urls.py": {"executed_lines": [1, 3, 6, 7], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 6, 7], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\course_surveys\\views\\__init__.py": {"executed_lines": [1, 2, 4, 5, 6], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 4, 5, 6], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 5, 6], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\course_surveys\\views\\index.py": {"executed_lines": [1, 3, 4, 6, 7, 8, 10, 20, 21, 22, 24, 25, 28, 29, 32, 35, 36, 39, 40, 41, 44, 45, 48, 51, 56, 58, 63, 66, 79, 83, 84, 85, 87, 88, 89, 105, 106, 109, 110, 112, 113, 121, 122, 123, 126, 127, 129, 134, 143, 147, 148, 151, 152, 154, 155, 159, 160, 161, 163, 168, 173, 180, 184, 185, 186, 187, 189, 191, 192, 193, 200, 201, 202, 203, 204, 205, 206, 207, 210, 217, 219, 220, 221, 222, 224, 226, 230, 233, 236, 238, 240, 242, 248, 252, 253, 254, 255, 283, 284, 285, 291, 292, 293, 294, 296, 307, 308, 350, 351], "summary": {"covered_lines": 102, "num_statements": 127, "percent_covered": 80.31496062992126, "percent_covered_display": "80", "missing_lines": 25, "excluded_lines": 25}, "missing_lines": [208, 234, 239, 257, 259, 263, 265, 266, 267, 269, 274, 279, 309, 311, 312, 316, 317, 318, 319, 320, 324, 329, 331, 340, 352], "excluded_lines": [79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103], "functions": {"IndexView.get_context_data": {"executed_lines": [25, 28, 29, 32, 35, 36, 39, 40, 41, 44, 45, 48, 51, 56, 58, 63, 66], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "IndexView._validate_cas": {"executed_lines": [83, 84, 85, 87, 88, 89], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 24}, "missing_lines": [], "excluded_lines": [80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103]}, "IndexView._get_courses": {"executed_lines": [109, 110, 112, 113, 121, 122, 123, 126, 127, 129, 134, 143], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "IndexView._get_instructors": {"executed_lines": [151, 152, 154, 155, 159, 160, 161, 163, 168, 173, 180], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "IndexView._get_start_end_indices": {"executed_lines": [186, 187, 189], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "IndexView._get_pagination_info": {"executed_lines": [193], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "IndexView._get_pages": {"executed_lines": [202, 203, 204, 205, 206, 207, 210, 217], "summary": {"covered_lines": 8, "num_statements": 9, "percent_covered": 88.88888888888889, "percent_covered_display": "89", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [208], "excluded_lines": []}, "IndexView._get_course": {"executed_lines": [221, 222, 224, 226, 230, 233, 236, 238, 240, 242, 248], "summary": {"covered_lines": 11, "num_statements": 13, "percent_covered": 84.61538461538461, "percent_covered_display": "85", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [234, 239], "excluded_lines": []}, "IndexView._get_instructor": {"executed_lines": [254, 255], "summary": {"covered_lines": 2, "num_statements": 11, "percent_covered": 18.181818181818183, "percent_covered_display": "18", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [257, 259, 263, 265, 266, 267, 269, 274, 279], "excluded_lines": []}, "IndexView._get_survey_context": {"executed_lines": [285], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "IndexView._get_survey": {"executed_lines": [293, 294, 296, 307, 308], "summary": {"covered_lines": 5, "num_statements": 17, "percent_covered": 29.41176470588235, "percent_covered_display": "29", "missing_lines": 12, "excluded_lines": 0}, "missing_lines": [309, 311, 312, 316, 317, 318, 319, 320, 324, 329, 331, 340], "excluded_lines": []}, "IndexView._interpolate": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [352], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 6, 7, 8, 10, 20, 21, 22, 24, 79, 105, 106, 147, 148, 184, 185, 191, 192, 200, 201, 219, 220, 252, 253, 283, 284, 291, 292, 350, 351], "summary": {"covered_lines": 31, "num_statements": 31, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [79]}}, "classes": {"IndexView": {"executed_lines": [25, 28, 29, 32, 35, 36, 39, 40, 41, 44, 45, 48, 51, 56, 58, 63, 66, 83, 84, 85, 87, 88, 89, 109, 110, 112, 113, 121, 122, 123, 126, 127, 129, 134, 143, 151, 152, 154, 155, 159, 160, 161, 163, 168, 173, 180, 186, 187, 189, 193, 202, 203, 204, 205, 206, 207, 210, 217, 221, 222, 224, 226, 230, 233, 236, 238, 240, 242, 248, 254, 255, 285, 293, 294, 296, 307, 308], "summary": {"covered_lines": 71, "num_statements": 96, "percent_covered": 73.95833333333333, "percent_covered_display": "74", "missing_lines": 25, "excluded_lines": 24}, "missing_lines": [208, 234, 239, 257, 259, 263, 265, 266, 267, 269, 274, 279, 309, 311, 312, 316, 317, 318, 319, 320, 324, 329, 331, 340, 352], "excluded_lines": [80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103]}, "": {"executed_lines": [1, 3, 4, 6, 7, 8, 10, 20, 21, 22, 24, 79, 105, 106, 147, 148, 184, 185, 191, 192, 200, 201, 219, 220, 252, 253, 283, 284, 291, 292, 350, 351], "summary": {"covered_lines": 31, "num_statements": 31, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [79]}}}, "hknweb\\course_surveys\\views\\merge_instructors.py": {"executed_lines": [1, 3, 4, 6, 7, 10, 11, 12, 15, 16, 17, 18, 21, 22, 23, 25, 26, 27, 29, 31], "summary": {"covered_lines": 20, "num_statements": 22, "percent_covered": 90.9090909090909, "percent_covered_display": "91", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [13, 19], "excluded_lines": [], "functions": {"merge_instructors": {"executed_lines": [12, 15, 16, 17, 18, 21, 22, 23, 25, 26, 27, 29, 31], "summary": {"covered_lines": 13, "num_statements": 15, "percent_covered": 86.66666666666667, "percent_covered_display": "87", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [13, 19], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 6, 7, 10, 11], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 4, 6, 7, 10, 11, 12, 15, 16, 17, 18, 21, 22, 23, 25, 26, 27, 29, 31], "summary": {"covered_lines": 20, "num_statements": 22, "percent_covered": 90.9090909090909, "percent_covered_display": "91", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [13, 19], "excluded_lines": []}}}, "hknweb\\course_surveys\\views\\merge_questions.py": {"executed_lines": [1, 3, 4, 6, 7, 10, 11, 12, 15, 16, 17, 18, 21, 22, 23, 25, 26, 27, 29, 31], "summary": {"covered_lines": 20, "num_statements": 22, "percent_covered": 90.9090909090909, "percent_covered_display": "91", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [13, 19], "excluded_lines": [], "functions": {"merge_questions": {"executed_lines": [12, 15, 16, 17, 18, 21, 22, 23, 25, 26, 27, 29, 31], "summary": {"covered_lines": 13, "num_statements": 15, "percent_covered": 86.66666666666667, "percent_covered_display": "87", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [13, 19], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 6, 7, 10, 11], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 4, 6, 7, 10, 11, 12, 15, 16, 17, 18, 21, 22, 23, 25, 26, 27, 29, 31], "summary": {"covered_lines": 20, "num_statements": 22, "percent_covered": 90.9090909090909, "percent_covered_display": "91", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [13, 19], "excluded_lines": []}}}, "hknweb\\course_surveys\\views\\upload.py": {"executed_lines": [1, 4, 6, 7, 15, 16, 17, 19, 22, 42, 45, 64, 85], "summary": {"covered_lines": 13, "num_statements": 36, "percent_covered": 36.111111111111114, "percent_covered_display": "36", "missing_lines": 23, "excluded_lines": 0}, "missing_lines": [20, 23, 25, 26, 27, 28, 29, 31, 37, 38, 40, 43, 46, 47, 48, 52, 59, 65, 66, 67, 71, 80, 86], "excluded_lines": [], "functions": {"UploadView.post": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [20], "excluded_lines": []}, "UploadView.get_context_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [23, 25, 26, 27, 28, 29, 31, 37, 38, 40], "excluded_lines": []}, "UploadView._present_upload": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [43], "excluded_lines": []}, "UploadView._present_questions": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [46, 47, 48, 52, 59], "excluded_lines": []}, "UploadView._present_instructors": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [65, 66, 67, 71, 80], "excluded_lines": []}, "UploadView._finished": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [86], "excluded_lines": []}, "": {"executed_lines": [1, 4, 6, 7, 15, 16, 17, 19, 22, 42, 45, 64, 85], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"UploadView": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 23, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 23, "excluded_lines": 0}, "missing_lines": [20, 23, 25, 26, 27, 28, 29, 31, 37, 38, 40, 43, 46, 47, 48, 52, 59, 65, 66, 67, 71, 80, 86], "excluded_lines": []}, "": {"executed_lines": [1, 4, 6, 7, 15, 16, 17, 19, 22, 42, 45, 64, 85], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\course_surveys\\views\\upload_csv.py": {"executed_lines": [1, 3, 4, 5, 7, 9, 12, 13], "summary": {"covered_lines": 8, "num_statements": 20, "percent_covered": 40.0, "percent_covered_display": "40", "missing_lines": 12, "excluded_lines": 0}, "missing_lines": [14, 15, 16, 18, 20, 21, 22, 23, 24, 25, 29, 32], "excluded_lines": [], "functions": {"upload_csv": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 12, "excluded_lines": 0}, "missing_lines": [14, 15, 16, 18, 20, 21, 22, 23, 24, 25, 29, 32], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 7, 9, 12, 13], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 4, 5, 7, 9, 12, 13], "summary": {"covered_lines": 8, "num_statements": 20, "percent_covered": 40.0, "percent_covered_display": "40", "missing_lines": 12, "excluded_lines": 0}, "missing_lines": [14, 15, 16, 18, 20, 21, 22, 23, 24, 25, 29, 32], "excluded_lines": []}}}, "hknweb\\coursesemester\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\coursesemester\\admin.py": {"executed_lines": [1, 2, 4, 5, 6, 7], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 4, 5, 6, 7], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 5, 6, 7], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\coursesemester\\migrations\\0001_initial.py": {"executed_lines": [3, 4, 7, 9, 11, 14], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 7, 9, 11, 14], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 7, 9, 11, 14], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\coursesemester\\migrations\\0002_auto_20210202_0225.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\coursesemester\\migrations\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\coursesemester\\models.py": {"executed_lines": [1, 5, 6, 9, 13, 17, 18, 19, 21, 25, 26, 27, 28, 30, 34, 35, 36, 38, 39, 43, 44], "summary": {"covered_lines": 21, "num_statements": 33, "percent_covered": 63.63636363636363, "percent_covered_display": "64", "missing_lines": 12, "excluded_lines": 0}, "missing_lines": [14, 22, 31, 45, 46, 47, 48, 49, 52, 53, 54, 57], "excluded_lines": [], "functions": {"Department.__str__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [14], "excluded_lines": []}, "Instructor.__str__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [22], "excluded_lines": []}, "Course.__str__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [31], "excluded_lines": []}, "Semester.__str__": {"executed_lines": [39], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Semester.get_current_semester": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [45, 46, 47, 48, 49, 52, 53, 54, 57], "excluded_lines": []}, "": {"executed_lines": [1, 5, 6, 9, 13, 17, 18, 19, 21, 25, 26, 27, 28, 30, 34, 35, 36, 38, 43, 44], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Department": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [14], "excluded_lines": []}, "Instructor": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [22], "excluded_lines": []}, "Course": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [31], "excluded_lines": []}, "Semester": {"executed_lines": [39], "summary": {"covered_lines": 1, "num_statements": 10, "percent_covered": 10.0, "percent_covered_display": "10", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [45, 46, 47, 48, 49, 52, 53, 54, 57], "excluded_lines": []}, "": {"executed_lines": [1, 5, 6, 9, 13, 17, 18, 19, 21, 25, 26, 27, 28, 30, 34, 35, 36, 38, 43, 44], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\coursesemester\\views.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\admin\\__init__.py": {"executed_lines": [1, 3, 4, 5, 6, 10, 11, 12, 14], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 4, 5, 6, 10, 11, 12, 14], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 4, 5, 6, 10, 11, 12, 14], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\admin\\attendance\\__init__.py": {"executed_lines": [1, 2], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\admin\\attendance\\attendance_form.py": {"executed_lines": [1, 3, 6, 7, 8, 9], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7, 8, 9], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"AttendanceFormAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 8, 9], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\admin\\attendance\\attendance_response.py": {"executed_lines": [1, 3, 6, 7, 8, 9], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7, 8, 9], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"AttendanceResponseAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 8, 9], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\admin\\event.py": {"executed_lines": [1, 3, 4, 5, 8, 9, 10, 25, 26, 35, 43, 49, 50, 52], "summary": {"covered_lines": 14, "num_statements": 21, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [53, 54, 55, 57, 58, 59, 63], "excluded_lines": [], "functions": {"EventAdmin.delete_queryset": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [53, 54, 55, 57, 58, 59, 63], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 8, 9, 10, 25, 26, 35, 43, 49, 50, 52], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"EventAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [53, 54, 55, 57, 58, 59, 63], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 8, 9, 10, 25, 26, 35, 43, 49, 50, 52], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\admin\\event_type.py": {"executed_lines": [1, 3, 6, 7, 8, 9], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7, 8, 9], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"EventTypeAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 8, 9], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\admin\\google_calendar\\__init__.py": {"executed_lines": [1, 4], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 4], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 4], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\admin\\google_calendar\\access_level_mapping.py": {"executed_lines": [1, 3, 6, 7, 8, 9], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7, 8, 9], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"GCalAccessLevelMappingAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 8, 9], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\admin\\google_calendar\\credentials.py": {"executed_lines": [1, 2, 4, 6, 7, 13, 14, 15, 18, 19, 20, 22, 24, 28, 29, 55], "summary": {"covered_lines": 16, "num_statements": 32, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 16, "excluded_lines": 0}, "missing_lines": [25, 26, 31, 32, 35, 37, 38, 39, 41, 43, 47, 48, 49, 51, 52, 53], "excluded_lines": [], "functions": {"GoogleCalendarCredentialsAdmin.provision_calendar": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [25, 26], "excluded_lines": []}, "GoogleCalendarCredentialsAdmin._provision_calendar": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 14, "excluded_lines": 0}, "missing_lines": [31, 32, 35, 37, 38, 39, 41, 43, 47, 48, 49, 51, 52, 53], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 6, 7, 13, 14, 15, 18, 19, 20, 22, 24, 28, 29, 55], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"GoogleCalendarCredentialsAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 16, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 16, "excluded_lines": 0}, "missing_lines": [25, 26, 31, 32, 35, 37, 38, 39, 41, 43, 47, 48, 49, 51, 52, 53], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 6, 7, 13, 14, 15, 18, 19, 20, 22, 24, 28, 29, 55], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\admin\\ical_view.py": {"executed_lines": [1, 3, 6, 7, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"ICalViewAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\admin\\rsvp.py": {"executed_lines": [1, 2, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 21, 22, 24, 26, 29, 32, 34, 37, 39, 42, 44], "summary": {"covered_lines": 23, "num_statements": 31, "percent_covered": 74.19354838709677, "percent_covered_display": "74", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [27, 30, 35, 40, 45, 46, 47, 52], "excluded_lines": [], "functions": {"RsvpAdmin.full_name": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [27], "excluded_lines": []}, "RsvpAdmin.mark_confirmed": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [30], "excluded_lines": []}, "RsvpAdmin.mark_unconfirmed": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [35], "excluded_lines": []}, "RsvpAdmin.cute_animal": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [40], "excluded_lines": []}, "RsvpAdmin.delete_queryset": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [45, 46, 47, 52], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 21, 22, 24, 26, 29, 32, 34, 37, 39, 42, 44], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"RsvpAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [27, 30, 35, 40, 45, 46, 47, 52], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 21, 22, 24, 26, 29, 32, 34, 37, 39, 42, 44], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\constants.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 21, 23], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 21, 23], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"ATTR": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 21, 23], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\forms\\__init__.py": {"executed_lines": [1, 2, 3], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 3], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\forms\\attendance\\__init__.py": {"executed_lines": [1, 2], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\forms\\attendance\\create_response.py": {"executed_lines": [1, 3, 6, 7, 8, 10, 11, 12, 14, 18], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7, 8, 10, 11, 12, 14, 18], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"AttendanceResponseForm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "AttendanceResponseForm.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 8, 10, 11, 12, 14, 18], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\forms\\attendance\\manage_form.py": {"executed_lines": [1, 3, 6, 7, 9, 10, 11, 13, 17], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7, 9, 10, 11, 13, 17], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"AttendanceFormForm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "AttendanceFormForm.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 9, 10, 11, 13, 17], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\forms\\event\\__init__.py": {"executed_lines": [1, 2], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\forms\\event\\create.py": {"executed_lines": [1, 3, 4, 5, 8, 9, 10, 13, 16, 22, 29, 30, 31, 43, 47], "summary": {"covered_lines": 15, "num_statements": 23, "percent_covered": 65.21739130434783, "percent_covered_display": "65", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [48, 49, 50, 51, 52, 53, 57, 58], "excluded_lines": [], "functions": {"EventForm.clean": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [48, 49, 50, 51, 52, 53, 57, 58], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 8, 9, 10, 13, 16, 22, 29, 30, 31, 43, 47], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"EventForm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [48, 49, 50, 51, 52, 53, 57, 58], "excluded_lines": []}, "EventForm.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 8, 9, 10, 13, 16, 22, 29, 30, 31, 43, 47], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\forms\\event\\update.py": {"executed_lines": [1, 3, 4, 7, 8, 9, 10, 12, 13, 14, 26, 30], "summary": {"covered_lines": 12, "num_statements": 17, "percent_covered": 70.58823529411765, "percent_covered_display": "71", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [31, 32, 33, 34, 35], "excluded_lines": [], "functions": {"EventUpdateForm.clean": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [31, 32, 33, 34, 35], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 7, 8, 9, 10, 12, 13, 14, 26, 30], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"EventUpdateForm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [31, 32, 33, 34, 35], "excluded_lines": []}, "EventUpdateForm.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 7, 8, 9, 10, 12, 13, 14, 26, 30], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\forms\\event_photo.py": {"executed_lines": [1, 3, 6, 7, 8, 9], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7, 8, 9], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"EventPhotoForm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EventPhotoForm.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 8, 9], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\google_calendar_utils.py": {"executed_lines": [1, 3, 4, 5, 7, 10, 11, 12, 15, 27, 28, 29, 30, 31, 33, 36, 43, 50, 52, 53, 55, 56, 58, 59, 61, 62, 67, 68, 73, 76, 77, 109, 110, 129, 130, 146, 147, 170, 171, 172, 173, 175, 176, 179, 180], "summary": {"covered_lines": 33, "num_statements": 33, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 119}, "missing_lines": [], "excluded_lines": [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 36, 37, 38, 39, 40, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196], "functions": {"get_credentials": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 8}, "missing_lines": [], "excluded_lines": [17, 18, 19, 20, 21, 22, 23, 24]}, "check_credentials_wrapper": {"executed_lines": [28, 33], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "check_credentials_wrapper.new_fn": {"executed_lines": [29, 30, 31], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "get_service": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 4}, "missing_lines": [], "excluded_lines": [37, 38, 39, 40]}, "create_event_resource": {"executed_lines": [50, 52, 53, 55, 56, 58, 59, 61, 62, 67, 68, 73], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "create_event": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 22}, "missing_lines": [], "excluded_lines": [85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106]}, "update_event": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 14}, "missing_lines": [], "excluded_lines": [113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126]}, "delete_event": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 11}, "missing_lines": [], "excluded_lines": [133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143]}, "clear_calendar": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 20}, "missing_lines": [], "excluded_lines": [148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167]}, "get_calendar_link": {"executed_lines": [171, 172, 173, 175, 176], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "create_personal_calendar": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 16}, "missing_lines": [], "excluded_lines": [181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196]}, "": {"executed_lines": [1, 3, 4, 5, 7, 10, 11, 12, 15, 27, 36, 43, 76, 77, 109, 110, 129, 130, 146, 147, 170, 179, 180], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 24}, "missing_lines": [], "excluded_lines": [15, 16, 36, 76, 77, 78, 79, 80, 81, 82, 83, 84, 109, 110, 111, 112, 129, 130, 131, 132, 146, 147, 179, 180]}}, "classes": {"": {"executed_lines": [1, 3, 4, 5, 7, 10, 11, 12, 15, 27, 28, 29, 30, 31, 33, 36, 43, 50, 52, 53, 55, 56, 58, 59, 61, 62, 67, 68, 73, 76, 77, 109, 110, 129, 130, 146, 147, 170, 171, 172, 173, 175, 176, 179, 180], "summary": {"covered_lines": 33, "num_statements": 33, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 119}, "missing_lines": [], "excluded_lines": [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 36, 37, 38, 39, 40, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196]}}}, "hknweb\\events\\migrations\\0001_squashed_0017_rsvp_google_calendar_event_id.py": {"executed_lines": [3, 4, 5, 6, 7, 8, 11, 13, 15, 17, 22], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 5, 6, 7, 8, 11, 13, 15, 17, 22], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 5, 6, 7, 8, 11, 13, 15, 17, 22], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\migrations\\0002_auto_20220228_1257.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\migrations\\0003_gcalaccesslevelmapping.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\migrations\\0004_auto_20220303_2140.py": {"executed_lines": [3, 4, 7, 9, 14], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 7, 9, 14], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 7, 9, 14], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\migrations\\0005_attendanceform.py": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\migrations\\0006_attendanceresponse.py": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\migrations\\0007_attendanceresponse_feedback.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\migrations\\0008_attendanceform_description.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\migrations\\0009_auto_20220506_1809.py": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\migrations\\0010_event_photographer.py": {"executed_lines": [3, 4, 5, 8, 10, 15], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 5, 8, 10, 15], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 5, 8, 10, 15], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\migrations\\0011_eventphoto.py": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\migrations\\0012_icalview.py": {"executed_lines": [3, 4, 5, 6, 9, 10, 15], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 5, 6, 9, 10, 15], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 5, 6, 9, 10, 15], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\migrations\\0013_alter_icalview_options_alter_event_description.py": {"executed_lines": [3, 4, 7, 8, 12], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 7, 8, 12], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 7, 8, 12], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\migrations\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\models\\__init__.py": {"executed_lines": [1, 2, 3, 4, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 3, 4, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 8, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\models\\attendance\\__init__.py": {"executed_lines": [1, 2], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\models\\attendance\\attendance_form.py": {"executed_lines": [1, 3, 6, 7, 8, 9, 11, 19], "summary": {"covered_lines": 8, "num_statements": 14, "percent_covered": 57.142857142857146, "percent_covered_display": "57", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [12, 13, 14, 16, 17, 20], "excluded_lines": [], "functions": {"AttendanceForm.__repr__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [12, 13, 14, 16, 17], "excluded_lines": []}, "AttendanceForm.__str__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [20], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 8, 9, 11, 19], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"AttendanceForm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [12, 13, 14, 16, 17, 20], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 8, 9, 11, 19], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\models\\attendance\\attendance_response.py": {"executed_lines": [1, 3, 4, 7, 8, 9, 10, 12, 15, 18], "summary": {"covered_lines": 10, "num_statements": 15, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [13, 16, 19, 20, 22], "excluded_lines": [], "functions": {"AttendanceResponse.__repr__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [13], "excluded_lines": []}, "AttendanceResponse.__str__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [16], "excluded_lines": []}, "AttendanceResponse.save": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [19, 20, 22], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 7, 8, 9, 10, 12, 15, 18], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"AttendanceResponse": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [13, 16, 19, 20, 22], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 7, 8, 9, 10, 12, 15, 18], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\models\\constants.py": {"executed_lines": [1], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\models\\event.py": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, 26, 27, 28, 29, 37, 38, 42, 44, 67, 68, 70, 71, 73, 74, 76, 77, 79, 80, 81, 82, 84, 85, 86, 87, 94, 96, 97, 99, 100, 101, 102, 142, 144], "summary": {"covered_lines": 52, "num_statements": 81, "percent_covered": 64.19753086419753, "percent_covered_display": "64", "missing_lines": 29, "excluded_lines": 0}, "missing_lines": [45, 46, 47, 48, 49, 50, 51, 52, 54, 55, 56, 57, 58, 60, 61, 62, 63, 65, 111, 112, 116, 117, 121, 130, 139, 140, 145, 146, 148], "excluded_lines": [], "functions": {"Event.semester": {"executed_lines": [42], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Event.to_ical_obj": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 14, "excluded_lines": 0}, "missing_lines": [45, 46, 47, 48, 49, 50, 51, 52, 54, 60, 61, 62, 63, 65], "excluded_lines": []}, "Event.to_ical_obj.make_attendee": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [55, 56, 57, 58], "excluded_lines": []}, "Event.get_absolute_url": {"executed_lines": [68], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Event.__repr__": {"executed_lines": [71], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Event.__str__": {"executed_lines": [74], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Event.admitted_set": {"executed_lines": [77], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Event.waitlist_set": {"executed_lines": [80, 81, 82], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Event.on_waitlist": {"executed_lines": [85, 86, 87], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Event.newly_off_waitlist_rsvps": {"executed_lines": [96, 97], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Event.save": {"executed_lines": [100, 101, 102, 142], "summary": {"covered_lines": 4, "num_statements": 12, "percent_covered": 33.333333333333336, "percent_covered_display": "33", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [111, 112, 116, 117, 121, 130, 139, 140], "excluded_lines": []}, "Event.delete": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [145, 146, 148], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, 26, 27, 28, 29, 37, 38, 44, 67, 70, 73, 76, 79, 84, 94, 99, 144], "summary": {"covered_lines": 35, "num_statements": 35, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Event": {"executed_lines": [42, 68, 71, 74, 77, 80, 81, 82, 85, 86, 87, 96, 97, 100, 101, 102, 142], "summary": {"covered_lines": 17, "num_statements": 46, "percent_covered": 36.95652173913044, "percent_covered_display": "37", "missing_lines": 29, "excluded_lines": 0}, "missing_lines": [45, 46, 47, 48, 49, 50, 51, 52, 54, 55, 56, 57, 58, 60, 61, 62, 63, 65, 111, 112, 116, 117, 121, 130, 139, 140, 145, 146, 148], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, 26, 27, 28, 29, 37, 38, 44, 67, 70, 73, 76, 79, 84, 94, 99, 144], "summary": {"covered_lines": 35, "num_statements": 35, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\models\\event_photo.py": {"executed_lines": [1, 3, 5, 8, 9, 10, 12, 15], "summary": {"covered_lines": 8, "num_statements": 10, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [13, 16], "excluded_lines": [], "functions": {"EventPhoto.__str__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [13], "excluded_lines": []}, "EventPhoto.photo_display_url": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [16], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 8, 9, 10, 12, 15], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"EventPhoto": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [13, 16], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 8, 9, 10, 12, 15], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\models\\event_type.py": {"executed_lines": [1, 4, 5, 7, 9, 10, 12, 13], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"EventType.__repr__": {"executed_lines": [10], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EventType.__str__": {"executed_lines": [13], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 4, 5, 7, 9, 12], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"EventType": {"executed_lines": [10, 13], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 4, 5, 7, 9, 12], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\models\\google_calendar\\__init__.py": {"executed_lines": [1, 4], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 4], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 4], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\models\\google_calendar\\access_level_mapping.py": {"executed_lines": [1, 3, 6, 7, 11, 13, 14, 15, 16, 17], "summary": {"covered_lines": 10, "num_statements": 12, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [19, 20], "excluded_lines": [], "functions": {"GCalAccessLevelMapping.get_calendar_id": {"executed_lines": [15, 16, 17], "summary": {"covered_lines": 3, "num_statements": 5, "percent_covered": 60.0, "percent_covered_display": "60", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [19, 20], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 11, 13, 14], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"GCalAccessLevelMapping": {"executed_lines": [15, 16, 17], "summary": {"covered_lines": 3, "num_statements": 5, "percent_covered": 60.0, "percent_covered_display": "60", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [19, 20], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 11, 13, 14], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\models\\google_calendar\\credentials.py": {"executed_lines": [1, 4, 5, 7, 8], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 4, 5, 7, 8], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"GoogleCalendarCredentials": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "GoogleCalendarCredentials.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 4, 5, 7, 8], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\models\\ical_view.py": {"executed_lines": [1, 2, 3, 5, 6, 7, 8, 10, 11, 14, 15, 16, 18, 19, 20, 21, 23, 24, 27, 40], "summary": {"covered_lines": 20, "num_statements": 39, "percent_covered": 51.282051282051285, "percent_covered_display": "51", "missing_lines": 19, "excluded_lines": 0}, "missing_lines": [25, 28, 29, 30, 31, 33, 34, 35, 37, 38, 51, 53, 54, 55, 56, 60, 61, 62, 63], "excluded_lines": [], "functions": {"ICalView.url": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [25], "excluded_lines": []}, "ICalView.to_ical_obj": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [28, 29, 30, 31, 33, 34, 35, 37, 38], "excluded_lines": []}, "ICalView.dummy_event": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [51, 53, 54, 55, 56, 60, 61, 62, 63], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 6, 7, 8, 10, 11, 14, 15, 16, 18, 19, 20, 21, 23, 24, 27, 40], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"ICalView": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 19, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 19, "excluded_lines": 0}, "missing_lines": [25, 28, 29, 30, 31, 33, 34, 35, 37, 38, 51, 53, 54, 55, 56, 60, 61, 62, 63], "excluded_lines": []}, "ICalView.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 6, 7, 8, 10, 11, 14, 15, 16, 18, 19, 20, 21, 23, 24, 27, 40], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\models\\rsvp.py": {"executed_lines": [1, 2, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 17, 18, 20, 21, 23, 24, 26, 27, 28, 30, 31, 32, 36, 60, 61, 68], "summary": {"covered_lines": 28, "num_statements": 34, "percent_covered": 82.3529411764706, "percent_covered_display": "82", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [38, 39, 48, 58, 62, 63], "excluded_lines": [], "functions": {"Rsvp.__repr__": {"executed_lines": [21], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Rsvp.__str__": {"executed_lines": [24], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Rsvp.has_not_rsvpd": {"executed_lines": [28], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Rsvp.save": {"executed_lines": [31, 32, 36], "summary": {"covered_lines": 3, "num_statements": 7, "percent_covered": 42.857142857142854, "percent_covered_display": "43", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [38, 39, 48, 58], "excluded_lines": []}, "Rsvp.delete": {"executed_lines": [61, 68], "summary": {"covered_lines": 2, "num_statements": 4, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [62, 63], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 17, 18, 20, 23, 26, 27, 30, 60], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Rsvp": {"executed_lines": [21, 24, 28, 31, 32, 36, 61, 68], "summary": {"covered_lines": 8, "num_statements": 14, "percent_covered": 57.142857142857146, "percent_covered_display": "57", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [38, 39, 48, 58, 62, 63], "excluded_lines": []}, "Rsvp.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 17, 18, 20, 23, 26, 27, 30, 60], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\templatetags\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\templatetags\\event_filters.py": {"executed_lines": [1, 2, 3, 4, 5, 7, 10, 11, 12, 15, 16, 17, 19, 20, 22, 25, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43, 46, 47, 48, 49, 50, 52, 53, 56, 57, 58, 59, 60, 61], "summary": {"covered_lines": 41, "num_statements": 41, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"event_name": {"executed_lines": [12], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "military_hour_to_hour": {"executed_lines": [16, 17, 19, 20, 22, 25], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "get_time_string": {"executed_lines": [31, 32, 33, 34], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "get_date_string": {"executed_lines": [38, 39, 40, 41, 42, 43], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "get_event_timerange": {"executed_lines": [47, 48, 49, 50, 52, 53], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "process_event_time": {"executed_lines": [58, 59, 60, 61], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 7, 10, 11, 15, 30, 37, 46, 56, 57], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 7, 10, 11, 12, 15, 16, 17, 19, 20, 22, 25, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43, 46, 47, 48, 49, 50, 52, 53, 56, 57, 58, 59, 60, 61], "summary": {"covered_lines": 41, "num_statements": 41, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\urls.py": {"executed_lines": [1, 3, 5, 7, 14, 22, 29, 42], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 5, 7, 14, 22, 29, 42], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 5, 7, 14, 22, 29, 42], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\utils.py": {"executed_lines": [1, 2, 4, 5, 6, 8, 9, 10, 13, 30, 34, 40, 43, 58, 77, 78, 79, 80, 81, 82, 83, 84, 87, 90, 91, 92, 93, 100, 101, 104, 105, 109], "summary": {"covered_lines": 32, "num_statements": 43, "percent_covered": 74.4186046511628, "percent_covered_display": "74", "missing_lines": 11, "excluded_lines": 0}, "missing_lines": [35, 36, 37, 38, 44, 55, 94, 99, 106, 107, 110], "excluded_lines": [], "functions": {"get_events": {"executed_lines": [30, 34, 40], "summary": {"covered_lines": 3, "num_statements": 7, "percent_covered": 42.857142857142854, "percent_covered_display": "43", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [35, 36, 37, 38], "excluded_lines": []}, "create_event": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [44, 55], "excluded_lines": []}, "generate_recurrence_times": {"executed_lines": [77, 78, 79, 80, 81, 82, 83, 84], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "format_url": {"executed_lines": [91, 92, 93, 100, 101], "summary": {"covered_lines": 5, "num_statements": 7, "percent_covered": 71.42857142857143, "percent_covered_display": "71", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [94, 99], "excluded_lines": []}, "SingleThreadWrapper.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [106, 107], "excluded_lines": []}, "SingleThreadWrapper.run": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [110], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 6, 8, 9, 10, 13, 43, 58, 87, 90, 104, 105, 109], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"SingleThreadWrapper": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [106, 107, 110], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 6, 8, 9, 10, 13, 30, 34, 40, 43, 58, 77, 78, 79, 80, 81, 82, 83, 84, 87, 90, 91, 92, 93, 100, 101, 104, 105, 109], "summary": {"covered_lines": 32, "num_statements": 40, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [35, 36, 37, 38, 44, 55, 94, 99], "excluded_lines": []}}}, "hknweb\\events\\views\\__init__.py": {"executed_lines": [1, 7, 12, 18], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 7, 12, 18], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 7, 12, 18], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\views\\aggregate_displays\\__init__.py": {"executed_lines": [1, 2, 3], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 3], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\views\\aggregate_displays\\calendar.py": {"executed_lines": [1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 15, 16, 17, 18, 21, 22, 24, 34, 35, 40, 48, 49, 51, 52, 53, 54, 56, 64, 67, 68, 69, 70, 71, 73, 74, 75, 84, 104, 106, 109], "summary": {"covered_lines": 40, "num_statements": 53, "percent_covered": 75.47169811320755, "percent_covered_display": "75", "missing_lines": 13, "excluded_lines": 0}, "missing_lines": [19, 36, 37, 77, 85, 86, 87, 94, 95, 96, 97, 105, 107], "excluded_lines": [], "functions": {"index": {"executed_lines": [17, 18, 21, 22, 24], "summary": {"covered_lines": 5, "num_statements": 6, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [19], "excluded_lines": []}, "ical": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [36, 37], "excluded_lines": []}, "calendar_helper": {"executed_lines": [48, 49, 51, 52, 53, 54, 56, 64], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "get_calendars": {"executed_lines": [68, 69, 70, 71, 73, 74, 75, 84, 104, 106, 109], "summary": {"covered_lines": 11, "num_statements": 21, "percent_covered": 52.38095238095238, "percent_covered_display": "52", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [77, 85, 86, 87, 94, 95, 96, 97, 105, 107], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 15, 16, 34, 35, 40, 67], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 15, 16, 17, 18, 21, 22, 24, 34, 35, 40, 48, 49, 51, 52, 53, 54, 56, 64, 67, 68, 69, 70, 71, 73, 74, 75, 84, 104, 106, 109], "summary": {"covered_lines": 40, "num_statements": 53, "percent_covered": 75.47169811320755, "percent_covered_display": "75", "missing_lines": 13, "excluded_lines": 0}, "missing_lines": [19, 36, 37, 77, 85, 86, 87, 94, 95, 96, 97, 105, 107], "excluded_lines": []}}}, "hknweb\\events\\views\\aggregate_displays\\leaderboard.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 11, 12], "summary": {"covered_lines": 9, "num_statements": 28, "percent_covered": 32.142857142857146, "percent_covered_display": "32", "missing_lines": 19, "excluded_lines": 0}, "missing_lines": [13, 14, 15, 20, 21, 28, 29, 30, 35, 36, 37, 38, 39, 41, 43, 45, 46, 48, 49], "excluded_lines": [], "functions": {"get_leaderboard": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 19, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 19, "excluded_lines": 0}, "missing_lines": [13, 14, 15, 20, 21, 28, 29, 30, 35, 36, 37, 38, 39, 41, 43, 45, 46, 48, 49], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 11, 12], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 11, 12], "summary": {"covered_lines": 9, "num_statements": 28, "percent_covered": 32.142857142857146, "percent_covered_display": "32", "missing_lines": 19, "excluded_lines": 0}, "missing_lines": [13, 14, 15, 20, 21, 28, 29, 30, 35, 36, 37, 38, 39, 41, 43, 45, 46, 48, 49], "excluded_lines": []}}}, "hknweb\\events\\views\\aggregate_displays\\photos.py": {"executed_lines": [1, 2, 3, 4, 6, 9, 12, 13], "summary": {"covered_lines": 8, "num_statements": 14, "percent_covered": 57.142857142857146, "percent_covered_display": "57", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [14, 18, 20, 21, 23, 24], "excluded_lines": [], "functions": {"photos": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [14, 18, 20, 21, 23, 24], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 9, 12, 13], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 6, 9, 12, 13], "summary": {"covered_lines": 8, "num_statements": 14, "percent_covered": 57.142857142857146, "percent_covered_display": "57", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [14, 18, 20, 21, 23, 24], "excluded_lines": []}}}, "hknweb\\events\\views\\attendance\\__init__.py": {"executed_lines": [1, 2], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\views\\attendance\\manage_attendance.py": {"executed_lines": [1, 2, 4, 5, 6, 9, 10], "summary": {"covered_lines": 7, "num_statements": 22, "percent_covered": 31.818181818181817, "percent_covered_display": "32", "missing_lines": 15, "excluded_lines": 0}, "missing_lines": [11, 12, 13, 15, 16, 17, 19, 20, 21, 22, 24, 25, 29, 31, 35], "excluded_lines": [], "functions": {"manage_attendance": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 15, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 15, "excluded_lines": 0}, "missing_lines": [11, 12, 13, 15, 16, 17, 19, 20, 21, 22, 24, 25, 29, 31, 35], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 6, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 5, 6, 9, 10], "summary": {"covered_lines": 7, "num_statements": 22, "percent_covered": 31.818181818181817, "percent_covered_display": "32", "missing_lines": 15, "excluded_lines": 0}, "missing_lines": [11, 12, 13, 15, 16, 17, 19, 20, 21, 22, 24, 25, 29, 31, 35], "excluded_lines": []}}}, "hknweb\\events\\views\\attendance\\submit_attendance.py": {"executed_lines": [1, 2, 4, 5, 6, 9, 10], "summary": {"covered_lines": 7, "num_statements": 22, "percent_covered": 31.818181818181817, "percent_covered_display": "32", "missing_lines": 15, "excluded_lines": 0}, "missing_lines": [11, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 25, 27, 29, 33], "excluded_lines": [], "functions": {"submit_attendance": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 15, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 15, "excluded_lines": 0}, "missing_lines": [11, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 25, 27, 29, 33], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 6, 9, 10], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 5, 6, 9, 10], "summary": {"covered_lines": 7, "num_statements": 22, "percent_covered": 31.818181818181817, "percent_covered_display": "32", "missing_lines": 15, "excluded_lines": 0}, "missing_lines": [11, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 25, 27, 29, 33], "excluded_lines": []}}}, "hknweb\\events\\views\\event_transactions\\__init__.py": {"executed_lines": [1, 2, 3, 4], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 3, 4], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\views\\event_transactions\\add_event.py": {"executed_lines": [1, 2, 4, 5, 6, 12, 13, 14, 15, 34, 38], "summary": {"covered_lines": 11, "num_statements": 19, "percent_covered": 57.89473684210526, "percent_covered_display": "58", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [16, 17, 19, 26, 27, 29, 30, 32], "excluded_lines": [], "functions": {"add_event": {"executed_lines": [14, 15, 34, 38], "summary": {"covered_lines": 4, "num_statements": 12, "percent_covered": 33.333333333333336, "percent_covered_display": "33", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [16, 17, 19, 26, 27, 29, 30, 32], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 6, 12, 13], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 5, 6, 12, 13, 14, 15, 34, 38], "summary": {"covered_lines": 11, "num_statements": 19, "percent_covered": 57.89473684210526, "percent_covered_display": "58", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [16, 17, 19, 26, 27, 29, 30, 32], "excluded_lines": []}}}, "hknweb\\events\\views\\event_transactions\\delete_event.py": {"executed_lines": [1, 2, 4, 5, 8, 9, 10, 11], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 4, 5, 8, 9, 10, 11], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"EventDeleteView": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 8, 9, 10, 11], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\views\\event_transactions\\show_event.py": {"executed_lines": [1, 2, 3, 4, 6, 8, 9, 14, 15, 16, 17, 20, 21, 22, 25, 26, 27, 28, 29, 31, 41, 42, 44, 45, 46, 48, 49, 50, 59, 63, 64, 65, 67, 70, 74, 82, 92, 93, 94, 95, 101, 110], "summary": {"covered_lines": 42, "num_statements": 52, "percent_covered": 80.76923076923077, "percent_covered_display": "81", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [52, 54, 55, 56, 60, 61, 83, 96, 97, 99], "excluded_lines": [], "functions": {"show_details": {"executed_lines": [22], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "show_details_helper": {"executed_lines": [26, 27, 28, 29, 31, 41, 42, 44, 45, 46, 48, 49, 50, 59, 63, 64, 65, 67, 70, 74, 82, 92, 93, 94, 95, 101, 110], "summary": {"covered_lines": 27, "num_statements": 37, "percent_covered": 72.97297297297297, "percent_covered_display": "73", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [52, 54, 55, 56, 60, 61, 83, 96, 97, 99], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 8, 9, 14, 15, 16, 17, 20, 21, 25], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 6, 8, 9, 14, 15, 16, 17, 20, 21, 22, 25, 26, 27, 28, 29, 31, 41, 42, 44, 45, 46, 48, 49, 50, 59, 63, 64, 65, 67, 70, 74, 82, 92, 93, 94, 95, 101, 110], "summary": {"covered_lines": 42, "num_statements": 52, "percent_covered": 80.76923076923077, "percent_covered_display": "81", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [52, 54, 55, 56, 60, 61, 83, 96, 97, 99], "excluded_lines": []}}}, "hknweb\\events\\views\\event_transactions\\update_event.py": {"executed_lines": [1, 2, 4, 9, 10, 13, 14, 15, 16, 17, 19, 20, 21, 22, 24, 27, 28, 31, 34, 36], "summary": {"covered_lines": 20, "num_statements": 23, "percent_covered": 86.95652173913044, "percent_covered_display": "87", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [37, 38, 43], "excluded_lines": [], "functions": {"EventUpdateView.get_context_data": {"executed_lines": [20, 21, 22], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EventUpdateView.get_initial": {"executed_lines": [27, 28, 31, 34], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EventUpdateView.form_valid": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [37, 38, 43], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 9, 10, 13, 14, 15, 16, 17, 19, 24, 36], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"EventUpdateView": {"executed_lines": [20, 21, 22, 27, 28, 31, 34], "summary": {"covered_lines": 7, "num_statements": 10, "percent_covered": 70.0, "percent_covered_display": "70", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [37, 38, 43], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 9, 10, 13, 14, 15, 16, 17, 19, 24, 36], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\views\\rsvp_transactions\\__init__.py": {"executed_lines": [1, 2, 3], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 3], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\views\\rsvp_transactions\\confirm_rsvp.py": {"executed_lines": [1, 2, 3, 6, 7, 8, 11, 12, 13, 15, 16, 18], "summary": {"covered_lines": 12, "num_statements": 13, "percent_covered": 92.3076923076923, "percent_covered_display": "92", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [9], "excluded_lines": [], "functions": {"confirm_rsvp": {"executed_lines": [8, 11, 12, 13, 15, 16, 18], "summary": {"covered_lines": 7, "num_statements": 8, "percent_covered": 87.5, "percent_covered_display": "88", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [9], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 6, 7], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 6, 7, 8, 11, 12, 13, 15, 16, 18], "summary": {"covered_lines": 12, "num_statements": 13, "percent_covered": 92.3076923076923, "percent_covered_display": "92", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [9], "excluded_lines": []}}}, "hknweb\\events\\views\\rsvp_transactions\\rsvp.py": {"executed_lines": [1, 2, 3, 4, 5, 8, 9, 10, 11, 13, 15, 16, 18, 20], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"rsvp": {"executed_lines": [10, 11, 13, 15, 16, 18, 20], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 8, 9], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 8, 9, 10, 11, 13, 15, 16, 18, 20], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\events\\views\\rsvp_transactions\\unrsvp.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 12, 15, 16, 17, 18, 20, 21, 22, 23, 25, 26, 27, 30, 33], "summary": {"covered_lines": 21, "num_statements": 28, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [28, 34, 36, 39, 48, 51, 52], "excluded_lines": [], "functions": {"unrsvp": {"executed_lines": [17, 18, 20, 21, 22, 23, 25, 26, 27, 30], "summary": {"covered_lines": 10, "num_statements": 11, "percent_covered": 90.9090909090909, "percent_covered_display": "91", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [28], "excluded_lines": []}, "send_off_waitlist_email": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [34, 36, 39, 48, 51, 52], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 12, 15, 16, 33], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 12, 15, 16, 17, 18, 20, 21, 22, 23, 25, 26, 27, 30, 33], "summary": {"covered_lines": 21, "num_statements": 28, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [28, 34, 36, 39, 48, 51, 52], "excluded_lines": []}}}, "hknweb\\forms.py": {"executed_lines": [1, 2, 6, 7, 8, 9, 10, 11, 12, 14, 16, 18, 20, 21, 22, 23, 26, 27, 28, 29, 32, 33, 35, 38, 42, 43, 44, 54, 55, 56, 57, 58, 60, 61, 62, 69, 71, 72, 73, 83, 84, 87, 90, 91, 93, 94, 95, 98, 99, 100, 101, 104, 105, 110, 111, 112, 113, 115, 118, 120, 168, 182], "summary": {"covered_lines": 62, "num_statements": 122, "percent_covered": 50.81967213114754, "percent_covered_display": "51", "missing_lines": 60, "excluded_lines": 0}, "missing_lines": [65, 122, 125, 126, 131, 135, 136, 148, 155, 157, 160, 161, 165, 166, 172, 174, 175, 180, 184, 185, 186, 187, 190, 191, 192, 195, 196, 197, 198, 202, 203, 204, 205, 207, 210, 211, 212, 213, 214, 216, 217, 219, 221, 223, 231, 234, 236, 237, 239, 241, 242, 244, 245, 248, 251, 258, 261, 264, 266, 269], "excluded_lines": [], "functions": {"SignupForm.clean_email": {"executed_lines": [61, 62, 69], "summary": {"covered_lines": 3, "num_statements": 4, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [65], "excluded_lines": []}, "ProvisionCandidatesForm.send_candidate_account_emails": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [122, 125, 126, 131, 135, 160, 161, 165, 166], "excluded_lines": []}, "ProvisionCandidatesForm.send_candidate_account_emails.create_email": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [136, 148, 155, 157], "excluded_lines": []}, "ProvisionCandidatesForm.add_messages": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [172, 174, 175, 180], "excluded_lines": []}, "ProvisionCandidatesForm.save": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 36, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 36, "excluded_lines": 0}, "missing_lines": [184, 185, 186, 187, 190, 191, 192, 195, 196, 197, 198, 202, 210, 211, 212, 213, 214, 216, 217, 219, 221, 223, 231, 234, 236, 241, 242, 244, 245, 248, 251, 258, 261, 264, 266, 269], "excluded_lines": []}, "ProvisionCandidatesForm.save.email_to_username": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [203, 204, 205, 207], "excluded_lines": []}, "ProvisionCandidatesForm.save.generate_password": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [237, 239], "excluded_lines": []}, "": {"executed_lines": [1, 2, 6, 7, 8, 9, 10, 11, 12, 14, 16, 18, 20, 21, 22, 23, 26, 27, 28, 29, 32, 33, 35, 38, 42, 43, 44, 54, 55, 56, 57, 58, 60, 71, 72, 73, 83, 84, 87, 90, 91, 93, 94, 95, 98, 99, 100, 101, 104, 105, 110, 111, 112, 113, 115, 118, 120, 168, 182], "summary": {"covered_lines": 59, "num_statements": 59, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"SettingsForm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "SettingsForm.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ProfileForm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ProfileForm.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "SignupForm": {"executed_lines": [61, 62, 69], "summary": {"covered_lines": 3, "num_statements": 4, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [65], "excluded_lines": []}, "SignupForm.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "UpdatePasswordForm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ValidPasswordForm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ValidPasswordForm.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ProfilePictureForm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ProfilePictureForm.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "SemesterSelectForm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ProvisionCandidatesForm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 59, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 59, "excluded_lines": 0}, "missing_lines": [122, 125, 126, 131, 135, 136, 148, 155, 157, 160, 161, 165, 166, 172, 174, 175, 180, 184, 185, 186, 187, 190, 191, 192, 195, 196, 197, 198, 202, 203, 204, 205, 207, 210, 211, 212, 213, 214, 216, 217, 219, 221, 223, 231, 234, 236, 237, 239, 241, 242, 244, 245, 248, 251, 258, 261, 264, 266, 269], "excluded_lines": []}, "": {"executed_lines": [1, 2, 6, 7, 8, 9, 10, 11, 12, 14, 16, 18, 20, 21, 22, 23, 26, 27, 28, 29, 32, 33, 35, 38, 42, 43, 44, 54, 55, 56, 57, 58, 60, 71, 72, 73, 83, 84, 87, 90, 91, 93, 94, 95, 98, 99, 100, 101, 104, 105, 110, 111, 112, 113, 115, 118, 120, 168, 182], "summary": {"covered_lines": 59, "num_statements": 59, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\google_drive_utils.py": {"executed_lines": [1, 2, 3, 4, 5, 8, 9, 10, 17, 44, 45, 49, 52, 53, 60, 61, 62, 79, 80, 81, 110, 111, 112, 148, 149, 150, 188, 189, 190, 212, 213, 214, 246, 247, 248, 274], "summary": {"covered_lines": 10, "num_statements": 24, "percent_covered": 41.666666666666664, "percent_covered_display": "42", "missing_lines": 14, "excluded_lines": 234}, "missing_lines": [6, 11, 46, 47, 48, 51, 68, 69, 70, 72, 73, 75, 76, 78], "excluded_lines": [18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 54, 55, 56, 57, 58, 59, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295], "functions": {"get_credentials": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 24}, "missing_lines": [], "excluded_lines": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42]}, "check_credentials_wrapper": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [47, 51], "excluded_lines": []}, "check_credentials_wrapper.new_fn": {"executed_lines": [49], "summary": {"covered_lines": 1, "num_statements": 2, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [48], "excluded_lines": []}, "get_service": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 4}, "missing_lines": [], "excluded_lines": [56, 57, 58, 59]}, "create_metadata": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [68, 69, 70, 72, 73, 75, 76, 78], "excluded_lines": []}, "create_folder": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 24}, "missing_lines": [], "excluded_lines": [86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109]}, "create_pdf": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 30}, "missing_lines": [], "excluded_lines": [118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147]}, "create_permission": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 31}, "missing_lines": [], "excluded_lines": [157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187]}, "delete_permission": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 19}, "missing_lines": [], "excluded_lines": [193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211]}, "update_permission": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 24}, "missing_lines": [], "excluded_lines": [222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245]}, "get_permission_id": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 23}, "missing_lines": [], "excluded_lines": [251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273]}, "get_files": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 19}, "missing_lines": [], "excluded_lines": [277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295]}, "": {"executed_lines": [1, 2, 3, 4, 5, 8, 9, 10, 17, 44, 45, 52, 53, 60, 61, 62, 79, 80, 81, 110, 111, 112, 148, 149, 150, 188, 189, 190, 212, 213, 214, 246, 247, 248, 274], "summary": {"covered_lines": 9, "num_statements": 12, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 3, "excluded_lines": 36}, "missing_lines": [6, 11, 46], "excluded_lines": [18, 54, 55, 81, 82, 83, 84, 85, 112, 113, 114, 115, 116, 117, 150, 151, 152, 153, 154, 155, 156, 190, 191, 192, 214, 215, 216, 217, 218, 219, 220, 221, 248, 249, 250, 276]}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 8, 9, 10, 17, 44, 45, 49, 52, 53, 60, 61, 62, 79, 80, 81, 110, 111, 112, 148, 149, 150, 188, 189, 190, 212, 213, 214, 246, 247, 248, 274], "summary": {"covered_lines": 10, "num_statements": 24, "percent_covered": 41.666666666666664, "percent_covered_display": "42", "missing_lines": 14, "excluded_lines": 234}, "missing_lines": [6, 11, 46, 47, 48, 51, 68, 69, 70, 72, 73, 75, 76, 78], "excluded_lines": [18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 54, 55, 56, 57, 58, 59, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295]}}}, "hknweb\\industry\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\industry\\urls.py": {"executed_lines": [1, 3, 6, 7], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 6, 7], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\industry\\views.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 9, 12, 13, 20, 21, 28, 29, 36, 37, 44, 45], "summary": {"covered_lines": 18, "num_statements": 23, "percent_covered": 78.26086956521739, "percent_covered_display": "78", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [14, 22, 30, 38, 46], "excluded_lines": [], "functions": {"what_is_hkn": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [14], "excluded_lines": []}, "resume_book": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [22], "excluded_lines": []}, "eecs_career_fair": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [30], "excluded_lines": []}, "infosessions": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [38], "excluded_lines": []}, "current_sponsors": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [46], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 9, 12, 13, 20, 21, 28, 29, 36, 37, 44, 45], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 9, 12, 13, 20, 21, 28, 29, 36, 37, 44, 45], "summary": {"covered_lines": 18, "num_statements": 23, "percent_covered": 78.26086956521739, "percent_covered_display": "78", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [14, 22, 30, 38, 46], "excluded_lines": []}}}, "hknweb\\init_permissions.py": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 11, 12, 13, 16, 31, 45, 46, 47, 48, 49, 51, 52, 53, 54], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"provision": {"executed_lines": [12, 13, 16, 31, 45, 46, 47, 48, 49, 51, 52, 53, 54], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 11], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 11, 12, 13, 16, 31, 45, 46, 47, 48, 49, 51, 52, 53, 54], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\management\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\management\\commands\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\management\\commands\\init_permissions.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [1, 3, 6, 7, 9, 10], "excluded_lines": [], "functions": {"Command.handle": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [10], "excluded_lines": []}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [1, 3, 6, 7, 9], "excluded_lines": []}}, "classes": {"Command": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [10], "excluded_lines": []}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [1, 3, 6, 7, 9], "excluded_lines": []}}}, "hknweb\\markdown_pages\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\markdown_pages\\admin.py": {"executed_lines": [1, 3, 4, 6], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 4, 6], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 4, 6], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\markdown_pages\\forms.py": {"executed_lines": [1, 2, 5, 6, 7, 8, 9], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 5, 6, 7, 8, 9], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"EditPageForm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 5, 6, 7, 8, 9], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\markdown_pages\\migrations\\0001_initial.py": {"executed_lines": [3, 4, 7, 9, 11, 14], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 7, 9, 11, 14], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 7, 9, 11, 14], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\markdown_pages\\migrations\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\markdown_pages\\models.py": {"executed_lines": [1, 2, 5, 6, 7, 8, 9, 10, 12, 13, 15], "summary": {"covered_lines": 11, "num_statements": 12, "percent_covered": 91.66666666666667, "percent_covered_display": "92", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [16], "excluded_lines": [], "functions": {"MarkdownPage.__str__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [16], "excluded_lines": []}, "": {"executed_lines": [1, 2, 5, 6, 7, 8, 9, 10, 12, 13, 15], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"MarkdownPage": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [16], "excluded_lines": []}, "": {"executed_lines": [1, 2, 5, 6, 7, 8, 9, 10, 12, 13, 15], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\markdown_pages\\urls.py": {"executed_lines": [1, 2, 4, 7, 8], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 4, 7, 8], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 7, 8], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\markdown_pages\\views.py": {"executed_lines": [1, 2, 4, 5, 8, 9, 22, 23], "summary": {"covered_lines": 8, "num_statements": 18, "percent_covered": 44.44444444444444, "percent_covered_display": "44", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [10, 11, 12, 13, 14, 15, 17, 19, 24, 25], "excluded_lines": [], "functions": {"editor": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [10, 11, 12, 13, 14, 15, 17, 19], "excluded_lines": []}, "display": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [24, 25], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 8, 9, 22, 23], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 5, 8, 9, 22, 23], "summary": {"covered_lines": 8, "num_statements": 18, "percent_covered": 44.44444444444444, "percent_covered_display": "44", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [10, 11, 12, 13, 14, 15, 17, 19, 24, 25], "excluded_lines": []}}}, "hknweb\\migrations\\0001_squashed_0013_auto_20210202_0210.py": {"executed_lines": [3, 4, 5, 6, 7, 10, 12, 14, 16, 20], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 5, 6, 7, 10, 12, 14, 16, 20], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 5, 6, 7, 10, 12, 14, 16, 20], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\migrations\\0014_auto_20210202_0225_squashed_0017_auto_20220228_0019.py": {"executed_lines": [3, 4, 7, 9, 11, 16], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 7, 9, 11, 16], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 7, 9, 11, 16], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\migrations\\0015_candidateprovisioningpassword.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\migrations\\0016_committee_committeeship_elections.py": {"executed_lines": [3, 4, 5, 8, 10, 16], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 5, 8, 10, 16], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 5, 8, 10, 16], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\migrations\\0017_auto_20220518_1813.py": {"executed_lines": [3, 6, 8, 13], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 13], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 13], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\migrations\\0018_auto_20220518_1816.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\migrations\\0019_auto_20220518_1827.py": {"executed_lines": [3, 4, 7, 9, 14], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 7, 9, 14], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 7, 9, 14], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\migrations\\0020_auto_20220519_1358.py": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\migrations\\0021_auto_20220520_1403.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\migrations\\0022_committee_is_exec.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\migrations\\0023_auto_20220521_1203.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\migrations\\0024_profile_preferred_courses.py": {"executed_lines": [3, 6, 8, 13], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 13], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 13], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\migrations\\0025_drivefolderid.py": {"executed_lines": [3, 6, 7, 11], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 7, 11], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 7, 11], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\migrations\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\models.py": {"executed_lines": [1, 2, 4, 5, 6, 7, 8, 9, 10, 12, 14, 17, 18, 22, 27, 28, 29, 30, 31, 32, 35, 36, 37, 38, 41, 42, 44, 45, 46, 47, 49, 50, 51, 53, 54, 55, 56, 65, 68, 71, 77, 78, 84, 85, 87, 88, 90, 94, 95, 98, 99, 100, 102, 106, 107, 109, 113, 114, 115, 116, 117, 120, 124, 127, 138, 139, 141, 143], "summary": {"covered_lines": 65, "num_statements": 74, "percent_covered": 87.83783783783784, "percent_covered_display": "88", "missing_lines": 9, "excluded_lines": 6}, "missing_lines": [66, 69, 91, 103, 110, 125, 128, 129, 131], "excluded_lines": [71, 72, 73, 74, 143, 144], "functions": {"Profile.create_user_profile": {"executed_lines": [46, 47], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Profile.save_user_profile": {"executed_lines": [51], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Profile.clean": {"executed_lines": [54, 55, 56], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Profile.picture_display_url": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [66], "excluded_lines": []}, "Profile.__str__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [69], "excluded_lines": []}, "Profile.preferred_courses_str": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3}, "missing_lines": [], "excluded_lines": [72, 73, 74]}, "Announcement.__str__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [91], "excluded_lines": []}, "Committee.__str__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [103], "excluded_lines": []}, "Election.__str__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [110], "excluded_lines": []}, "Committeeship.__str__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [125], "excluded_lines": []}, "Committeeship.people": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [128, 129, 131], "excluded_lines": []}, "DriveFolderID.__str__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [144]}, "": {"executed_lines": [1, 2, 4, 5, 6, 7, 8, 9, 10, 12, 14, 17, 18, 22, 27, 28, 29, 30, 31, 32, 35, 36, 37, 38, 41, 42, 44, 45, 49, 50, 53, 65, 68, 71, 77, 78, 84, 85, 87, 88, 90, 94, 95, 98, 99, 100, 102, 106, 107, 109, 113, 114, 115, 116, 117, 120, 124, 127, 138, 139, 141, 143], "summary": {"covered_lines": 59, "num_statements": 59, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [71, 143]}}, "classes": {"Profile": {"executed_lines": [46, 47, 51, 54, 55, 56], "summary": {"covered_lines": 6, "num_statements": 8, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 2, "excluded_lines": 3}, "missing_lines": [66, 69], "excluded_lines": [72, 73, 74]}, "Announcement": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [91], "excluded_lines": []}, "CandidateProvisioningPassword": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Committee": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [103], "excluded_lines": []}, "Election": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [110], "excluded_lines": []}, "Committeeship": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [125, 128, 129, 131], "excluded_lines": []}, "DriveFolderID": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [144]}, "": {"executed_lines": [1, 2, 4, 5, 6, 7, 8, 9, 10, 12, 14, 17, 18, 22, 27, 28, 29, 30, 31, 32, 35, 36, 37, 38, 41, 42, 44, 45, 49, 50, 53, 65, 68, 71, 77, 78, 84, 85, 87, 88, 90, 94, 95, 98, 99, 100, 102, 106, 107, 109, 113, 114, 115, 116, 117, 120, 124, 127, 138, 139, 141, 143], "summary": {"covered_lines": 59, "num_statements": 59, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [71, 143]}}}, "hknweb\\studentservices\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\studentservices\\admin.py": {"executed_lines": [1, 2, 4, 14, 15, 16, 17, 18, 19, 22, 23, 24, 33, 34, 46, 47, 48, 49, 52, 53, 54, 55, 56, 59, 60, 61, 64, 65, 66, 75, 76, 77, 78, 90], "summary": {"covered_lines": 34, "num_statements": 34, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 4, 14, 15, 16, 17, 18, 19, 22, 23, 24, 33, 34, 46, 47, 48, 49, 52, 53, 54, 55, 56, 59, 60, 61, 64, 65, 66, 75, 76, 77, 78, 90], "summary": {"covered_lines": 34, "num_statements": 34, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"ResumeAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ToursAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CourseGuideNodeAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CourseGuideAdjacencyListAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CourseGuideGroupAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CourseGuideParamAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CourseDescriptionAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 14, 15, 16, 17, 18, 19, 22, 23, 24, 33, 34, 46, 47, 48, 49, 52, 53, 54, 55, 56, 59, 60, 61, 64, 65, 66, 75, 76, 77, 78, 90], "summary": {"covered_lines": 34, "num_statements": 34, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\studentservices\\forms.py": {"executed_lines": [1, 2, 4, 5, 6, 9, 10, 12, 13, 14, 16, 22, 23, 29, 30, 31, 33, 34, 35, 36, 37, 39, 42, 43, 44, 45, 52], "summary": {"covered_lines": 27, "num_statements": 27, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"TourRequest.clean": {"executed_lines": [34, 35, 36, 37, 39], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 6, 9, 10, 12, 13, 14, 16, 22, 23, 29, 30, 31, 33, 42, 43, 44, 45, 52], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"DocumentForm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DocumentForm.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TourRequest": {"executed_lines": [34, 35, 36, 37, 39], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TourRequest.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CourseEditForm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CourseEditForm.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 6, 9, 10, 12, 13, 14, 16, 22, 23, 29, 30, 31, 33, 42, 43, 44, 45, 52], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\studentservices\\migrations\\0001_initial.py": {"executed_lines": [3, 6, 8, 10, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 10, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 10, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\studentservices\\migrations\\0002_reviewsession.py": {"executed_lines": [3, 4, 5, 8, 10, 15], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 5, 8, 10, 15], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 5, 8, 10, 15], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\studentservices\\migrations\\0003_auto_20220228_1425.py": {"executed_lines": [3, 4, 5, 8, 10, 14], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 5, 8, 10, 14], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 5, 8, 10, 14], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\studentservices\\migrations\\0004_courseguideadjacencylist_courseguidegroup_courseguidenode.py": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\studentservices\\migrations\\0005_auto_20220303_1644.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\studentservices\\migrations\\0006_courseguideparam.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\studentservices\\migrations\\0007_courseguidegroup_name.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\studentservices\\migrations\\0008_auto_20220402_2356.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\studentservices\\migrations\\0009_delete_reviewsession.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\studentservices\\migrations\\0010_auto_20220421_0027.py": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 7, 9, 13], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\studentservices\\migrations\\0011_coursedescription.py": {"executed_lines": [3, 6, 7, 11], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 7, 11], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 7, 11], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\studentservices\\migrations\\0012_remove_coursedescription_prerequisites_raw_and_more.py": {"executed_lines": [3, 4, 7, 8, 12], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 7, 8, 12], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 7, 8, 12], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\studentservices\\migrations\\0013_alter_coursedescription_description_and_more.py": {"executed_lines": [3, 4, 7, 8, 12], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 7, 8, 12], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 7, 8, 12], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\studentservices\\migrations\\0014_coursedescription_folderid.py": {"executed_lines": [3, 6, 7, 11], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 7, 11], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 7, 11], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\studentservices\\migrations\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\studentservices\\models.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 9, 12, 13, 14, 15, 16, 17, 18, 21, 22, 23, 25, 26, 27, 30, 34, 35, 41, 42, 43, 45, 46, 49, 50, 51, 52, 53, 55, 56, 59, 60, 63, 67, 68, 69, 70, 73, 74, 75, 77, 78, 81, 82, 83, 84, 85, 86, 88, 89, 91, 92, 101, 102, 103, 104, 105, 106, 107, 108, 110, 112, 113, 115, 125], "summary": {"covered_lines": 71, "num_statements": 76, "percent_covered": 93.42105263157895, "percent_covered_display": "93", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [119, 120, 122, 123, 126], "excluded_lines": [], "functions": {"DepTour.__str__": {"executed_lines": [46], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CourseGuideNode.__str__": {"executed_lines": [56], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CourseGuideAdjacencyList.__str__": {"executed_lines": [68, 69, 70], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CourseGuideGroup.__str__": {"executed_lines": [78], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CourseGuideParam.__str__": {"executed_lines": [89], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CourseGuideParam.to_dict": {"executed_lines": [92], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CourseDescription.save": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [119, 120, 122, 123], "excluded_lines": []}, "CourseDescription.__str__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [126], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 9, 12, 13, 14, 15, 16, 17, 18, 21, 22, 23, 25, 26, 27, 30, 34, 35, 41, 42, 43, 45, 49, 50, 51, 52, 53, 55, 59, 60, 63, 67, 73, 74, 75, 77, 81, 82, 83, 84, 85, 86, 88, 91, 101, 102, 103, 104, 105, 106, 107, 108, 110, 112, 113, 115, 125], "summary": {"covered_lines": 63, "num_statements": 63, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Resume": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DepTour": {"executed_lines": [46], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DepTour.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CourseGuideNode": {"executed_lines": [56], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CourseGuideAdjacencyList": {"executed_lines": [68, 69, 70], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CourseGuideGroup": {"executed_lines": [78], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CourseGuideParam": {"executed_lines": [89, 92], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CourseDescription": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [119, 120, 122, 123, 126], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 9, 12, 13, 14, 15, 16, 17, 18, 21, 22, 23, 25, 26, 27, 30, 34, 35, 41, 42, 43, 45, 49, 50, 51, 52, 53, 55, 59, 60, 63, 67, 73, 74, 75, 77, 81, 82, 83, 84, 85, 86, 88, 91, 101, 102, 103, 104, 105, 106, 107, 108, 110, 112, 113, 115, 125], "summary": {"covered_lines": 63, "num_statements": 63, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\studentservices\\urls.py": {"executed_lines": [1, 2, 3, 6, 7], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 3, 6, 7], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 6, 7], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\studentservices\\views.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 17, 24, 25, 28, 29, 30, 31, 33, 34, 35, 37, 44, 45, 46, 51, 52, 53, 58, 59, 60, 61, 62, 63, 66, 67, 69, 79, 82, 83, 85, 86, 88, 89, 91, 94, 95, 96, 98, 99, 101, 105, 108, 109, 110, 111, 112, 114, 115, 116, 117, 118, 120, 121, 123, 127, 128, 129, 130, 131, 133, 134, 135, 136, 138, 144, 145, 146, 147, 148, 149, 151, 161, 163, 164, 165, 166, 175, 179, 182, 183, 205, 206, 224, 225], "summary": {"covered_lines": 96, "num_statements": 118, "percent_covered": 81.35593220338983, "percent_covered_display": "81", "missing_lines": 22, "excluded_lines": 0}, "missing_lines": [184, 185, 186, 187, 188, 189, 194, 202, 207, 208, 209, 210, 211, 212, 213, 214, 216, 221, 226, 228, 229, 231], "excluded_lines": [], "functions": {"resume_critique_submit": {"executed_lines": [30, 31, 33, 34, 35, 37], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "reviewsessions": {"executed_lines": [46], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "show_reviewsession_details": {"executed_lines": [53], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "tours": {"executed_lines": [60, 61, 62, 63, 66, 67, 69, 79, 82, 83, 85, 86, 88, 89, 91], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "course_guide": {"executed_lines": [96, 98, 99, 101, 105], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "course_guide_data": {"executed_lines": [110, 111, 112, 114, 115, 116, 117, 118, 120, 121, 123, 127, 128, 129, 130, 131, 133, 134, 135, 136, 138, 144, 145, 146, 147, 148, 149, 151, 161, 163, 164, 165, 166, 175, 179], "summary": {"covered_lines": 35, "num_statements": 35, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "course_description": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [184, 185, 186, 187, 188, 189, 194, 202], "excluded_lines": []}, "edit_description": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [207, 208, 209, 210, 211, 212, 213, 214, 216, 221], "excluded_lines": []}, "delete_description": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [226, 228, 229, 231], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 17, 24, 25, 28, 29, 44, 45, 51, 52, 58, 59, 94, 95, 108, 109, 182, 183, 205, 206, 224, 225], "summary": {"covered_lines": 33, "num_statements": 33, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 17, 24, 25, 28, 29, 30, 31, 33, 34, 35, 37, 44, 45, 46, 51, 52, 53, 58, 59, 60, 61, 62, 63, 66, 67, 69, 79, 82, 83, 85, 86, 88, 89, 91, 94, 95, 96, 98, 99, 101, 105, 108, 109, 110, 111, 112, 114, 115, 116, 117, 118, 120, 121, 123, 127, 128, 129, 130, 131, 133, 134, 135, 136, 138, 144, 145, 146, 147, 148, 149, 151, 161, 163, 164, 165, 166, 175, 179, 182, 183, 205, 206, 224, 225], "summary": {"covered_lines": 96, "num_statements": 118, "percent_covered": 81.35593220338983, "percent_covered_display": "81", "missing_lines": 22, "excluded_lines": 0}, "missing_lines": [184, 185, 186, 187, 188, 189, 194, 202, 207, 208, 209, 210, 211, 212, 213, 214, 216, 221, 226, 228, 229, 231], "excluded_lines": []}}}, "hknweb\\tutoring\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\tutoring\\admin.py": {"executed_lines": [1, 3, 6, 7, 8, 11, 12, 13, 16, 17, 18, 27, 28, 29, 30, 32, 35], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 6, 7, 8, 11, 12, 13, 16, 17, 18, 27, 28, 29, 30, 32, 35], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"TutoringLogisticsAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "SlotAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CribSheetsAdmin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 8, 11, 12, 13, 16, 17, 18, 27, 28, 29, 30, 32, 35], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\tutoring\\forms.py": {"executed_lines": [1, 3, 5, 6, 7, 8, 9, 10, 13, 14, 22, 23, 24, 27, 28, 36, 37, 38, 41, 42, 43, 44, 47, 48, 49, 50, 51, 53, 54, 55, 57], "summary": {"covered_lines": 31, "num_statements": 40, "percent_covered": 77.5, "percent_covered_display": "78", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [58, 60, 61, 63, 64, 65, 67, 68, 70], "excluded_lines": [], "functions": {"CourseFilterForm.__init__": {"executed_lines": [23, 24], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TutorFilterForm.__init__": {"executed_lines": [37, 38], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "AddCribForm.clean_file": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [58, 60, 61, 63, 64, 65, 67, 68, 70], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 6, 7, 8, 9, 10, 13, 14, 22, 27, 28, 36, 41, 42, 43, 44, 47, 48, 49, 50, 51, 53, 54, 55, 57], "summary": {"covered_lines": 27, "num_statements": 27, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"CourseFilterForm": {"executed_lines": [23, 24], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TutorFilterForm": {"executed_lines": [37, 38], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "AddCourseForm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "AddCourseForm.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "AddCribForm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [58, 60, 61, 63, 64, 65, 67, 68, 70], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 6, 7, 8, 9, 10, 13, 14, 22, 27, 28, 36, 41, 42, 43, 44, 47, 48, 49, 50, 51, 53, 54, 55, 57], "summary": {"covered_lines": 27, "num_statements": 27, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\tutoring\\migrations\\0001_squashed_0007_auto_20220127_1958.py": {"executed_lines": [3, 4, 5, 8, 10, 12, 14, 19], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 5, 8, 10, 12, 14, 19], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 5, 8, 10, 12, 14, 19], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\tutoring\\migrations\\0002_auto_20221006_1638.py": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 6, 8, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\tutoring\\migrations\\0003_auto_20221128_1703.py": {"executed_lines": [3, 4, 5, 6, 9, 11, 17], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 5, 6, 9, 11, 17], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 5, 6, 9, 11, 17], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\tutoring\\migrations\\0004_cribsheet_and_more.py": {"executed_lines": [3, 4, 7, 8, 14], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 7, 8, 14], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Migration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [3, 4, 7, 8, 14], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\tutoring\\migrations\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\tutoring\\models.py": {"executed_lines": [1, 3, 5, 6, 7, 8, 10, 11, 14, 15, 16, 18, 22, 23, 24, 26, 29, 32, 36, 39, 40, 41, 45, 48, 49, 52, 53, 54, 56, 57, 58, 59, 61, 64, 65, 68, 71, 72, 74, 76, 78, 80, 82, 84, 86, 87, 94], "summary": {"covered_lines": 43, "num_statements": 43, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 8}, "missing_lines": [], "excluded_lines": [18, 19, 36, 37, 61, 62, 94, 95], "functions": {"Room.__str__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [19]}, "TutoringLogistics.__str__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [37]}, "TutoringLogistics.get_most_recent": {"executed_lines": [41, 45], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Slot.__str__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [62]}, "Slot.tutor_names": {"executed_lines": [65, 68], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CribSheet.__str__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [95]}, "": {"executed_lines": [1, 3, 5, 6, 7, 8, 10, 11, 14, 15, 16, 18, 22, 23, 24, 26, 29, 32, 36, 39, 40, 48, 49, 52, 53, 54, 56, 57, 58, 59, 61, 64, 71, 72, 74, 76, 78, 80, 82, 84, 86, 87, 94], "summary": {"covered_lines": 39, "num_statements": 39, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 4}, "missing_lines": [], "excluded_lines": [18, 36, 61, 94]}}, "classes": {"Room": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [19]}, "TutoringLogistics": {"executed_lines": [41, 45], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [37]}, "TutoringLogistics.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Slot": {"executed_lines": [65, 68], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [62]}, "CribSheet": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [95]}, "CribSheet.Meta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 6, 7, 8, 10, 11, 14, 15, 16, 18, 22, 23, 24, 26, 29, 32, 36, 39, 40, 48, 49, 52, 53, 54, 56, 57, 58, 59, 61, 64, 71, 72, 74, 76, 78, 80, 82, 84, 86, 87, 94], "summary": {"covered_lines": 39, "num_statements": 39, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 4}, "missing_lines": [], "excluded_lines": [18, 36, 61, 94]}}}, "hknweb\\tutoring\\scheduler\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\tutoring\\scheduler\\data.py": {"executed_lines": [1, 2, 3, 5, 7, 10, 11, 19, 20, 21, 23, 35, 36, 40, 41, 42, 44, 45, 46, 48, 50, 53, 54, 55, 65, 66, 76, 77, 78, 80, 82, 83, 86, 87, 92], "summary": {"covered_lines": 24, "num_statements": 25, "percent_covered": 96.0, "percent_covered_display": "96", "missing_lines": 1, "excluded_lines": 28}, "missing_lines": [37], "excluded_lines": [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 50, 51, 76, 77, 78, 79, 80, 81, 82, 83, 86, 87, 88, 89, 90, 91, 92, 93], "functions": {"Data.__init__": {"executed_lines": [20, 21], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Data.readable_formatted_assignments": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 9}, "missing_lines": [], "excluded_lines": [24, 25, 26, 27, 28, 29, 30, 31, 32]}, "DjangoData.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [37], "excluded_lines": []}, "JSONData.__init__": {"executed_lines": [42, 44, 45, 46, 48], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "JSONData.get_json_str": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [51]}, "JSONData.post_init": {"executed_lines": [54, 55, 65, 66], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "RemoteJSONData.__init__": {"executed_lines": [78, 80], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3}, "missing_lines": [], "excluded_lines": [78, 79, 80]}, "RemoteJSONData.get_json_str": {"executed_lines": [83], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [83]}, "LocalJSONData.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3}, "missing_lines": [], "excluded_lines": [88, 89, 90]}, "LocalJSONData.get_json_str": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [93]}, "": {"executed_lines": [1, 2, 3, 5, 7, 10, 11, 19, 23, 35, 36, 40, 41, 50, 53, 76, 77, 82, 86, 87, 92], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 10}, "missing_lines": [], "excluded_lines": [23, 50, 76, 77, 81, 82, 86, 87, 91, 92]}}, "classes": {"Data": {"executed_lines": [20, 21], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 9}, "missing_lines": [], "excluded_lines": [24, 25, 26, 27, 28, 29, 30, 31, 32]}, "DjangoData": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [37], "excluded_lines": []}, "JSONData": {"executed_lines": [42, 44, 45, 46, 48, 54, 55, 65, 66], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [51]}, "RemoteJSONData": {"executed_lines": [78, 80, 83], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 4}, "missing_lines": [], "excluded_lines": [78, 79, 80, 83]}, "LocalJSONData": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 4}, "missing_lines": [], "excluded_lines": [88, 89, 90, 93]}, "": {"executed_lines": [1, 2, 3, 5, 7, 10, 11, 19, 23, 35, 36, 40, 41, 50, 53, 76, 77, 82, 86, 87, 92], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 10}, "missing_lines": [], "excluded_lines": [23, 50, 76, 77, 81, 82, 86, 87, 91, 92]}}}, "hknweb\\tutoring\\scheduler\\evaluator.py": {"executed_lines": [1, 3, 5, 7, 8, 9, 12, 13, 15, 16, 17, 18, 20, 21, 22, 23, 24, 27, 28, 29, 33, 34, 35, 36, 37, 39, 40, 42, 43, 44, 45], "summary": {"covered_lines": 31, "num_statements": 31, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"Evaluator.evaluate": {"executed_lines": [17, 18, 20, 21, 22, 23, 24, 27, 28, 29, 33, 34, 35, 36, 37, 39, 40, 42, 43, 44, 45], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 7, 8, 9, 12, 13, 15, 16], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Evaluator": {"executed_lines": [17, 18, 20, 21, 22, 23, 24, 27, 28, 29, 33, 34, 35, 36, 37, 39, 40, 42, 43, 44, 45], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 7, 8, 9, 12, 13, 15, 16], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\tutoring\\scheduler\\graph.py": {"executed_lines": [1, 3, 6, 7, 10, 11, 12, 14, 15, 16, 18, 19], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"Graph.__init__": {"executed_lines": [12], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Graph.add_edge": {"executed_lines": [15, 16], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Graph.get_neighbors": {"executed_lines": [19], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 10, 11, 14, 18], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Graph": {"executed_lines": [12, 15, 16, 19], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 10, 11, 14, 18], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\tutoring\\scheduler\\matching.py": {"executed_lines": [1, 3, 5, 6, 8, 9, 10, 11, 14, 15, 16, 17, 19, 20, 21, 22, 23, 25, 26, 27, 28, 29, 31, 32, 34, 35, 42, 43, 44, 49, 50, 53, 55, 59, 60, 61, 63, 64, 65, 68, 69, 71, 72, 74, 76, 77, 79, 80, 81, 83, 88, 89, 90, 92, 93, 95, 96, 98, 100, 101, 107, 108, 109, 110, 112, 113, 114, 115, 118, 120, 121, 122, 124, 125, 126, 128, 129, 130, 131, 133, 139, 140, 141, 142, 144, 146, 147, 152, 153, 154, 155, 156, 157, 158, 159, 160, 162, 163, 164, 165, 166, 167, 168, 170, 171, 173, 174, 175, 176, 177, 179, 180, 182, 183, 184, 186, 187, 188, 190, 191, 192, 193, 197, 198, 199, 201, 203, 204, 208, 209, 210, 211, 213, 214, 215, 216, 217, 219, 220, 222, 223, 227, 228, 229, 231, 232, 233, 234, 235, 236, 237], "summary": {"covered_lines": 151, "num_statements": 151, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"Matcher.AssignDTO.__init__": {"executed_lines": [17], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Matcher.AssignDTO.init_assign": {"executed_lines": [20, 21, 22, 23], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Matcher.AssignDTO.init_matching": {"executed_lines": [26, 27, 28, 29], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Matcher.__init__": {"executed_lines": [32], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Matcher.match": {"executed_lines": [35, 42, 43, 44, 49, 50, 53], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Matcher.assign": {"executed_lines": [59, 60, 61, 63, 64, 65, 68, 69, 71, 72, 74, 76, 77, 79, 80, 81, 83, 88, 89, 90, 92, 93, 95, 96, 98], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Matcher.update_matching": {"executed_lines": [107, 108, 109, 110, 112, 113, 114, 115, 118, 120, 121, 122, 124, 125, 126, 128, 129, 130, 131, 133, 139, 140, 141, 142, 144], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Matcher.find_augmenting_path": {"executed_lines": [152, 153, 154, 155, 156, 157, 158, 159, 160, 162, 163, 164, 165, 166, 167, 168, 170, 171, 173, 174, 175, 176, 177, 179, 180, 182, 183, 184, 186, 187, 188, 190, 191, 192, 193, 197, 198, 199, 201], "summary": {"covered_lines": 39, "num_statements": 39, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Matcher.update_prices": {"executed_lines": [208, 209, 210, 211, 213, 214, 215, 216, 217, 219, 220], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Matcher.augment_path": {"executed_lines": [227, 228, 229, 231, 232, 233, 234, 235, 236, 237], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 6, 8, 9, 10, 11, 14, 15, 16, 19, 25, 31, 34, 55, 100, 101, 146, 147, 203, 204, 222, 223], "summary": {"covered_lines": 24, "num_statements": 24, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Matcher": {"executed_lines": [32, 35, 42, 43, 44, 49, 50, 53, 59, 60, 61, 63, 64, 65, 68, 69, 71, 72, 74, 76, 77, 79, 80, 81, 83, 88, 89, 90, 92, 93, 95, 96, 98, 107, 108, 109, 110, 112, 113, 114, 115, 118, 120, 121, 122, 124, 125, 126, 128, 129, 130, 131, 133, 139, 140, 141, 142, 144, 152, 153, 154, 155, 156, 157, 158, 159, 160, 162, 163, 164, 165, 166, 167, 168, 170, 171, 173, 174, 175, 176, 177, 179, 180, 182, 183, 184, 186, 187, 188, 190, 191, 192, 193, 197, 198, 199, 201, 208, 209, 210, 211, 213, 214, 215, 216, 217, 219, 220, 227, 228, 229, 231, 232, 233, 234, 235, 236, 237], "summary": {"covered_lines": 118, "num_statements": 118, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Matcher.AssignDTO": {"executed_lines": [17, 20, 21, 22, 23, 26, 27, 28, 29], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 6, 8, 9, 10, 11, 14, 15, 16, 19, 25, 31, 34, 55, 100, 101, 146, 147, 203, 204, 222, 223], "summary": {"covered_lines": 24, "num_statements": 24, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\tutoring\\scheduler\\schedule.py": {"executed_lines": [1, 3, 4, 5, 6, 7, 10, 17, 23, 24, 26, 28, 29, 30, 31, 34, 38, 39, 43], "summary": {"covered_lines": 18, "num_statements": 19, "percent_covered": 94.73684210526316, "percent_covered_display": "95", "missing_lines": 1, "excluded_lines": 3}, "missing_lines": [27], "excluded_lines": [39, 40, 41], "functions": {"schedule": {"executed_lines": [23, 24, 26, 28, 29, 30, 31, 34, 38, 39, 43], "summary": {"covered_lines": 10, "num_statements": 11, "percent_covered": 90.9090909090909, "percent_covered_display": "91", "missing_lines": 1, "excluded_lines": 3}, "missing_lines": [27], "excluded_lines": [39, 40, 41]}, "": {"executed_lines": [1, 3, 4, 5, 6, 7, 10, 17], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 4, 5, 6, 7, 10, 17, 23, 24, 26, 28, 29, 30, 31, 34, 38, 39, 43], "summary": {"covered_lines": 18, "num_statements": 19, "percent_covered": 94.73684210526316, "percent_covered_display": "95", "missing_lines": 1, "excluded_lines": 3}, "missing_lines": [27], "excluded_lines": [39, 40, 41]}}}, "hknweb\\tutoring\\scheduler\\swapper.py": {"executed_lines": [1, 3, 5, 7, 8, 9, 10, 13, 14, 15, 17, 18, 24, 27, 28, 30, 32, 34, 36, 39, 40, 42, 44, 45, 46, 48, 50, 51, 55, 58, 59, 62, 64, 65, 68, 69], "summary": {"covered_lines": 36, "num_statements": 37, "percent_covered": 97.29729729729729, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 1}, "missing_lines": [56], "excluded_lines": [52], "functions": {"Swapper.stabilize": {"executed_lines": [24, 27, 28, 30, 32, 34, 36, 39, 40, 42, 44, 45, 46, 48, 50, 51, 55], "summary": {"covered_lines": 17, "num_statements": 18, "percent_covered": 94.44444444444444, "percent_covered_display": "94", "missing_lines": 1, "excluded_lines": 1}, "missing_lines": [56], "excluded_lines": [52]}, "Swapper._circular_swap": {"executed_lines": [62, 64, 65, 68, 69], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 7, 8, 9, 10, 13, 14, 15, 17, 18, 58, 59], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Swapper": {"executed_lines": [24, 27, 28, 30, 32, 34, 36, 39, 40, 42, 44, 45, 46, 48, 50, 51, 55, 62, 64, 65, 68, 69], "summary": {"covered_lines": 22, "num_statements": 23, "percent_covered": 95.65217391304348, "percent_covered_display": "96", "missing_lines": 1, "excluded_lines": 1}, "missing_lines": [56], "excluded_lines": [52]}, "": {"executed_lines": [1, 3, 5, 7, 8, 9, 10, 13, 14, 15, 17, 18, 58, 59], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\tutoring\\scheduler\\tutoring.py": {"executed_lines": [1, 4, 5, 6, 7, 8, 9, 11, 13, 14, 16, 17, 19, 20, 22, 23, 29, 33, 34, 42, 44, 45, 46, 47, 49, 51, 52, 54, 55, 57, 58, 60, 61, 62, 64, 66], "summary": {"covered_lines": 34, "num_statements": 34, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 4}, "missing_lines": [], "excluded_lines": [29, 30, 66, 67], "functions": {"Slot.__init__": {"executed_lines": [6, 7, 8, 9, 11], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Slot.assign": {"executed_lines": [14], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Slot.unassign": {"executed_lines": [17], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Slot.simultaneous": {"executed_lines": [20], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Slot.adjacent": {"executed_lines": [23], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Slot.__repr__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [30]}, "Tutor.__init__": {"executed_lines": [42, 44, 45, 46, 47, 49], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Tutor.conflict": {"executed_lines": [52], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Tutor.assign": {"executed_lines": [55], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Tutor.unassign": {"executed_lines": [58], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Tutor.clear_slots": {"executed_lines": [61, 62, 64], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Tutor.__repr__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [67]}, "": {"executed_lines": [1, 4, 5, 13, 16, 19, 22, 29, 33, 34, 51, 54, 57, 60, 66], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 66]}}, "classes": {"Slot": {"executed_lines": [6, 7, 8, 9, 11, 14, 17, 20, 23], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [30]}, "Tutor": {"executed_lines": [42, 44, 45, 46, 47, 49, 52, 55, 58, 61, 62, 64], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1}, "missing_lines": [], "excluded_lines": [67]}, "": {"executed_lines": [1, 4, 5, 13, 16, 19, 22, 29, 33, 34, 51, 54, 57, 60, 66], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [29, 66]}}}, "hknweb\\tutoring\\scheduler\\weighting.py": {"executed_lines": [1, 3, 6, 7, 8, 26, 27, 33, 39, 45, 46, 67, 68, 74, 79, 80, 81, 83, 84, 85, 86, 87, 89, 91, 94, 95], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 57}, "missing_lines": [], "excluded_lines": [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64], "functions": {"Weighting.weight": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 15}, "missing_lines": [], "excluded_lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]}, "Butler.weight": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 18}, "missing_lines": [], "excluded_lines": [47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64]}, "Gardener.weight": {"executed_lines": [81, 83, 84, 85, 86, 87, 89, 91], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 8, 26, 27, 33, 39, 45, 46, 67, 68, 74, 79, 80, 94, 95], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 24}, "missing_lines": [], "excluded_lines": [6, 7, 8, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46]}}, "classes": {"Weighting": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 15}, "missing_lines": [], "excluded_lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]}, "Butler": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 18}, "missing_lines": [], "excluded_lines": [47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64]}, "Gardener": {"executed_lines": [81, 83, 84, 85, 86, 87, 89, 91], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "OldGardener": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7, 8, 26, 27, 33, 39, 45, 46, 67, 68, 74, 79, 80, 94, 95], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 24}, "missing_lines": [], "excluded_lines": [6, 7, 8, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46]}}}, "hknweb\\tutoring\\urls.py": {"executed_lines": [1, 3, 4, 5, 6, 24, 25, 26, 27, 28, 30, 32], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 4, 5, 6], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 4, 5, 6], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\tutoring\\views\\__init__.py": {"executed_lines": [1, 2, 3, 4, 5, 6], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 2, 3, 4, 5, 6], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 6], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\tutoring\\views\\autocomplete.py": {"executed_lines": [1, 2, 4, 6, 8, 9, 12, 13, 25, 26, 27, 30, 33, 34, 43, 44], "summary": {"covered_lines": 12, "num_statements": 13, "percent_covered": 92.3076923076923, "percent_covered_display": "92", "missing_lines": 1, "excluded_lines": 19}, "missing_lines": [28], "excluded_lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 33, 34, 35, 36, 37, 38, 39, 40], "functions": {"CourseAutocomplete.get_queryset": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 9}, "missing_lines": [], "excluded_lines": [14, 15, 16, 17, 18, 19, 20, 21, 22]}, "get_tutors": {"executed_lines": [26, 27, 30], "summary": {"covered_lines": 3, "num_statements": 4, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [28], "excluded_lines": []}, "TutorAutocomplete.get_queryset": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 6}, "missing_lines": [], "excluded_lines": [35, 36, 37, 38, 39, 40]}, "": {"executed_lines": [1, 2, 4, 6, 8, 9, 12, 13, 25, 33, 34, 43, 44], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 4}, "missing_lines": [], "excluded_lines": [12, 13, 33, 34]}}, "classes": {"CourseAutocomplete": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 9}, "missing_lines": [], "excluded_lines": [14, 15, 16, 17, 18, 19, 20, 21, 22]}, "TutorAutocomplete": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 6}, "missing_lines": [], "excluded_lines": [35, 36, 37, 38, 39, 40]}, "": {"executed_lines": [1, 2, 4, 6, 8, 9, 12, 13, 25, 26, 27, 30, 33, 34, 43, 44], "summary": {"covered_lines": 12, "num_statements": 13, "percent_covered": 92.3076923076923, "percent_covered_display": "92", "missing_lines": 1, "excluded_lines": 4}, "missing_lines": [28], "excluded_lines": [12, 13, 33, 34]}}}, "hknweb\\tutoring\\views\\courses.py": {"executed_lines": [1, 2, 3, 4, 5, 8, 9], "summary": {"covered_lines": 7, "num_statements": 15, "percent_covered": 46.666666666666664, "percent_covered_display": "47", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [10, 11, 12, 13, 15, 19, 21, 23], "excluded_lines": [], "functions": {"courses": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [10, 11, 12, 13, 15, 19, 21, 23], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 8, 9], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 8, 9], "summary": {"covered_lines": 7, "num_statements": 15, "percent_covered": 46.666666666666664, "percent_covered_display": "47", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [10, 11, 12, 13, 15, 19, 21, 23], "excluded_lines": []}}}, "hknweb\\tutoring\\views\\crib.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 15, 16, 17, 20, 21, 22, 24, 46, 61, 67, 113, 114], "summary": {"covered_lines": 16, "num_statements": 73, "percent_covered": 21.91780821917808, "percent_covered_display": "22", "missing_lines": 57, "excluded_lines": 0}, "missing_lines": [14, 23, 26, 27, 29, 30, 31, 38, 39, 40, 42, 43, 44, 45, 47, 49, 50, 51, 52, 54, 62, 64, 65, 66, 68, 70, 71, 72, 73, 74, 75, 76, 77, 79, 80, 81, 84, 85, 86, 87, 88, 89, 91, 93, 95, 96, 103, 105, 106, 108, 111, 112, 115, 117, 118, 120, 122], "excluded_lines": [], "functions": {"CribView.get_queryset": {"executed_lines": [46], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 12, "excluded_lines": 0}, "missing_lines": [27, 29, 30, 31, 38, 39, 40, 42, 43, 44, 45, 47], "excluded_lines": []}, "CribView.get_context": {"executed_lines": [61], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [50, 51, 52, 54, 62], "excluded_lines": []}, "CribView.get": {"executed_lines": [67], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [65, 66, 68], "excluded_lines": []}, "CribView.post": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 24, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 24, "excluded_lines": 0}, "missing_lines": [71, 72, 73, 74, 75, 76, 77, 79, 80, 81, 84, 85, 86, 87, 88, 89, 91, 93, 95, 96, 103, 105, 106, 108], "excluded_lines": []}, "toggle_public": {"executed_lines": [113, 114], "summary": {"covered_lines": 2, "num_statements": 7, "percent_covered": 28.571428571428573, "percent_covered_display": "29", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [115, 117, 118, 120, 122], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 15, 16, 17, 20, 21, 22, 24], "summary": {"covered_lines": 14, "num_statements": 22, "percent_covered": 63.63636363636363, "percent_covered_display": "64", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [14, 23, 26, 49, 64, 70, 111, 112], "excluded_lines": []}}, "classes": {"CribView": {"executed_lines": [46, 61, 67], "summary": {"covered_lines": 0, "num_statements": 44, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 44, "excluded_lines": 0}, "missing_lines": [27, 29, 30, 31, 38, 39, 40, 42, 43, 44, 45, 47, 50, 51, 52, 54, 62, 65, 66, 68, 71, 72, 73, 74, 75, 76, 77, 79, 80, 81, 84, 85, 86, 87, 88, 89, 91, 93, 95, 96, 103, 105, 106, 108], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 15, 16, 17, 20, 21, 22, 24, 113, 114], "summary": {"covered_lines": 16, "num_statements": 29, "percent_covered": 55.172413793103445, "percent_covered_display": "55", "missing_lines": 13, "excluded_lines": 0}, "missing_lines": [14, 23, 26, 49, 64, 70, 111, 112, 115, 117, 118, 120, 122], "excluded_lines": []}}}, "hknweb\\tutoring\\views\\index.py": {"executed_lines": [1, 2, 3, 4, 6, 8, 9, 12, 13, 14, 15, 16, 20, 21, 22, 26, 27, 32, 35, 38, 40, 41, 42, 48], "summary": {"covered_lines": 24, "num_statements": 26, "percent_covered": 92.3076923076923, "percent_covered_display": "92", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [17, 18], "excluded_lines": [], "functions": {"index": {"executed_lines": [14, 15, 16, 20, 21, 22, 26, 27, 32, 35, 38, 40, 41, 42, 48], "summary": {"covered_lines": 15, "num_statements": 17, "percent_covered": 88.23529411764706, "percent_covered_display": "88", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [17, 18], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 8, 9, 12, 13], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 6, 8, 9, 12, 13, 14, 15, 16, 20, 21, 22, 26, 27, 32, 35, 38, 40, 41, 42, 48], "summary": {"covered_lines": 24, "num_statements": 26, "percent_covered": 92.3076923076923, "percent_covered_display": "92", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [17, 18], "excluded_lines": []}}}, "hknweb\\tutoring\\views\\slots.py": {"executed_lines": [1, 3, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 22, 23, 24, 27, 28, 29, 30, 31, 33, 35, 38, 40, 50, 52, 61, 62, 63, 64, 74, 75], "summary": {"covered_lines": 33, "num_statements": 35, "percent_covered": 94.28571428571429, "percent_covered_display": "94", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [18, 53], "excluded_lines": [], "functions": {"slots": {"executed_lines": [16, 17, 20, 22, 35, 38, 40, 50, 52, 61, 74, 75], "summary": {"covered_lines": 12, "num_statements": 13, "percent_covered": 92.3076923076923, "percent_covered_display": "92", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [18], "excluded_lines": []}, "slots.get_filter_params": {"executed_lines": [23, 24, 27, 28, 29, 30, 31, 33], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "slots.serialize_tutor": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [53], "excluded_lines": []}, "slots.serialize_slot": {"executed_lines": [62, 63, 64], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 6, 7, 9, 11, 14, 15], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 22, 23, 24, 27, 28, 29, 30, 31, 33, 35, 38, 40, 50, 52, 61, 62, 63, 64, 74, 75], "summary": {"covered_lines": 33, "num_statements": 35, "percent_covered": 94.28571428571429, "percent_covered_display": "94", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [18, 53], "excluded_lines": []}}}, "hknweb\\tutoring\\views\\tutoringportal.py": {"executed_lines": [1, 2, 3, 6, 7], "summary": {"covered_lines": 5, "num_statements": 6, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [8], "excluded_lines": [], "functions": {"tutoringportal": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [8], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 6, 7], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 6, 7], "summary": {"covered_lines": 5, "num_statements": 6, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [8], "excluded_lines": []}}}, "hknweb\\urls.py": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 18, 21, 26, 52, 69, 74, 79], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [79, 80], "functions": {"": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 18, 21, 26, 52, 69, 74, 79], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [79, 80]}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 7, 8, 18, 21, 26, 52, 69, 74, 79], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2}, "missing_lines": [], "excluded_lines": [79, 80]}}}, "hknweb\\utils.py": {"executed_lines": [1, 2, 3, 6, 7, 9, 10, 11, 12, 17, 18, 19, 20, 21, 22, 27, 28, 32, 33, 35, 36, 37, 39, 40, 41, 43, 44, 46, 49, 50, 53, 54, 55, 66, 69, 72, 76, 84, 85, 86, 87, 88, 90, 93, 94, 101, 102, 105, 106, 110, 111, 113, 116, 117, 124, 125, 128, 129, 130, 131, 133, 136, 137, 143, 144, 150, 158, 167, 171, 172, 175, 189, 204, 206, 209, 212, 217, 218, 221, 222, 224, 225, 228, 229, 230, 232, 242, 245, 246, 254, 256, 259, 266, 267, 268, 269, 270, 271, 274], "summary": {"covered_lines": 99, "num_statements": 132, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 33, "excluded_lines": 0}, "missing_lines": [103, 126, 152, 153, 154, 159, 160, 161, 178, 179, 183, 190, 191, 193, 194, 195, 197, 198, 199, 201, 276, 277, 278, 279, 280, 281, 284, 285, 286, 287, 288, 289, 291], "excluded_lines": [], "functions": {"_record_permission": {"executed_lines": [33, 35, 46], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_record_permission.decorator": {"executed_lines": [36, 37, 39, 40, 43, 44], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_record_permission.decorator.wrapped": {"executed_lines": [41], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "allow_public_access": {"executed_lines": [50], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_wrap_with_access_check": {"executed_lines": [54, 66], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_wrap_with_access_check.decorator": {"executed_lines": [55], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "login_and_permission": {"executed_lines": [76], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "access_level_required": {"executed_lines": [85, 90], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "access_level_required.test_user": {"executed_lines": [86, 87, 88], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "login_and_access_level": {"executed_lines": [94], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "committee_required": {"executed_lines": [102, 105, 113], "summary": {"covered_lines": 3, "num_statements": 4, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [103], "excluded_lines": []}, "committee_required.test_user": {"executed_lines": [106, 110, 111], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "login_and_committee": {"executed_lines": [117], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "exec_required": {"executed_lines": [125, 128, 133], "summary": {"covered_lines": 3, "num_statements": 4, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [126], "excluded_lines": []}, "exec_required.test_user": {"executed_lines": [129, 130, 131], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "login_and_exec": {"executed_lines": [137], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "method_login_and_permission": {"executed_lines": [144], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "get_all_photos": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [152, 153, 154], "excluded_lines": []}, "get_rand_photo": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [159, 160, 161], "excluded_lines": []}, "get_semester": {"executed_lines": [171, 172], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "get_semester_bounds": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [178, 179, 183], "excluded_lines": []}, "export_model_as_csv": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [190, 191, 193, 194, 195, 197, 198, 199, 201], "excluded_lines": []}, "markdownify": {"executed_lines": [206, 209, 212, 217, 218, 221, 222, 224, 225, 228, 229, 230, 232, 242, 245, 246, 254, 256], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "get_access_level": {"executed_lines": [267, 268, 269, 270, 271], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "view_url": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 0}, "missing_lines": [276, 277, 278, 279, 280, 281, 284, 285, 286, 287, 288, 289, 291], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 6, 7, 9, 10, 11, 12, 17, 18, 19, 20, 21, 22, 27, 28, 32, 49, 53, 69, 72, 84, 93, 101, 116, 124, 136, 143, 150, 158, 167, 175, 189, 204, 259, 266, 274], "summary": {"covered_lines": 38, "num_statements": 38, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 6, 7, 9, 10, 11, 12, 17, 18, 19, 20, 21, 22, 27, 28, 32, 33, 35, 36, 37, 39, 40, 41, 43, 44, 46, 49, 50, 53, 54, 55, 66, 69, 72, 76, 84, 85, 86, 87, 88, 90, 93, 94, 101, 102, 105, 106, 110, 111, 113, 116, 117, 124, 125, 128, 129, 130, 131, 133, 136, 137, 143, 144, 150, 158, 167, 171, 172, 175, 189, 204, 206, 209, 212, 217, 218, 221, 222, 224, 225, 228, 229, 230, 232, 242, 245, 246, 254, 256, 259, 266, 267, 268, 269, 270, 271, 274], "summary": {"covered_lines": 99, "num_statements": 132, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 33, "excluded_lines": 0}, "missing_lines": [103, 126, 152, 153, 154, 159, 160, 161, 178, 179, 183, 190, 191, 193, 194, 195, 197, 198, 199, 201, 276, 277, 278, 279, 280, 281, 284, 285, 286, 287, 288, 289, 291], "excluded_lines": []}}}, "hknweb\\views\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "hknweb\\views\\bitbyte_tree.py": {"executed_lines": [1, 3, 4, 5, 9, 10, 44, 45], "summary": {"covered_lines": 8, "num_statements": 30, "percent_covered": 26.666666666666668, "percent_covered_display": "27", "missing_lines": 22, "excluded_lines": 0}, "missing_lines": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 27, 28, 29, 37, 38, 39, 41, 46], "excluded_lines": [], "functions": {"bitbyte_tree_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 21, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 21, "excluded_lines": 0}, "missing_lines": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 27, 28, 29, 37, 38, 39, 41], "excluded_lines": []}, "bitbyte_tree": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [46], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 5, 9, 10, 44, 45], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 4, 5, 9, 10, 44, 45], "summary": {"covered_lines": 8, "num_statements": 30, "percent_covered": 26.666666666666668, "percent_covered_display": "27", "missing_lines": 22, "excluded_lines": 0}, "missing_lines": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 27, 28, 29, 37, 38, 39, 41, 46], "excluded_lines": []}}}, "hknweb\\views\\committees.py": {"executed_lines": [1, 2, 5, 6], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [7], "excluded_lines": [], "functions": {"portal": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [7], "excluded_lines": []}, "": {"executed_lines": [1, 2, 5, 6], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 5, 6], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [7], "excluded_lines": []}}}, "hknweb\\views\\indrel.py": {"executed_lines": [1, 3, 6, 7], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [8], "excluded_lines": [], "functions": {"indrel": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [8], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6, 7], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 6, 7], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [8], "excluded_lines": []}}}, "hknweb\\views\\landing.py": {"executed_lines": [1, 2, 3, 5, 6, 9, 12, 13, 33, 34], "summary": {"covered_lines": 10, "num_statements": 18, "percent_covered": 55.55555555555556, "percent_covered_display": "56", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [15, 18, 20, 21, 23, 25, 30, 35], "excluded_lines": [], "functions": {"home": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [15, 18, 20, 21, 23, 25, 30], "excluded_lines": []}, "about": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [35], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 5, 6, 9, 12, 13, 33, 34], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 6, 9, 12, 13, 33, 34], "summary": {"covered_lines": 10, "num_statements": 18, "percent_covered": 55.55555555555556, "percent_covered_display": "56", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [15, 18, 20, 21, 23, 25, 30, 35], "excluded_lines": []}}}, "hknweb\\views\\outreach.py": {"executed_lines": [1, 4, 7, 8], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [9], "excluded_lines": [], "functions": {"outreach": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [9], "excluded_lines": []}, "": {"executed_lines": [1, 4, 7, 8], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 4, 7, 8], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [9], "excluded_lines": []}}}, "hknweb\\views\\people.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 10, 11, 13, 16, 17], "summary": {"covered_lines": 12, "num_statements": 35, "percent_covered": 34.285714285714285, "percent_covered_display": "34", "missing_lines": 23, "excluded_lines": 0}, "missing_lines": [18, 19, 21, 24, 25, 26, 28, 31, 33, 39, 40, 41, 43, 45, 48, 52, 53, 54, 55, 56, 57, 59, 66], "excluded_lines": [], "functions": {"people": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 23, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 23, "excluded_lines": 0}, "missing_lines": [18, 19, 21, 24, 25, 26, 28, 31, 33, 39, 40, 41, 43, 45, 48, 52, 53, 54, 55, 56, 57, 59, 66], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 10, 11, 13, 16, 17], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 6, 8, 10, 11, 13, 16, 17], "summary": {"covered_lines": 12, "num_statements": 35, "percent_covered": 34.285714285714285, "percent_covered_display": "34", "missing_lines": 23, "excluded_lines": 0}, "missing_lines": [18, 19, 21, 24, 25, 26, 28, 31, 33, 39, 40, 41, 43, 45, 48, 52, 53, 54, 55, 56, 57, 59, 66], "excluded_lines": []}}}, "hknweb\\views\\users.py": {"executed_lines": [1, 2, 3, 4, 5, 11, 12, 13, 14, 15, 16, 17, 18, 19, 23, 24, 25, 28, 29, 33, 36, 37, 38, 41, 42, 43, 46, 48, 49, 50, 51, 52, 58, 62, 63, 64, 65, 66, 67, 68, 72, 73, 74, 76, 77, 78, 80, 81, 91, 92, 94, 95, 98, 99, 100, 111, 112, 113, 114, 115, 118, 119, 120, 123, 125, 126, 129, 130, 131, 134, 135, 136, 137, 138, 139, 140, 144, 152, 153, 154, 156, 157, 158, 160, 161, 165, 174, 176, 180, 188, 191, 192, 193, 195, 200], "summary": {"covered_lines": 85, "num_statements": 91, "percent_covered": 93.4065934065934, "percent_covered_display": "93", "missing_lines": 6, "excluded_lines": 27}, "missing_lines": [82, 83, 87, 88, 89, 121], "excluded_lines": [46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 69, 70, 71, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "functions": {"add_officer_context": {"executed_lines": [24, 25, 28, 29, 33], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "add_exec_context": {"executed_lines": [37, 38, 41, 42, 43], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "get_current_cand_semester": {"executed_lines": [48, 49, 50, 51, 52, 58], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 11}, "missing_lines": [], "excluded_lines": [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58]}, "account_create": {"executed_lines": [64, 65, 66, 67, 68, 72, 73, 74, 76, 77, 78, 80, 81, 91, 92, 94, 95], "summary": {"covered_lines": 17, "num_statements": 22, "percent_covered": 77.27272727272727, "percent_covered_display": "77", "missing_lines": 5, "excluded_lines": 3}, "missing_lines": [82, 83, 87, 88, 89], "excluded_lines": [69, 70, 71]}, "confirm_recaptcha": {"executed_lines": [99, 100], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 10}, "missing_lines": [], "excluded_lines": [99, 100, 101, 102, 103, 104, 105, 106, 107, 108]}, "account_settings": {"executed_lines": [113, 114, 115, 118, 119, 120, 123, 125, 126, 129, 130, 131, 134, 135, 136, 137, 138, 139, 140, 144, 152, 153, 154, 156, 157, 158, 160, 161, 165, 174, 176, 180, 188, 191, 192, 193, 195, 200], "summary": {"covered_lines": 38, "num_statements": 39, "percent_covered": 97.43589743589743, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [121], "excluded_lines": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 11, 12, 13, 14, 15, 16, 17, 18, 19, 23, 36, 46, 62, 63, 98, 111, 112], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3}, "missing_lines": [], "excluded_lines": [46, 47, 98]}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 11, 12, 13, 14, 15, 16, 17, 18, 19, 23, 24, 25, 28, 29, 33, 36, 37, 38, 41, 42, 43, 46, 48, 49, 50, 51, 52, 58, 62, 63, 64, 65, 66, 67, 68, 72, 73, 74, 76, 77, 78, 80, 81, 91, 92, 94, 95, 98, 99, 100, 111, 112, 113, 114, 115, 118, 119, 120, 123, 125, 126, 129, 130, 131, 134, 135, 136, 137, 138, 139, 140, 144, 152, 153, 154, 156, 157, 158, 160, 161, 165, 174, 176, 180, 188, 191, 192, 193, 195, 200], "summary": {"covered_lines": 85, "num_statements": 91, "percent_covered": 93.4065934065934, "percent_covered_display": "93", "missing_lines": 6, "excluded_lines": 27}, "missing_lines": [82, 83, 87, 88, 89, 121], "excluded_lines": [46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 69, 70, 71, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108]}}}, "tests\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\academics\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\academics\\models\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\academics\\models\\course_surveys\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\academics\\models\\logistics\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\academics\\utils.py": {"executed_lines": [1, 3, 5, 17, 18, 19, 20, 22, 23, 24, 28, 29, 31, 32, 33, 36, 37, 39, 40, 41, 45, 46, 48, 49, 50, 52, 53, 54, 58, 62, 67, 69, 70, 71, 72, 74, 80, 81, 82, 85, 89, 94, 96, 97, 98, 100, 102, 103, 106, 112, 120, 125, 127, 128, 129, 130, 131, 132, 134, 142, 143, 144, 147, 148, 151, 152, 153, 154, 155, 157, 158, 159, 160, 162], "summary": {"covered_lines": 74, "num_statements": 74, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"ModelFactory.create_course": {"executed_lines": [20], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_department": {"executed_lines": [24, 28, 29], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_instructor": {"executed_lines": [33, 36, 37], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_semester": {"executed_lines": [41, 45, 46], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_question": {"executed_lines": [50], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_rating": {"executed_lines": [54, 58, 62, 67], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_default_rating": {"executed_lines": [71, 72, 74], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_survey": {"executed_lines": [82, 85, 89, 94], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_default_survey": {"executed_lines": [98, 100], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_icsr": {"executed_lines": [106, 112, 120, 125], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_default_icsr": {"executed_lines": [129, 130, 131, 132, 134], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_user": {"executed_lines": [144, 147, 148], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "login_user": {"executed_lines": [152, 153, 154, 155, 157, 158, 159, 160, 162], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 17, 18, 19, 22, 23, 31, 32, 39, 40, 48, 49, 52, 53, 69, 70, 80, 81, 96, 97, 102, 103, 127, 128, 142, 143, 151], "summary": {"covered_lines": 29, "num_statements": 29, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"ModelFactory": {"executed_lines": [20, 24, 28, 29, 33, 36, 37, 41, 45, 46, 50, 54, 58, 62, 67, 71, 72, 74, 82, 85, 89, 94, 98, 100, 106, 112, 120, 125, 129, 130, 131, 132, 134, 144, 147, 148], "summary": {"covered_lines": 36, "num_statements": 36, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 17, 18, 19, 22, 23, 31, 32, 39, 40, 48, 49, 52, 53, 69, 70, 80, 81, 96, 97, 102, 103, 127, 128, 142, 143, 151, 152, 153, 154, 155, 157, 158, 159, 160, 162], "summary": {"covered_lines": 38, "num_statements": 38, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\candidate\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\candidate\\admin\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\candidate\\models\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\candidate\\models\\utils.py": {"executed_lines": [1, 2, 4, 5, 7, 18, 19, 20, 21, 24, 25, 27, 28, 29, 33, 37, 39, 40, 41, 44, 48, 50, 51, 52, 56, 60, 62, 63, 65, 67, 68, 69, 73, 77, 82, 84, 85, 86, 90, 94, 96, 97, 98, 101, 105, 107, 108, 109, 110, 111, 113, 114, 115, 125, 127, 129, 130, 131, 136, 140, 142, 143, 144, 149, 153], "summary": {"covered_lines": 65, "num_statements": 65, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"ModelFactory.create_user": {"executed_lines": [21, 24, 25], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_semester": {"executed_lines": [29, 33, 37], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_eventtype": {"executed_lines": [41, 44, 48], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_bitbyteactivity_activity": {"executed_lines": [52, 56, 60, 62, 63, 65], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_officerchallenge_activity": {"executed_lines": [69, 73, 77, 82], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_announcement": {"executed_lines": [86, 90, 94], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_event_req": {"executed_lines": [98, 101, 105], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_default_event_req": {"executed_lines": [109, 110, 111], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_default_logistics": {"executed_lines": [115, 125, 127], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_misc_req": {"executed_lines": [131, 136, 140], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_form_req": {"executed_lines": [144, 149, 153], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 7, 18, 19, 20, 27, 28, 39, 40, 50, 51, 67, 68, 84, 85, 96, 97, 107, 108, 113, 114, 129, 130, 142, 143], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"ModelFactory": {"executed_lines": [21, 24, 25, 29, 33, 37, 41, 44, 48, 52, 56, 60, 62, 63, 65, 69, 73, 77, 82, 86, 90, 94, 98, 101, 105, 109, 110, 111, 115, 125, 127, 131, 136, 140, 144, 149, 153], "summary": {"covered_lines": 37, "num_statements": 37, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 7, 18, 19, 20, 27, 28, 39, 40, 50, 51, 67, 68, 84, 85, 96, 97, 107, 108, 113, 114, 129, 130, 142, 143], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\candidate\\templatetags\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\candidate\\views\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\candidate\\views\\utils.py": {"executed_lines": [1, 2, 4, 5, 8, 9, 10, 11, 17, 18, 19, 25, 26, 27, 33, 34, 36, 38, 39, 40, 41, 42, 43, 44, 46, 47, 48, 49], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"CandidateViewTestsBase.setUp": {"executed_lines": [10, 11, 17, 18, 19, 25, 26, 27, 33, 34, 36, 38, 39, 40, 41, 42, 43, 44, 46, 47, 48, 49], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 8, 9], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"CandidateViewTestsBase": {"executed_lines": [10, 11, 17, 18, 19, 25, 26, 27, 33, 34, 36, 38, 39, 40, 41, 42, 43, 44, 46, 47, 48, 49], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 8, 9], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\course_surveys\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\course_surveys\\utils.py": {"executed_lines": [1, 2, 4, 5, 7, 10, 11, 12, 13, 14, 16, 17, 18, 22, 24], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"create_user_with_course_surveys_edit_permission": {"executed_lines": [11, 12, 13, 14, 16, 17, 18, 22, 24], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 5, 7, 10], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 5, 7, 10, 11, 12, 13, 14, 16, 17, 18, 22, 24], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\events\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\events\\models\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\events\\models\\utils.py": {"executed_lines": [1, 3, 5, 6, 9, 10, 11, 12, 15, 16, 18, 19, 20, 23, 24, 26, 27, 28, 33, 39, 40, 42, 43, 44, 48, 49, 51, 52, 53, 54, 55, 60, 61, 63, 70, 72], "summary": {"covered_lines": 36, "num_statements": 36, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"ModelFactory.create_user": {"executed_lines": [12, 15, 16], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_event_type": {"executed_lines": [20, 23, 24], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_event": {"executed_lines": [28, 33, 39, 40], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_rsvp": {"executed_lines": [44, 48, 49], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelFactory.create_event_with_rsvps": {"executed_lines": [53, 54, 55, 60, 61, 63, 70, 72], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 6, 9, 10, 11, 18, 19, 26, 27, 42, 43, 51, 52], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"ModelFactory": {"executed_lines": [12, 15, 16, 20, 23, 24, 28, 33, 39, 40, 44, 48, 49, 53, 54, 55, 60, 61, 63, 70, 72], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 5, 6, 9, 10, 11, 18, 19, 26, 27, 42, 43, 51, 52], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\events\\views\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\events\\views\\aggregate_displays\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\events\\views\\event_transactions\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\events\\views\\event_transactions\\utils.py": {"executed_lines": [1, 2, 4, 6, 9, 10, 11, 12, 13, 15, 16, 19, 21, 23, 24, 31, 32, 33], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"setUp": {"executed_lines": [10, 11, 12, 13, 15, 16, 19, 21, 23, 24, 31, 32, 33], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 6, 9], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 6, 9, 10, 11, 12, 13, 15, 16, 19, 21, 23, 24, 31, 32, 33], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\events\\views\\rsvp_transactions\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\events\\views\\rsvp_transactions\\utils.py": {"executed_lines": [1, 2, 4, 6, 9, 10, 11, 12, 13, 15, 16, 17, 20, 22, 24, 25, 32, 33, 34], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"setUp": {"executed_lines": [10, 11, 12, 13, 15, 16, 17, 20, 22, 24, 25, 32, 33, 34], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 2, 4, 6, 9], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 2, 4, 6, 9, 10, 11, 12, 13, 15, 16, 17, 20, 22, 24, 25, 32, 33, 34], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\events\\views\\templatetags\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\studentservices\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\studentservices\\models\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\studentservices\\views\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\tutoring\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\tutoring\\views\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "tests\\views\\__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}}, "totals": {"covered_lines": 3503, "num_statements": 4162, "percent_covered": 84.16626621816434, "percent_covered_display": "84", "missing_lines": 659, "excluded_lines": 533}} \ No newline at end of file