Side Effects: Setting Up
00:00
I’m going to make a little more space in this file, just come down here, and we’ll write a new function. Let’s use the requests
module, so we’ll import requests
.
00:12
And with the theme of this calendar thing we have going on, we’ll define a function called get_holidays()
. get_holidays()
will take no parameters. And we’ll make a request, let’s say r = requests.get()
.
00:28
And let’s make up a little server here, let’s say we’re running on localhost/api/holidays
.
00:37
If you’re not familiar with the requests
module, it provides a library of functions to make HTTP requests and a lot more. But essentially, this r
is making a GET
request to this URL.
00:52
After it makes this GET
request, it’ll check the status code. So we’ll say if r.status_code == 200
—meaning a successful response—we’ll return that response as JSON, and anything else will just return None
.
01:14
So we have this little get_holidays()
function that hits an API, and who knows what this API does, but we check the response code. If it’s successful, we’ll return a dictionary of its JSON. And say we want to now test this function.
01:29
Let’s use the built-in unittest
framework and we’ll go down and make a class called TestGetHolidays
, and this will inherit from unittest.TestCase
.
01:46
We will need to import unittest
—let’s import unittest
—and if you’re unfamiliar with the unittest
framework, you have to create a class and then you define functions within that class for each test case.
02:02
So this class will represent all of our unit tests for the get_holidays()
function—that’s why I named it get TestGetHolidays
. And for our first test, let’s define a function called .test_get_holidays_connection()
.
02:20
You have to give it self
. And this is where we start to play with the side effects, but before we do that, let’s just pass
here for a second and let’s see what happens when we actually call this get_holidays()
function as it is.
Become a Member to join the conversation.