diff --git a/canvasapi/canvas.py b/canvasapi/canvas.py
index ca9a6e8..2e684fa 100644
--- a/canvasapi/canvas.py
+++ b/canvasapi/canvas.py
@@ -39,6 +39,13 @@ class Canvas(object):
                 "Rewriting `base_url` to {}".format(new_url),
                 DeprecationWarning
             )
+
+        if 'http://' in base_url:
+            warnings.warn(
+                "Canvas may respond unexpectedly when making requests to HTTP "
+                "URLs. If possible, please use HTTPS.",
+                UserWarning
+            )
         base_url = new_url + '/api/v1/'
 
         self.__requester = Requester(base_url, access_token)

Warn users that POST requests sent over non-HTTPS may fail
In some cases, Canvas's API responds unpredictably when sending POST requests over HTTP instead of HTTPS.

For example, the `account.create_course` call will return the `GET` response if made over HTTP instead of HTTPS. This breaks `CanvasObject`'s attempts to automatically create an object:

```
>>> a.create_course(course={'name': 'JSA_TST1337_Jesse_McBride'})
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/usr/local/lib/python2.7/site-packages/canvasapi/account.py", line 77, in create_course
    return Course(self._requester, response.json())
  File "/usr/local/lib/python2.7/site-packages/canvasapi/canvas_object.py", line 28, in __init__
    self.set_attributes(attributes)
  File "/usr/local/lib/python2.7/site-packages/canvasapi/canvas_object.py", line 68, in set_attributes
    for attribute, value in attributes.items():
AttributeError: 'list' object has no attribute 'items'
```

It seems wrong to stop users at every POST call if they've set their `CANVAS_URL` to `http://*`. Instead, I think we should hook into `Requester._post_request` and raise a warning that the API call may not succeed.
diff --git a/tests/fixtures/account.json b/tests/fixtures/account.json
index c2675e0..b0a7a13 100644
--- a/tests/fixtures/account.json
+++ b/tests/fixtures/account.json
@@ -204,7 +204,7 @@
 			}
 		],
 		"headers": {
-			"Link": "<http://example.com/api/v1/accounts/1/courses?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/accounts/1/courses?page=2&per_page=2>; rel=\"next\""
 		},
 		"status_code": 200
 	},
@@ -259,7 +259,7 @@
 			}
 		],
 		"headers": {
-			"Link": "<http://example.com/api/v1/accounts/1/external_tools?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/accounts/1/external_tools?page=2&per_page=2>; rel=\"next\""
 		},
 		"status_code": 200
 	},
@@ -319,7 +319,7 @@
 		],
 		"status_code": 200,
 		"headers": {
-			"Link": "<http://example.com/api/v1/accounts/1/groups?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/accounts/1/groups?page=2&per_page=2>; rel=\"next\""
 		}
 	},
 	"get_groups_context2": {
@@ -403,7 +403,7 @@
 			}
 		],
 		"headers": {
-			"Link": "<http://example.com/api/v1/accounts/1/reports?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/accounts/1/reports?page=2&per_page=2>; rel=\"next\""
 		},
 		"status_code": 200
 	},
@@ -434,7 +434,7 @@
 			}
 		],
 		"headers": {
-			"Link": "<http://example.com/api/v1/accounts/1/reports/sis_export_csv?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/accounts/1/reports/sis_export_csv?page=2&per_page=2>; rel=\"next\""
 		},
 		"status_code": 200
 	},
@@ -467,7 +467,7 @@
 			}
 		],
 		"headers": {
-			"Link": "<http://example.com/api/v1/accounts/1/sub_accounts?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/accounts/1/sub_accounts?page=2&per_page=2>; rel=\"next\""
 		},
 		"status_code": 200
 	},
@@ -510,7 +510,7 @@
 			}
 		],
 		"headers": {
-			"Link": "<http://example.com/api/v1/accounts/1/users?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/accounts/1/users?page=2&per_page=2>; rel=\"next\""
 		},
 		"status_code": 200
 	},
@@ -543,7 +543,7 @@
 			}
 		],
 		"headers": {
-			"Link": "<http://example.com/api/v1/accounts/1/users/1/account_notifications?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/accounts/1/users/1/account_notifications?page=2&per_page=2>; rel=\"next\""
 		},
 		"status_code": 200
 	},
@@ -644,7 +644,7 @@
 			}
 		],
 		"headers": {
-			"Link": "<http://example.com/api/v1/accounts/1/roles/?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/accounts/1/roles/?page=2&per_page=2>; rel=\"next\""
 		},
 		"status_code": 200
 	},
@@ -720,7 +720,7 @@
 			}
 		],
 		"headers": {
-			"Link": "<http://example.com/api/v1/accounts/1/logins/?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/accounts/1/logins/?page=2&per_page=2>; rel=\"next\""
 		},
 		"status_code": 200
 	},
@@ -957,7 +957,7 @@
 			}
 		],
 		"headers": {
-			"Link": "<http://example.com/api/v1/accounts/1/authentication_providers/?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/accounts/1/authentication_providers/?page=2&per_page=2>; rel=\"next\""
 		},
 		"status_code": 200
 	},
diff --git a/tests/fixtures/assignment.json b/tests/fixtures/assignment.json
index aec1393..0e2f6ba 100644
--- a/tests/fixtures/assignment.json
+++ b/tests/fixtures/assignment.json
@@ -80,7 +80,7 @@
 			"id": 1,
 			"assignment_id": 1,
 			"user_id": 1,
-			"html_url": "http://example.com/courses/1/assignments/1/submissions/1",
+			"html_url": "https://example.com/courses/1/assignments/1/submissions/1",
 			"submission_type": "online_upload"
 		},
 		"status_code": 200
diff --git a/tests/fixtures/authentication_providers.json b/tests/fixtures/authentication_providers.json
index 446fae1..9daf87b 100644
--- a/tests/fixtures/authentication_providers.json
+++ b/tests/fixtures/authentication_providers.json
@@ -15,7 +15,7 @@
 			}
 		],
 		"headers": {
-			"Link": "<http://example.com/api/v1/accounts/1/authentication_providers/?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/accounts/1/authentication_providers/?page=2&per_page=2>; rel=\"next\""
 		},
 		"status_code": 200
 	},
diff --git a/tests/fixtures/conversation.json b/tests/fixtures/conversation.json
index 3c1bc71..8fe3902 100644
--- a/tests/fixtures/conversation.json
+++ b/tests/fixtures/conversation.json
@@ -32,7 +32,7 @@
         ],
         "status_code": 200,
         "headers": {
-            "Link": "<http://example.com/api/v1/conversations?page=2&per_page=2>; rel=\"next\""
+            "Link": "<https://example.com/api/v1/conversations?page=2&per_page=2>; rel=\"next\""
         }
     },
     "get_conversations_2": {
diff --git a/tests/fixtures/course.json b/tests/fixtures/course.json
index 2c97bd4..da52dd4 100644
--- a/tests/fixtures/course.json
+++ b/tests/fixtures/course.json
@@ -13,7 +13,7 @@
 		"data": {
 			"id": 1,
 			"display_name": "My Blog",
-			"url": "http://example.com/myblog.rss"
+			"url": "https://example.com/myblog.rss"
 		},
 		"status_code": 200
 	},
@@ -62,7 +62,7 @@
 		"data": {
 			"id": 1,
 			"display_name": "My Blog",
-			"url": "http://example.com/myblog.rss"
+			"url": "https://example.com/myblog.rss"
 		},
 		"status_code": 200
 	},
@@ -96,7 +96,7 @@
 		],
 		"status_code": 200,
 		"headers": {
-			"Link": "<http://example.com/api/v1/courses/1/list_assignments?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/courses/1/list_assignments?page=2&per_page=2>; rel=\"next\""
 		}
 	},
 	"get_all_assignments2": {
@@ -199,7 +199,7 @@
 			}
 		],
 		"headers": {
-			"Link": "<http://example.com/api/v1/courses/1/external_tools?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/courses/1/external_tools?page=2&per_page=2>; rel=\"next\""
 		},
 		"status_code": 200
 	},
@@ -262,7 +262,7 @@
 			}
 		],
 		"headers": {
-			"Link": "<http://example.com/api/v1/courses/1/recent_students?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/courses/1/recent_students?page=2&per_page=2>; rel=\"next\""
 		},
 		"status_code": 200
 	},
@@ -351,7 +351,7 @@
             }
 		],
 		"headers": {
-			"Link": "<http://example.com/api/v1/courses/1/sections?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/courses/1/sections?page=2&per_page=2>; rel=\"next\""
 		},
 		"status_code": 200
 	},
@@ -405,7 +405,7 @@
 			}
 		],
 		"headers": {
-			"Link": "<http://example.com/api/v1/courses/1/search_users?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/courses/1/search_users?page=2&per_page=2>; rel=\"next\""
 		},
 		"status_code": 200
 	},
@@ -443,7 +443,7 @@
 		],
 		"status_code": 200,
 		"headers": {
-			"Link": "<http://example.com/api/v1/courses/1/list_enrollments?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/courses/1/list_enrollments?page=2&per_page=2>; rel=\"next\""
 		}
 	},
 	"list_enrollments_2": {
@@ -472,12 +472,12 @@
 			{
 				"id": 1,
 				"display_name": "My Blog",
-				"url": "http://example.com/myblog.rss"
+				"url": "https://example.com/myblog.rss"
 			},
 			{
 				"id": 2,
 				"display_name": "My Blog 2",
-				"url": "http://example.com/myblog2.rss"
+				"url": "https://example.com/myblog2.rss"
 			}
 		],
 		"status_code": 200
@@ -490,18 +490,18 @@
 				"id": 1,
 				"size": 2939,
 				"display_name": "File1.txt",
-				"url": "http://example.com/file_download"
+				"url": "https://example.com/file_download"
 			},
 			{
 				"id": 2,
 				"size": 18380,
 				"display_name": "File_2.png",
-				"url": "http://example.com/file_download2"
+				"url": "https://example.com/file_download2"
 			}
 		],
 		"status_code": 200,
 		"headers": {
-			"Link": "<http://example.com/api/v1/courses/1/files?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/courses/1/files?page=2&per_page=2>; rel=\"next\""
 		}
 	},
 	"list_course_files2": {
@@ -512,13 +512,13 @@
 				"id": 3,
 				"display_name": "File 3.jpg",
 				"size": 1298,
-				"url": "http://example.com/file_download3"
+				"url": "https://example.com/file_download3"
 			},
 			{
 				"id": 4,
 				"display_name": "File 4.docx",
 				"size": 88920,
-				"url": "http://example.com/file_download4"
+				"url": "https://example.com/file_download4"
 			}
 		],
 		"status_code": 200
@@ -559,7 +559,7 @@
 		],
 		"status_code": 200,
 		"headers": {
-			"Link": "<http://example.com/api/v1/courses/1/list_quizzes?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/courses/1/list_quizzes?page=2&per_page=2>; rel=\"next\""
 		}
 	},
 	"list_quizzes2": {
@@ -603,7 +603,7 @@
 			}
 		],
 		"headers": {
-			"Link": "<http://example.com/api/v1/courses/?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/courses/?page=2&per_page=2>; rel=\"next\""
 		},
 		"status_code": 200
 	},
@@ -741,14 +741,14 @@
 		],
 		"status_code": 200,
 		"headers": {
-			"Link": "<http://example.com/api/v1/courses/1/list_modules?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/courses/1/list_modules?page=2&per_page=2>; rel=\"next\""
 		}
 	},
 	"upload": {
 		"method": "POST",
 		"endpoint": "courses/1/files",
 		"data": {
-			"upload_url": "http://example.com/api/v1/files/upload_response_upload_url",
+			"upload_url": "https://example.com/api/v1/files/upload_response_upload_url",
 			"upload_params": {
 				"some_param": "param123",
 				"a_different_param": "param456"
@@ -838,7 +838,7 @@
 		],
 		"status_code": 200,
 		"headers": {
-			"Link": "<http://example.com/api/v1/courses/1/get_pages?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/courses/1/get_pages?page=2&per_page=2>; rel=\"next\""
 		}
 	},
 	"get_pages2": {
@@ -922,7 +922,7 @@
 		],
 		"status_code": 200,
 		"headers": {
-			"Link": "<http://example.com/api/v1/courses/1/groups?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/courses/1/groups?page=2&per_page=2>; rel=\"next\""
 		}
 	},
 	"list_groups_context2": {
@@ -1259,14 +1259,14 @@
 				"id": 1,
 				"assignments_id": 1,
 				"user_id": 1,
-				"html_url": "http://example.com/courses/1/assignments/1/submissions/1",
+				"html_url": "https://example.com/courses/1/assignments/1/submissions/1",
 				"submission_type": "online_upload"
 			},
 			{
 				"id": 2,
 				"assignments_id": 1,
 				"user_id": 2,
-				"html_url": "http://example.com/courses/1/assignments/1/submissions/2",
+				"html_url": "https://example.com/courses/1/assignments/1/submissions/2",
 				"submission_type": "online_upload"
 			}
 		],
@@ -1307,7 +1307,7 @@
 				"id": 1,
 				"assignments_id": 1,
 				"user_id": 1,
-				"html_url": "http://example.com/courses/1/assignments/1/submissions/1",
+				"html_url": "https://example.com/courses/1/assignments/1/submissions/1",
 				"submission_type": "online_upload",
 				"excused": true
 		},
diff --git a/tests/fixtures/current_user.json b/tests/fixtures/current_user.json
index 1bc6111..ff86ca8 100644
--- a/tests/fixtures/current_user.json
+++ b/tests/fixtures/current_user.json
@@ -23,7 +23,7 @@
 		],
 		"status_code": 200,
 		"headers": {
-			"Link": "<http://example.com/api/v1/users/self/groups?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/users/self/groups?page=2&per_page=2>; rel=\"next\""
 		}
 	},
 	"list_groups2": {
diff --git a/tests/fixtures/external_tool.json b/tests/fixtures/external_tool.json
index 1912a62..76d8ac5 100644
--- a/tests/fixtures/external_tool.json
+++ b/tests/fixtures/external_tool.json
@@ -95,7 +95,7 @@
 		"data": {
 			"id": "1",
 			"name": "External Tool #1 (Course)",
-			"url": "http://example.com/courses/1/external_tools/sessionless_launch/?verifier=1337"
+			"url": "https://example.com/courses/1/external_tools/sessionless_launch/?verifier=1337"
 		},
 		"status_code": 200
 	},
diff --git a/tests/fixtures/folder.json b/tests/fixtures/folder.json
index b7c2b00..7d015a0 100644
--- a/tests/fixtures/folder.json
+++ b/tests/fixtures/folder.json
@@ -39,7 +39,7 @@
         ],
         "status_code": 200,
         "headers": {
-            "Link": "<http://example.com/api/v1/folders/1/files?page=2&per_page=2>; rel=\"next\""
+            "Link": "<https://example.com/api/v1/folders/1/files?page=2&per_page=2>; rel=\"next\""
         }
     },
     "list_folder_files2": {
diff --git a/tests/fixtures/group.json b/tests/fixtures/group.json
index 27d2abd..6f08d97 100644
--- a/tests/fixtures/group.json
+++ b/tests/fixtures/group.json
@@ -108,7 +108,7 @@
 		],
 		"status_code": 200,
 		"headers": {
-			"Link": "<http://example.com/api/v1/groups/1/get_pages?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/groups/1/get_pages?page=2&per_page=2>; rel=\"next\""
 		}
 	},
 	"get_pages2": {
@@ -185,7 +185,7 @@
 			}
 		],
 		"headers": {
-			"Link": "<http://example.com/api/v1/groups/1/users?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/groups/1/users?page=2&per_page=2>; rel=\"next\""
 		},
 		"status_code": 200
 	},
@@ -208,7 +208,7 @@
 		"method": "POST",
 		"endpoint": "groups/1/files",
 		"data": {
-			"upload_url": "http://example.com/api/v1/files/upload_response_upload_url",
+			"upload_url": "https://example.com/api/v1/files/upload_response_upload_url",
 			"upload_params": {
 			    "some_param": "param123",
 			    "a_different_param": "param456"
@@ -271,7 +271,7 @@
 			}
 		],
 		"headers": {
-			"Link": "<http://example.com/api/v1/groups/1/memberships?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/groups/1/memberships?page=2&per_page=2>; rel=\"next\""
 		},
 		"status_code": 200
 	},
@@ -685,7 +685,7 @@
 		"data": {
 			"id": 1,
 			"display_name": "My Blog",
-			"url": "http://example.com/myblog.rss"
+			"url": "https://example.com/myblog.rss"
 		},
 		"status_code": 200
 	},
@@ -696,12 +696,12 @@
 			{
 				"id": 1,
 				"display_name": "My Blog",
-				"url": "http://example.com/myblog.rss"
+				"url": "https://example.com/myblog.rss"
 			},
 			{
 				"id": 2,
 				"display_name": "My Blog 2",
-				"url": "http://example.com/myblog2.rss"
+				"url": "https://example.com/myblog2.rss"
 			}
 		],
         "status_code": 200
@@ -712,7 +712,7 @@
 		"data": {
 			"id": 1,
 			"display_name": "My Blog",
-			"url": "http://example.com/myblog.rss"
+			"url": "https://example.com/myblog.rss"
 		},
 		"status_code": 200
 	},
@@ -733,7 +733,7 @@
 		],
 		"status_code": 200,
 		"headers": {
-			"Link": "<http://example.com/api/v1/groups/1/files?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/groups/1/files?page=2&per_page=2>; rel=\"next\""
 		}
 	},
 	"list_group_files2": {
diff --git a/tests/fixtures/login.json b/tests/fixtures/login.json
index 3e572bd..8942470 100644
--- a/tests/fixtures/login.json
+++ b/tests/fixtures/login.json
@@ -22,7 +22,7 @@
 			}
 		],
 		"headers": {
-			"Link": "<http://example.com/api/v1/accounts/1/logins/?page=2&per_page=1>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/accounts/1/logins/?page=2&per_page=1>; rel=\"next\""
 		},
 		"status_code": 200
 	},
diff --git a/tests/fixtures/module.json b/tests/fixtures/module.json
index 9369b5a..c7da4c2 100644
--- a/tests/fixtures/module.json
+++ b/tests/fixtures/module.json
@@ -52,7 +52,7 @@
 		],
 		"status_code": 200,
 		"headers": {
-			"Link": "<http://example.com/api/v1/courses/1/modules/1/items/list_module_items?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/courses/1/modules/1/items/list_module_items?page=2&per_page=2>; rel=\"next\""
 		}
 	},
 	"list_module_items2": {
diff --git a/tests/fixtures/outcome.json b/tests/fixtures/outcome.json
index 139d684..25a3444 100644
--- a/tests/fixtures/outcome.json
+++ b/tests/fixtures/outcome.json
@@ -69,7 +69,7 @@
             }
         ],
         "headers": {
-            "Link": "<http://example.com/api/v1/accounts/1/outcome_groups?page=2&per_page=2>; rel=\"next\""
+            "Link": "<https://example.com/api/v1/accounts/1/outcome_groups?page=2&per_page=2>; rel=\"next\""
         },
         "status_code": 200
     },
@@ -259,7 +259,7 @@
             }
         ],
         "headers": {
-            "Link": "<http://example.com/api/v1/courses/1/outcome_groups?page=2&per_page=2>; rel=\"next\""
+            "Link": "<https://example.com/api/v1/courses/1/outcome_groups?page=2&per_page=2>; rel=\"next\""
         },
         "status_code": 200
     },
diff --git a/tests/fixtures/page.json b/tests/fixtures/page.json
index c09d753..dac500f 100644
--- a/tests/fixtures/page.json
+++ b/tests/fixtures/page.json
@@ -44,7 +44,7 @@
 		],
 		"status_code": 200,
 		"headers": {
-			"Link": "<http://example.com/api/v1/courses/1/pages/my-url/revisions?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/courses/1/pages/my-url/revisions?page=2&per_page=2>; rel=\"next\""
 		}
 	},
 	"list_revisions2": {
diff --git a/tests/fixtures/paginated_list.json b/tests/fixtures/paginated_list.json
index 904906d..e37006f 100644
--- a/tests/fixtures/paginated_list.json
+++ b/tests/fixtures/paginated_list.json
@@ -45,7 +45,7 @@
 			}
 		],
 		"headers": {
-			"Link": "<http://example.com/api/v1/four_objects_two_pages?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/four_objects_two_pages?page=2&per_page=2>; rel=\"next\""
 		},
 		"status_code": 200
 	},
@@ -78,7 +78,7 @@
 			}
 		],
 		"headers": {
-			"Link": "<http://example.com/api/v1/six_objects_three_pages?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/six_objects_three_pages?page=2&per_page=2>; rel=\"next\""
 		},
 		"status_code": 200
 	},
@@ -96,7 +96,7 @@
 			}
 		],
 		"headers": {
-			"Link": "<http://example.com/api/v1/six_objects_three_pages?page=3&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/six_objects_three_pages?page=3&per_page=2>; rel=\"next\""
 		},
 		"status_code": 200
 	},
diff --git a/tests/fixtures/section.json b/tests/fixtures/section.json
index c4caecb..5c7df15 100644
--- a/tests/fixtures/section.json
+++ b/tests/fixtures/section.json
@@ -37,7 +37,7 @@
 		],
 		"status_code": 200,
 		"headers": {
-            "Link": "<http://example.com/api/v1/sections/1/list_enrollments?page=2&per_page=2>; rel=\"next\""
+            "Link": "<https://example.com/api/v1/sections/1/list_enrollments?page=2&per_page=2>; rel=\"next\""
         }
 	},
 	"list_enrollments_2": {
@@ -101,7 +101,7 @@
 			"id": 1,
 			"assignment_id": 1,
 			"user_id": 1,
-			"html_url": "http://example.com/sections/1/assignments/1/submissions/1",
+			"html_url": "https://example.com/sections/1/assignments/1/submissions/1",
 			"submission_type": "online_upload"
 		},
 		"status_code": 200
@@ -114,14 +114,14 @@
 				"id": 1,
 				"assignments_id": 1,
 				"user_id": 1,
-				"html_url": "http://example.com/sections/1/assignments/1/submissions/1",
+				"html_url": "https://example.com/sections/1/assignments/1/submissions/1",
 				"submission_type": "online_upload"
 			},
 			{
 				"id": 2,
 				"assignments_id": 1,
 				"user_id": 2,
-				"html_url": "http://example.com/sections/1/assignments/1/submissions/2",
+				"html_url": "https://example.com/sections/1/assignments/1/submissions/2",
 				"submission_type": "online_upload"
 			}
 		],
@@ -135,14 +135,14 @@
 				"id": 1,
 				"assignments_id": 1,
 				"user_id": 1,
-				"html_url": "http://example.com/sections/1/assignments/1/submissions/1",
+				"html_url": "https://example.com/sections/1/assignments/1/submissions/1",
 				"submission_type": "online_upload"
 			},
 			{
 				"id": 2,
 				"assignments_id": 1,
 				"user_id": 2,
-				"html_url": "http://example.com/sections/1/assignments/1/submissions/2",
+				"html_url": "https://example.com/sections/1/assignments/1/submissions/2",
 				"submission_type": "online_upload"
 			}
 		],
@@ -155,7 +155,7 @@
 				"id": 1,
 				"assignments_id": 1,
 				"user_id": 1,
-				"html_url": "http://example.com/sections/1/assignments/1/submissions/1",
+				"html_url": "https://example.com/sections/1/assignments/1/submissions/1",
 				"submission_type": "online_upload"
 		},
 		"status_code": 200
@@ -167,7 +167,7 @@
 				"id": 1,
 				"assignments_id": 1,
 				"user_id": 1,
-				"html_url": "http://example.com/sections/1/assignments/1/submissions/1",
+				"html_url": "https://example.com/sections/1/assignments/1/submissions/1",
 				"submission_type": "online_upload",
 				"excused": true
 		},
diff --git a/tests/fixtures/submission.json b/tests/fixtures/submission.json
index 1d18224..f2610b3 100644
--- a/tests/fixtures/submission.json
+++ b/tests/fixtures/submission.json
@@ -6,7 +6,7 @@
 			"id": 1,
 			"assignment_id": 1,
 			"user_id": 1,
-			"html_url": "http://example.com/courses/1/assignments/1/submissions/1",
+			"html_url": "https://example.com/courses/1/assignments/1/submissions/1",
 			"submission_type": "online_upload"
 		},
 		"status_code": 200
@@ -18,7 +18,7 @@
 				"id": 1,
 				"assignment_id": 1,
 				"user_id": 1,
-				"html_url": "http://example.com/sections/1/assignments/1/submissions/1",
+				"html_url": "https://example.com/sections/1/assignments/1/submissions/1",
 				"submission_type": "online_upload"
 		},
 		"status_code": 200
@@ -31,14 +31,14 @@
 				"id": 1,
 				"assignments_id": 1,
 				"user_id": 1,
-				"html_url": "http://example.com/courses/1/assignments/1/submissions/1",
+				"html_url": "https://example.com/courses/1/assignments/1/submissions/1",
 				"submission_type": "online_upload"
 			},
 			{
 				"id": 2,
 				"assignments_id": 1,
 				"user_id": 2,
-				"html_url": "http://example.com/courses/1/assignments/1/submissions/2",
+				"html_url": "https://example.com/courses/1/assignments/1/submissions/2",
 				"submission_type": "online_upload"
 			}
 		],
@@ -48,7 +48,7 @@
 		"method": "POST",
 		"endpoint": "courses/1/assignments/1/submissions/1/comments/files",
 		"data": {
-			"upload_url": "http://example.com/api/v1/files/upload_response_upload_url",
+			"upload_url": "https://example.com/api/v1/files/upload_response_upload_url",
 			"upload_params": {
 				"some_param": "param123",
 				"a_different_param": "param456"
@@ -70,7 +70,7 @@
 				"id": 1,
 				"assignments_id": 1,
 				"user_id": 1,
-				"html_url": "http://example.com/courses/1/assignments/1/submissions/1",
+				"html_url": "https://example.com/courses/1/assignments/1/submissions/1",
 				"submission_type": "online_upload",
 				"excused": true
 		},
diff --git a/tests/fixtures/uploader.json b/tests/fixtures/uploader.json
index efcdb10..ccea364 100644
--- a/tests/fixtures/uploader.json
+++ b/tests/fixtures/uploader.json
@@ -3,7 +3,7 @@
         "method": "POST",
         "endpoint": "upload_response",
         "data": {
-            "upload_url": "http://example.com/api/v1/upload_response_upload_url",
+            "upload_url": "https://example.com/api/v1/upload_response_upload_url",
             "upload_params": {
                 "some_param": "param123",
                 "a_different_param": "param456"
@@ -35,7 +35,7 @@
         "method": "POST",
         "endpoint": "upload_response_fail",
         "data": {
-            "upload_url": "http://example.com/api/v1/upload_fail",
+            "upload_url": "https://example.com/api/v1/upload_fail",
             "upload_params": {
                 "some_param": "param123",
                 "a_different_param": "param456"
diff --git a/tests/fixtures/user.json b/tests/fixtures/user.json
index 4aa36b0..3f9bb01 100644
--- a/tests/fixtures/user.json
+++ b/tests/fixtures/user.json
@@ -32,7 +32,7 @@
 			}
 		],
 		"headers": {
-			"Link": "<http://example.com/api/v1/users/1/avatars?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/users/1/avatars?page=2&per_page=2>; rel=\"next\""
 		},
 		"status_code": 200
 	},
@@ -117,7 +117,7 @@
 		],
 		"status_code": 200,
 		"headers": {
-			"Link": "<http://example.com/api/v1/users/self/course_nicknames?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/users/self/course_nicknames?page=2&per_page=2>; rel=\"next\""
 		}
 	},
 	"course_nicknames_delete": {
@@ -161,7 +161,7 @@
 			}
 		],
 		"headers": {
-			"Link": "<http://example.com/api/v1/users/1/courses?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/users/1/courses?page=2&per_page=2>; rel=\"next\""
 		},
 		"status_code": 200
 	},
@@ -287,7 +287,7 @@
 		],
 		"status_code": 200,
 		"headers": {
-			"Link": "<http://example.com/api/v1/users/1/courses/1/list_assignments?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/users/1/courses/1/list_assignments?page=2&per_page=2>; rel=\"next\""
 		}
 	},
 	"get_user_assignments2": {
@@ -326,7 +326,7 @@
 		],
 		"status_code": 200,
 		"headers": {
-			"Link": "<http://example.com/api/v1/users/1/files?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/users/1/files?page=2&per_page=2>; rel=\"next\""
 		}
 	},
 	"get_user_files2": {
@@ -386,7 +386,7 @@
 		],
 		"status_code": 200,
 		"headers": {
-			"Link": "<http://example.com/api/v1/users/1/communication_channels?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/users/1/communication_channels?page=2&per_page=2>; rel=\"next\""
 		}
 	},
 	"list_comm_channels2": {
@@ -427,7 +427,7 @@
 		],
 		"status_code": 200,
 		"headers": {
-			"Link": "<http://example.com/api/v1/users/1/list_enrollments?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/users/1/list_enrollments?page=2&per_page=2>; rel=\"next\""
 		}
 	},
 	"list_enrollments_2": {
@@ -490,7 +490,7 @@
 			}
 		],
 		"headers": {
-			"Link": "<http://example.com/api/v1/users/1/missing_submissions?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/users/1/missing_submissions?page=2&per_page=2>; rel=\"next\""
 		},
 		"status_code": 200
 	},
@@ -517,19 +517,19 @@
 		"data": [
 			{
 				"id": "123fb561-c9ce-7ed9-8e42-31e0aab47e18",
-				"url": "http://example.com/test",
+				"url": "https://example.com/test",
 				"created_at": "2013-01-01T12:00:00Z",
 				"context_type": "Course"
 			},
 			{
 				"id": "4c7f44f9-41b9-ff59-03ad-3215cb246966",
-				"url": "http://example.com/hello",
+				"url": "https://example.com/hello",
 				"created_at": "2014-01-01T12:00:00Z",
 				"context_type": "User"
 			}
 		],
 		"headers": {
-			"Link": "<http://example.com/api/v1/users/1/page_views?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/users/1/page_views?page=2&per_page=2>; rel=\"next\""
 		},
 		"status_code": 200
 	},
@@ -539,13 +539,13 @@
 		"data": [
 			{
 				"id": "77f111c9-5b0b-46cb-92a2-34108ebe7b5b",
-				"url": "http://example.com/login",
+				"url": "https://example.com/login",
 				"created_at": "2015-01-01T12:00:00Z",
 				"context_type": null
 			},
 			{
 				"id": "69ec8b6f-e123-2af8-dafb-561fdc711f6b",
-				"url": "http://example.com/logout",
+				"url": "https://example.com/logout",
 				"created_at": "2016-01-01T12:00:00Z",
 				"context_type": "UserProfile"
 			}
@@ -620,7 +620,7 @@
 		"method": "POST",
 		"endpoint": "users/1/files",
 		"data": {
-			"upload_url": "http://example.com/api/v1/files/upload_response_upload_url",
+			"upload_url": "https://example.com/api/v1/files/upload_response_upload_url",
 			"upload_params": {
 				"some_param": "param123",
 				"a_different_param": "param456"
@@ -649,7 +649,7 @@
 			}
 		],
 		"headers": {
-			"Link": "<http://example.com/api/v1/users/1/logins/?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/users/1/logins/?page=2&per_page=2>; rel=\"next\""
 		},
 		"status_code": 200
 	},
@@ -683,7 +683,7 @@
 			}
 		],
 		"headers": {
-			"Link": "<http://example.com/api/v1/users/1/observees?page=2&per_page=2>; rel=\"next\""
+			"Link": "<https://example.com/api/v1/users/1/observees?page=2&per_page=2>; rel=\"next\""
 		},
 		"status_code": 200
 	},
diff --git a/tests/settings.py b/tests/settings.py
index e67c5f6..ad1593f 100644
--- a/tests/settings.py
+++ b/tests/settings.py
@@ -1,7 +1,8 @@
 from __future__ import absolute_import, division, print_function, unicode_literals
 
-BASE_URL = 'http://example.com'
-BASE_URL_WITH_VERSION = 'http://example.com/api/v1/'
+BASE_URL = 'https://example.com'
+BASE_URL_WITH_VERSION = 'https://example.com/api/v1/'
+BASE_URL_AS_HTTP = 'http://example.com'
 API_KEY = '123'
 
 INVALID_ID = 9001
diff --git a/tests/test_canvas.py b/tests/test_canvas.py
index 058bb46..4af23e9 100644
--- a/tests/test_canvas.py
+++ b/tests/test_canvas.py
@@ -40,6 +40,12 @@ class TestCanvas(unittest.TestCase):
             Canvas(settings.BASE_URL_WITH_VERSION, settings.API_KEY)
             self.assertTrue(issubclass(w[0].category, DeprecationWarning))
 
+    # Canvas()
+    def test_init_warns_when_url_is_http(self, m):
+        with warnings.catch_warnings(record=True) as w:
+            Canvas(settings.BASE_URL_AS_HTTP, settings.API_KEY)
+            self.assertTrue(issubclass(w[0].category, UserWarning))
+
     # create_account()
     def test_create_account(self, m):
         register_uris({'account': ['create']}, m)
diff --git a/tests/test_course.py b/tests/test_course.py
index 5e679eb..667c05b 100644
--- a/tests/test_course.py
+++ b/tests/test_course.py
@@ -1029,7 +1029,7 @@ class TestCourse(unittest.TestCase):
     def test_create_external_feed(self, m):
         register_uris({'course': ['create_external_feed']}, m)
 
-        url_str = "http://example.com/myblog.rss"
+        url_str = "https://example.com/myblog.rss"
         response = self.course.create_external_feed(url=url_str)
         self.assertIsInstance(response, ExternalFeed)
 
diff --git a/tests/test_group.py b/tests/test_group.py
index ade9c8e..4a41acc 100644
--- a/tests/test_group.py
+++ b/tests/test_group.py
@@ -419,7 +419,7 @@ class TestGroup(unittest.TestCase):
     def test_create_external_feed(self, m):
         register_uris({'group': ['create_external_feed']}, m)
 
-        url_str = "http://example.com/myblog.rss"
+        url_str = "https://example.com/myblog.rss"
         response = self.group.create_external_feed(url=url_str)
         self.assertIsInstance(response, ExternalFeed)
 

pip install -e .[dev]
parse_log_pytest
requirements.txt
coverage flake8 pycodestyle pyflakes pytest
apt-get update apt-get install -y gcc
3.6
requirements.txt dev_requirements.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
alabaster==0.7.13
attrs==22.2.0
Babel==2.11.0
-e git+https://github.com/ucfopen/canvasapi.git@141962439d0a22318c1ae339fbf0e71a725d51a9#egg=canvasapi
certifi==2021.5.30
charset-normalizer==2.0.12
coverage==6.2
docutils==0.17.1
flake8==5.0.4
idna==3.10
imagesize==1.4.1
importlib-metadata==4.2.0
iniconfig==1.1.1
Jinja2==3.0.3
MarkupSafe==2.0.1
mccabe==0.7.0
packaging==21.3
pluggy==1.0.0
py==1.11.0
pycodestyle==2.9.1
pyflakes==2.5.0
Pygments==2.14.0
pyparsing==3.1.4
pytest==7.0.1
pytz==2025.2
requests==2.27.1
requests-mock==1.12.1
six==1.17.0
snowballstemmer==2.2.0
Sphinx==4.3.2
sphinx-rtd-theme==1.3.0
sphinxcontrib-applehelp==1.0.2
sphinxcontrib-devhelp==1.0.2
sphinxcontrib-htmlhelp==2.0.0
sphinxcontrib-jquery==4.1
sphinxcontrib-jsmath==1.0.1
sphinxcontrib-qthelp==1.0.3
sphinxcontrib-serializinghtml==1.1.5
tomli==1.2.3
typing_extensions==4.1.1
urllib3==1.26.20
zipp==3.6.0

name: canvasapi
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2021.5.30=py36h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.3=he6710b0_2
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - pip=21.2.2=py36h06a4308_0
  - python=3.6.13=h12debd9_1
  - readline=8.2=h5eee18b_0
  - setuptools=58.0.4=py36h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.37.1=pyhd3eb1b0_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - alabaster==0.7.13
      - attrs==22.2.0
      - babel==2.11.0
      - charset-normalizer==2.0.12
      - coverage==6.2
      - docutils==0.17.1
      - flake8==5.0.4
      - idna==3.10
      - imagesize==1.4.1
      - importlib-metadata==4.2.0
      - iniconfig==1.1.1
      - jinja2==3.0.3
      - markupsafe==2.0.1
      - mccabe==0.7.0
      - packaging==21.3
      - pluggy==1.0.0
      - py==1.11.0
      - pycodestyle==2.9.1
      - pyflakes==2.5.0
      - pygments==2.14.0
      - pyparsing==3.1.4
      - pytest==7.0.1
      - pytz==2025.2
      - requests==2.27.1
      - requests-mock==1.12.1
      - six==1.17.0
      - snowballstemmer==2.2.0
      - sphinx==4.3.2
      - sphinx-rtd-theme==1.3.0
      - sphinxcontrib-applehelp==1.0.2
      - sphinxcontrib-devhelp==1.0.2
      - sphinxcontrib-htmlhelp==2.0.0
      - sphinxcontrib-jquery==4.1
      - sphinxcontrib-jsmath==1.0.1
      - sphinxcontrib-qthelp==1.0.3
      - sphinxcontrib-serializinghtml==1.1.5
      - tomli==1.2.3
      - typing-extensions==4.1.1
      - urllib3==1.26.20
      - zipp==3.6.0
prefix: /opt/conda/envs/canvasapi

tests/test_canvas.py::TestCanvas::test_init_warns_when_url_is_http
tests/test_canvas.py::TestCanvas::test_init_deprecate_url_contains_version tests/test_canvas.py::TestCanvas::test_list_appointment_groups tests/test_canvas.py::TestCanvas::test_list_calendar_events tests/test_canvas.py::TestCanvas::test_list_group_participants tests/test_canvas.py::TestCanvas::test_list_user_participants tests/test_course.py::TestCourse::test_get_submission tests/test_course.py::TestCourse::test_list_assignment_groups tests/test_course.py::TestCourse::test_list_external_feeds tests/test_course.py::TestCourse::test_list_files tests/test_course.py::TestCourse::test_list_folders tests/test_course.py::TestCourse::test_list_gradeable_students tests/test_course.py::TestCourse::test_list_group_categories tests/test_course.py::TestCourse::test_list_groups tests/test_course.py::TestCourse::test_list_multiple_submissions tests/test_course.py::TestCourse::test_list_rubrics tests/test_course.py::TestCourse::test_list_sections tests/test_course.py::TestCourse::test_list_submissions tests/test_course.py::TestCourse::test_list_tabs tests/test_course.py::TestCourse::test_mark_submission_as_read tests/test_course.py::TestCourse::test_mark_submission_as_unread tests/test_course.py::TestCourse::test_submit_assignment tests/test_course.py::TestCourse::test_submit_assignment_fail tests/test_course.py::TestCourse::test_update_submission tests/test_course.py::TestCourse::test_update_tab tests/test_group.py::TestGroup::test_list_external_feeds tests/test_group.py::TestGroup::test_list_files tests/test_group.py::TestGroup::test_list_folders tests/test_group.py::TestGroup::test_list_memberships tests/test_group.py::TestGroup::test_list_tabs tests/test_group.py::TestGroup::test_list_users tests/test_group.py::TestGroupCategory::test_list_groups tests/test_group.py::TestGroupCategory::test_list_users
tests/test_canvas.py::TestCanvas::test_clear_course_nicknames tests/test_canvas.py::TestCanvas::test_conversations_batch_update tests/test_canvas.py::TestCanvas::test_conversations_batch_updated_fail_on_event tests/test_canvas.py::TestCanvas::test_conversations_batch_updated_fail_on_ids tests/test_canvas.py::TestCanvas::test_conversations_get_running_batches tests/test_canvas.py::TestCanvas::test_conversations_mark_all_as_read tests/test_canvas.py::TestCanvas::test_conversations_unread_count tests/test_canvas.py::TestCanvas::test_create_account tests/test_canvas.py::TestCanvas::test_create_appointment_group tests/test_canvas.py::TestCanvas::test_create_appointment_group_fail_on_context_codes tests/test_canvas.py::TestCanvas::test_create_appointment_group_fail_on_title tests/test_canvas.py::TestCanvas::test_create_calendar_event tests/test_canvas.py::TestCanvas::test_create_calendar_event_fail tests/test_canvas.py::TestCanvas::test_create_conversation tests/test_canvas.py::TestCanvas::test_create_conversation_multiple_people tests/test_canvas.py::TestCanvas::test_create_group tests/test_canvas.py::TestCanvas::test_get_account tests/test_canvas.py::TestCanvas::test_get_account_fail tests/test_canvas.py::TestCanvas::test_get_account_sis_id tests/test_canvas.py::TestCanvas::test_get_accounts tests/test_canvas.py::TestCanvas::test_get_activity_stream_summary tests/test_canvas.py::TestCanvas::test_get_announcements tests/test_canvas.py::TestCanvas::test_get_appointment_group tests/test_canvas.py::TestCanvas::test_get_appointment_groups tests/test_canvas.py::TestCanvas::test_get_calendar_event tests/test_canvas.py::TestCanvas::test_get_calendar_events tests/test_canvas.py::TestCanvas::test_get_conversation tests/test_canvas.py::TestCanvas::test_get_conversations tests/test_canvas.py::TestCanvas::test_get_course tests/test_canvas.py::TestCanvas::test_get_course_accounts tests/test_canvas.py::TestCanvas::test_get_course_fail tests/test_canvas.py::TestCanvas::test_get_course_nickname tests/test_canvas.py::TestCanvas::test_get_course_nickname_fail tests/test_canvas.py::TestCanvas::test_get_course_nicknames tests/test_canvas.py::TestCanvas::test_get_course_non_unicode_char tests/test_canvas.py::TestCanvas::test_get_course_sis_id tests/test_canvas.py::TestCanvas::test_get_course_with_start_date tests/test_canvas.py::TestCanvas::test_get_courses tests/test_canvas.py::TestCanvas::test_get_file tests/test_canvas.py::TestCanvas::test_get_group tests/test_canvas.py::TestCanvas::test_get_group_category tests/test_canvas.py::TestCanvas::test_get_group_participants tests/test_canvas.py::TestCanvas::test_get_group_sis_id tests/test_canvas.py::TestCanvas::test_get_outcome tests/test_canvas.py::TestCanvas::test_get_outcome_group tests/test_canvas.py::TestCanvas::test_get_progress tests/test_canvas.py::TestCanvas::test_get_root_outcome_group tests/test_canvas.py::TestCanvas::test_get_section tests/test_canvas.py::TestCanvas::test_get_section_sis_id tests/test_canvas.py::TestCanvas::test_get_todo_items tests/test_canvas.py::TestCanvas::test_get_upcoming_events tests/test_canvas.py::TestCanvas::test_get_user tests/test_canvas.py::TestCanvas::test_get_user_by_id_type tests/test_canvas.py::TestCanvas::test_get_user_fail tests/test_canvas.py::TestCanvas::test_get_user_participants tests/test_canvas.py::TestCanvas::test_get_user_self tests/test_canvas.py::TestCanvas::test_reserve_time_slot tests/test_canvas.py::TestCanvas::test_reserve_time_slot_by_participant_id tests/test_canvas.py::TestCanvas::test_search_accounts tests/test_canvas.py::TestCanvas::test_search_all_courses tests/test_canvas.py::TestCanvas::test_search_recipients tests/test_canvas.py::TestCanvas::test_set_course_nickname tests/test_course.py::TestCourse::test__str__ tests/test_course.py::TestCourse::test_add_grading_standards tests/test_course.py::TestCourse::test_add_grading_standards_empty_list tests/test_course.py::TestCourse::test_add_grading_standards_missing_name_key tests/test_course.py::TestCourse::test_add_grading_standards_missing_value_key tests/test_course.py::TestCourse::test_add_grading_standards_non_dict_list tests/test_course.py::TestCourse::test_conclude tests/test_course.py::TestCourse::test_create_assignment tests/test_course.py::TestCourse::test_create_assignment_fail tests/test_course.py::TestCourse::test_create_assignment_group tests/test_course.py::TestCourse::test_create_content_migration tests/test_course.py::TestCourse::test_create_content_migration_bad_migration_type tests/test_course.py::TestCourse::test_create_content_migration_migrator tests/test_course.py::TestCourse::test_create_course_section tests/test_course.py::TestCourse::test_create_discussion_topic tests/test_course.py::TestCourse::test_create_external_feed tests/test_course.py::TestCourse::test_create_external_tool tests/test_course.py::TestCourse::test_create_folder tests/test_course.py::TestCourse::test_create_group_category tests/test_course.py::TestCourse::test_create_module tests/test_course.py::TestCourse::test_create_module_fail tests/test_course.py::TestCourse::test_create_page tests/test_course.py::TestCourse::test_create_page_fail tests/test_course.py::TestCourse::test_create_quiz tests/test_course.py::TestCourse::test_create_quiz_fail tests/test_course.py::TestCourse::test_delete tests/test_course.py::TestCourse::test_delete_external_feed tests/test_course.py::TestCourse::test_edit_front_page tests/test_course.py::TestCourse::test_enroll_user tests/test_course.py::TestCourse::test_get_assignment tests/test_course.py::TestCourse::test_get_assignment_group tests/test_course.py::TestCourse::test_get_assignment_groups tests/test_course.py::TestCourse::test_get_assignments tests/test_course.py::TestCourse::test_get_content_migration tests/test_course.py::TestCourse::test_get_content_migrations tests/test_course.py::TestCourse::test_get_course_level_assignment_data tests/test_course.py::TestCourse::test_get_course_level_participation_data tests/test_course.py::TestCourse::test_get_course_level_student_summary_data tests/test_course.py::TestCourse::test_get_discussion_topic tests/test_course.py::TestCourse::test_get_discussion_topics tests/test_course.py::TestCourse::test_get_enrollments tests/test_course.py::TestCourse::test_get_external_feeds tests/test_course.py::TestCourse::test_get_external_tool tests/test_course.py::TestCourse::test_get_external_tools tests/test_course.py::TestCourse::test_get_file tests/test_course.py::TestCourse::test_get_files tests/test_course.py::TestCourse::test_get_folder tests/test_course.py::TestCourse::test_get_folders tests/test_course.py::TestCourse::test_get_full_discussion_topic tests/test_course.py::TestCourse::test_get_grading_standards tests/test_course.py::TestCourse::test_get_group_categories tests/test_course.py::TestCourse::test_get_groups tests/test_course.py::TestCourse::test_get_migration_systems tests/test_course.py::TestCourse::test_get_module tests/test_course.py::TestCourse::test_get_modules tests/test_course.py::TestCourse::test_get_multiple_submissions tests/test_course.py::TestCourse::test_get_multiple_submissions_grouped_param tests/test_course.py::TestCourse::test_get_outcome_group tests/test_course.py::TestCourse::test_get_outcome_groups_in_context tests/test_course.py::TestCourse::test_get_outcome_links_in_context tests/test_course.py::TestCourse::test_get_outcome_result_rollups tests/test_course.py::TestCourse::test_get_outcome_results tests/test_course.py::TestCourse::test_get_page tests/test_course.py::TestCourse::test_get_pages tests/test_course.py::TestCourse::test_get_quiz tests/test_course.py::TestCourse::test_get_quiz_fail tests/test_course.py::TestCourse::test_get_quizzes tests/test_course.py::TestCourse::test_get_recent_students tests/test_course.py::TestCourse::test_get_root_outcome_group tests/test_course.py::TestCourse::test_get_rubric tests/test_course.py::TestCourse::test_get_rubrics tests/test_course.py::TestCourse::test_get_section tests/test_course.py::TestCourse::test_get_sections tests/test_course.py::TestCourse::test_get_settings tests/test_course.py::TestCourse::test_get_single_grading_standard tests/test_course.py::TestCourse::test_get_tabs tests/test_course.py::TestCourse::test_get_user tests/test_course.py::TestCourse::test_get_user_id_type tests/test_course.py::TestCourse::test_get_user_in_a_course_level_assignment_data tests/test_course.py::TestCourse::test_get_user_in_a_course_level_messaging_data tests/test_course.py::TestCourse::test_get_user_in_a_course_level_participation_data tests/test_course.py::TestCourse::test_get_users tests/test_course.py::TestCourse::test_preview_html tests/test_course.py::TestCourse::test_reorder_pinned_topics tests/test_course.py::TestCourse::test_reorder_pinned_topics_comma_separated_string tests/test_course.py::TestCourse::test_reorder_pinned_topics_invalid_input tests/test_course.py::TestCourse::test_reorder_pinned_topics_tuple tests/test_course.py::TestCourse::test_reset tests/test_course.py::TestCourse::test_set_extensions_empty_list tests/test_course.py::TestCourse::test_set_extensions_missing_key tests/test_course.py::TestCourse::test_set_extensions_non_dicts tests/test_course.py::TestCourse::test_set_extensions_not_list tests/test_course.py::TestCourse::test_set_quiz_extensions tests/test_course.py::TestCourse::test_show_front_page tests/test_course.py::TestCourse::test_submissions_bulk_update tests/test_course.py::TestCourse::test_update tests/test_course.py::TestCourse::test_update_settings tests/test_course.py::TestCourse::test_upload tests/test_course.py::TestCourseNickname::test__str__ tests/test_course.py::TestCourseNickname::test_remove tests/test_group.py::TestGroup::test__str__ tests/test_group.py::TestGroup::test_create_content_migration tests/test_group.py::TestGroup::test_create_content_migration_bad_migration_type tests/test_group.py::TestGroup::test_create_content_migration_migrator tests/test_group.py::TestGroup::test_create_discussion_topic tests/test_group.py::TestGroup::test_create_external_feed tests/test_group.py::TestGroup::test_create_folder tests/test_group.py::TestGroup::test_create_membership tests/test_group.py::TestGroup::test_create_page tests/test_group.py::TestGroup::test_create_page_fail tests/test_group.py::TestGroup::test_delete tests/test_group.py::TestGroup::test_delete_external_feed tests/test_group.py::TestGroup::test_edit tests/test_group.py::TestGroup::test_edit_front_page tests/test_group.py::TestGroup::test_get_activity_stream_summary tests/test_group.py::TestGroup::test_get_content_migration tests/test_group.py::TestGroup::test_get_content_migrations tests/test_group.py::TestGroup::test_get_discussion_topic tests/test_group.py::TestGroup::test_get_discussion_topics tests/test_group.py::TestGroup::test_get_external_feeds tests/test_group.py::TestGroup::test_get_file tests/test_group.py::TestGroup::test_get_files tests/test_group.py::TestGroup::test_get_folder tests/test_group.py::TestGroup::test_get_folders tests/test_group.py::TestGroup::test_get_full_discussion_topic tests/test_group.py::TestGroup::test_get_membership tests/test_group.py::TestGroup::test_get_memberships tests/test_group.py::TestGroup::test_get_migration_systems tests/test_group.py::TestGroup::test_get_page tests/test_group.py::TestGroup::test_get_pages tests/test_group.py::TestGroup::test_get_tabs tests/test_group.py::TestGroup::test_get_users tests/test_group.py::TestGroup::test_invite tests/test_group.py::TestGroup::test_preview_processed_html tests/test_group.py::TestGroup::test_remove_user tests/test_group.py::TestGroup::test_reorder_pinned_topics tests/test_group.py::TestGroup::test_reorder_pinned_topics_comma_separated_string tests/test_group.py::TestGroup::test_reorder_pinned_topics_invalid_input tests/test_group.py::TestGroup::test_reorder_pinned_topics_tuple tests/test_group.py::TestGroup::test_show_front_page tests/test_group.py::TestGroup::test_update_membership tests/test_group.py::TestGroup::test_upload tests/test_group.py::TestGroupMembership::test__str__ tests/test_group.py::TestGroupMembership::test_remove_self tests/test_group.py::TestGroupMembership::test_remove_user tests/test_group.py::TestGroupMembership::test_update tests/test_group.py::TestGroupCategory::test__str__ tests/test_group.py::TestGroupCategory::test_assign_members tests/test_group.py::TestGroupCategory::test_create_group tests/test_group.py::TestGroupCategory::test_delete_category tests/test_group.py::TestGroupCategory::test_get_groups tests/test_group.py::TestGroupCategory::test_get_users tests/test_group.py::TestGroupCategory::test_update
canvasapi/canvas.py
canvasapi/canvas.py