Skip to content

Commit da192a7

Browse files
committed
Convert gym unit test mock from Python str to HTML
Convert the mock for gym unit tests from a Python string to an HTML file. This makes the mocking of gym unit tests more consistent with how unit tests for other modules are mocked. This also avoids unnecessarily mocking entire module functions, as only the HTTP requests made by those functions need to be mocked. Since the mock is only supposed to contain an HTML HTTP response, it makes more sense to keep it as HTML.
1 parent 54900d6 commit da192a7

File tree

3 files changed

+141
-134
lines changed

3 files changed

+141
-134
lines changed

tests/gym_test.py

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,22 @@
1+
from pathlib import Path
12
import unittest
23
import responses
4+
35
from pittapi import gym
4-
from tests.mocks.gym_mocks import mock_gym_html
6+
7+
SAMPLE_PATH = Path() / "tests" / "samples"
58

69

710
class GymTest(unittest.TestCase):
811
def __init__(self, *args, **kwargs):
912
unittest.TestCase.__init__(self, *args, **kwargs)
1013

11-
@responses.activate
12-
def test_fetch_gym_info(self):
13-
14-
responses.add(responses.GET, gym.GYM_URL, body=mock_gym_html, status=200)
14+
with open(SAMPLE_PATH / "gym.html", "r") as f:
15+
self.mock_gym_data = f.read()
1516

16-
gym_info = gym.get_all_gyms_info()
17+
@responses.activate
18+
def test_get_all_gyms_info(self):
19+
responses.add(responses.GET, gym.GYM_URL, body=self.mock_gym_data, status=200)
1720
expected_info = [
1821
gym.Gym(name="Baierl Rec Center", last_updated="07/09/2024 09:05 AM", current_count=100, percent_full=50),
1922
gym.Gym(
@@ -35,35 +38,41 @@ def test_fetch_gym_info(self):
3538
gym.Gym(name="Pitt Sports Dome", last_updated="07/09/2024 09:05 AM", current_count=15, percent_full=20),
3639
]
3740

41+
gym_info = gym.get_all_gyms_info()
42+
3843
self.assertEqual(gym_info, expected_info)
3944

4045
@responses.activate
4146
def test_get_gym_info(self):
42-
responses.add(responses.GET, gym.GYM_URL, body=mock_gym_html, status=200)
43-
44-
gym_info = gym.get_gym_info("Baierl Rec Center")
47+
responses.add(responses.GET, gym.GYM_URL, body=self.mock_gym_data, status=200)
4548
expected_info = gym.Gym(
4649
name="Baierl Rec Center", last_updated="07/09/2024 09:05 AM", current_count=100, percent_full=50
4750
)
51+
52+
gym_info = gym.get_gym_info("Baierl Rec Center")
53+
4854
self.assertEqual(gym_info, expected_info)
4955

5056
@responses.activate
5157
def test_invalid_gym_name(self):
52-
responses.add(responses.GET, gym.GYM_URL, body=mock_gym_html, status=200)
58+
responses.add(responses.GET, gym.GYM_URL, body=self.mock_gym_data, status=200)
5359

5460
gym_info = gym.get_gym_info("Invalid Gym Name")
61+
5562
self.assertIsNone(gym_info)
5663

5764
@responses.activate
5865
def test_valid_gym_name_not_all_info(self):
59-
responses.add(responses.GET, gym.GYM_URL, body=mock_gym_html, status=200)
66+
responses.add(responses.GET, gym.GYM_URL, body=self.mock_gym_data, status=200)
6067

6168
gym_info = gym.get_gym_info("Bellefield Hall: Court & Dance Studio")
69+
6270
self.assertIsNone(gym_info)
6371

6472
@responses.activate
6573
def test_percentage_value_error(self):
66-
responses.add(responses.GET, gym.GYM_URL, body=mock_gym_html, status=200)
74+
responses.add(responses.GET, gym.GYM_URL, body=self.mock_gym_data, status=200)
75+
76+
gym_info = gym.get_gym_info("Bellefield Hall: Fitness Center & Weight Room")
6777

68-
gym_info = gym.get_gym_info("Bellefield Hall: Fitness Center & Weight Roomo")
6978
self.assertIsNone(gym_info)

tests/mocks/gym_mocks.py

Lines changed: 0 additions & 121 deletions
This file was deleted.

tests/samples/gym.html

Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
<div class="barChart" style="width:90%;">
2+
Baierl Rec Center
3+
<br>
4+
<span style="color:green">(Open)</span>
5+
<br>
6+
Last Count: 100
7+
<br>
8+
Updated: 07/09/2024 09:05 AM
9+
<div class="barChart_row" data-value="50.0">
10+
<span class="barChart__value">50%</span>
11+
<span class="barChart__bar" style=" background: rgb(239, 239, 239);">
12+
<span class="barChart__barFill" style="background: #2A5B84;"></span>
13+
</span>
14+
</div>
15+
</div>
16+
<div class="barChart" style="width:90%;">
17+
Bellefield Hall: Fitness Center & Weight Room
18+
<br>
19+
<span style="color:green">(Open)</span>
20+
<br>
21+
Last Count: 50
22+
<br>
23+
Updated: 07/09/2024 09:05 AM
24+
<div class="barChart_row" data-value="33.0">
25+
<span class="barChart__value">non%</span>
26+
<span class="barChart__bar" style=" background: rgb(239, 239, 239);">
27+
<span class="barChart__barFill" style="background: #2A5B84;"></span>
28+
</span>
29+
</div>
30+
</div>
31+
<div class="barChart" style="width:90%;">
32+
Bellefield Hall: Court & Dance Studio
33+
<br>
34+
<span style="color:green">(Open)</span>
35+
<br>
36+
<!-- Missing Last Count -->
37+
<!-- Missing Updated Date -->
38+
<div class="barChart_row" data-value="38.0">
39+
<span class="barChart__value">38%</span>
40+
<span class="barChart__bar" style=" background: rgb(239, 239, 239);">
41+
<span class="barChart__barFill" style="background: #2A5B84;"></span>
42+
</span>
43+
</div>
44+
</div>
45+
<div class="barChart" style="width:90%;">
46+
Trees Hall: Fitness Center
47+
<br>
48+
<span style="color:green">(Open)</span>
49+
<br>
50+
Last Count: 70
51+
<br>
52+
Updated: 07/09/2024 09:05 AM
53+
<div class="barChart_row" data-value="58.0">
54+
<span class="barChart__value">58%</span>
55+
<span class="barChart__bar" style=" background: rgb(239, 239, 239);">
56+
<span class="barChart__barFill" style="background: #2A5B84;"></span>
57+
</span>
58+
</div>
59+
</div>
60+
<div class="barChart" style="width:90%;">
61+
Trees Hall: Courts
62+
<br>
63+
<span style="color:green">(Open)</span>
64+
<br>
65+
Last Count: 20
66+
<br>
67+
Updated: 07/09/2024 09:05 AM
68+
<div class="barChart_row" data-value="33.0">
69+
<span class="barChart__value">33%</span>
70+
<span class="barChart__bar" style=" background: rgb(239, 239, 239);">
71+
<span class="barChart__barFill" style="background: #2A5B84;"></span>
72+
</span>
73+
</div>
74+
</div>
75+
<div class="barChart" style="width:90%;">
76+
Trees Hall: Racquetball Courts & Multipurpose Room
77+
<br>
78+
<span style="color:green">(Open)</span>
79+
<br>
80+
Last Count: 10
81+
<br>
82+
Updated: 07/09/2024 09:05 AM
83+
<div class="barChart_row" data-value="25.0">
84+
<span class="barChart__value">25%</span>
85+
<span class="barChart__bar" style=" background: rgb(239, 239, 239);">
86+
<span class="barChart__barFill" style="background: #2A5B84;"></span>
87+
</span>
88+
</div>
89+
</div>
90+
<div class="barChart" style="width:90%;">
91+
William Pitt Union
92+
<br>
93+
<span style="color:green">(Open)</span>
94+
<br>
95+
Last Count: 25
96+
<br>
97+
Updated: 07/09/2024 09:05 AM
98+
<div class="barChart_row" data-value="25.0">
99+
<span class="barChart__value">25%</span>
100+
<span class="barChart__bar" style=" background: rgb(239, 239, 239);">
101+
<span class="barChart__barFill" style="background: #2A5B84;"></span>
102+
</span>
103+
</div>
104+
</div>
105+
<div class="barChart" style="width:90%;">
106+
Pitt Sports Dome
107+
<br>
108+
<span style="color:green">(Open)</span>
109+
<br>
110+
Last Count: 15
111+
<br>
112+
Updated: 07/09/2024 09:05 AM
113+
<div class="barChart_row" data-value="20.0">
114+
<span class="barChart__value">20%</span>
115+
<span class="barChart__bar" style=" background: rgb(239, 239, 239);">
116+
<span class="barChart__barFill" style="background: #2A5B84;"></span>
117+
</span>
118+
</div>
119+
</div>

0 commit comments

Comments
 (0)