From f8d70754eef13a6c5b5c4f72372cc0a2d1d20910 Mon Sep 17 00:00:00 2001 From: Tony Date: Sat, 25 Jun 2022 09:10:44 -0500 Subject: [PATCH] add tests --- tests/fixtures/vcr_cassettes/setUp | 1388 ---------------------------- tests/test_gamescrapyr.py | 36 +- 2 files changed, 29 insertions(+), 1395 deletions(-) delete mode 100644 tests/fixtures/vcr_cassettes/setUp diff --git a/tests/fixtures/vcr_cassettes/setUp b/tests/fixtures/vcr_cassettes/setUp deleted file mode 100644 index 0f3b513..0000000 --- a/tests/fixtures/vcr_cassettes/setUp +++ /dev/null @@ -1,1388 +0,0 @@ -interactions: -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.28.0 - method: GET - uri: https://gc.com/login - response: - body: - string: "\n\n\n\n\n\n - \ \n \n \n - \ \n \n Sign In\n | GameChanger\n \n \n - \ \n \n\n \n \n - \ \n \n - \ \n \n - \ \n \n - \ \n \n - \ \n \n - \ \n \n - \ \n - \ \n \n \n \n \n \n \n \n \n \n\n \n\n - \ \n \n \n \n\n - \ \n \n \n\n\n \n\n \n \n\n \n\n \n\n - \ \n \n\n\n\n\n\n\n\n - \ \n \n - \ \n \n - \ \n \n - \ \n - \ \n - \ \n - \ \n - \ \n \n \n \n \n - \ \n\n\n \n\n - \ \n\n - \ \n\n\n - \ \n \n \n \n\n\n\n - \ \n \n\n\n\n\n \n\n\n\n\n\n\n \n\n\n\n \n\n\n \n\n
\n \n\n - \ \n
\n \n \n \n\n\n\n - \ \n\n
\n
\n \n
\n
\n
    \n
\n - \
\n
\n\n \n\n
\n - \ \n \n
\n \n \n
\n
\n
\n\n - \ \n\n\n\n
\n
\n - \
\n

Sign In to GC Classic

\n - \

\n Don’t - have an account yet? Sign Up\n

\n
\n
\n
\n
\n
\n - \ \n \n \n
\n - \
\n \n
\n
\n\n\n\n\n\n\n
\n\n
\n - \ \n\n
\n
\n - \
\n \n \n \n\n\n\n\n - \ \n\n
\n
\n

GameChanger


\n - \
Official Scoring Team
\n

We encourage any - user to create a GameChanger team and utilize our scorekeeping and stat management - tools. As a result of this open platform, there may be several versions of - the same team.

\n

GameChanger is beta testing solutions to - establish authenticity of teams so fans can easily trust that the teams they - follow will provide consistent game data.

\n

Official GameChanger - teams will be marked with an official tag in search results and on team home - pages.

\n

GameChanger reserves the right to contact a team's - head coach to confirm that it is an official team.

\n
\n \n - \ \n \n \n\n\n\n \n \n \n \n\n \n \n\n\n\n \n - \ \n - \
\n \n \n \n \n - \ \n \n
\n
\n \n
\n
\n - \
\n
GC Plus
\n
The - GameDay
Experience
\n
\n
\n
GC Premium
\n - \
The Complete Fan Experience
\n - \
\n
\n\n
\n
\n \n - \ Live play-by-plays\n \n
\n
\n \n Box scores\n \n
\n
\n \n GameStream - Radio\n \n - \
\n
\n \n Game recap stories\n - \ \n
\n - \
\n \n Season stats\n \n
\n
\n - \ \n Spray charts\n \n
\n
\n\n
\n
\n
\n \n
$4.99/mo - or
$29.99/yr
\n
\n
\n
\n - \
\n
\n - \ Upgrade \n
\n
$9.99/mo or
$59.99/yr
\n
\n
\n - \
\n
\n\n
\n
\n - \ \n
\n
\n
GC Premium
\n
The Complete Fan Experience
\n
\n\n
\n
\n Live play-by-plays\n - \
\n
\n Box scores\n
\n
\n GameStream - Radio\n
\n
\n Game recap stories\n - \
\n
\n Season stats\n
\n
\n Spray - charts\n
\n
\n\n
\n - \ Upgrade - \n
\n
\n $9.99/mo or - $59.99/yr\n
\n
\n\n
\n
\n \n - \ \n \n\n" - headers: - Connection: - - keep-alive - Content-Type: - - text/html; charset=utf-8 - Date: - - Thu, 23 Jun 2022 12:41:56 GMT - ETag: - - W/"5cb48d175aa862c54e1da8b2ffc0a0ff" - Server: - - nginx - Set-Cookie: - - csrftoken=L4qiXPu00gdACYEzfkUmZEZH4OZDHeDy0dbS8NkPn8HK0uR3o4zk6joKiupSn4nz; - expires=Thu, 22-Jun-2023 12:41:56 GMT; Max-Age=31449600; Path=/ - Transfer-Encoding: - - chunked - Vary: - - User-Agent, Cookie - content-length: - - '31416' - status: - code: 200 - message: OK -- request: - body: csrfmiddlewaretoken=L4qiXPu00gdACYEzfkUmZEZH4OZDHeDy0dbS8NkPn8HK0uR3o4zk6joKiupSn4nz - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '142' - Content-Type: - - application/x-www-form-urlencoded - Cookie: - - csrftoken=L4qiXPu00gdACYEzfkUmZEZH4OZDHeDy0dbS8NkPn8HK0uR3o4zk6joKiupSn4nz - User-Agent: - - python-requests/2.28.0 - referer: - - https://gc.com/do-login - method: POST - uri: https://gc.com/do-login - response: - body: - string: '' - headers: - Connection: - - keep-alive - Content-Length: - - '0' - Content-Type: - - text/html; charset=utf-8 - Date: - - Thu, 23 Jun 2022 12:41:56 GMT - Location: - - /welcome - Server: - - nginx - Set-Cookie: - - csrftoken=L4qiXPu00gdACYEzfkUmZEZH4OZDHeDy0dbS8NkPn8HK0uR3o4zk6joKiupSn4nz; - expires=Thu, 22-Jun-2023 12:41:56 GMT; Max-Age=31449600; Path=/ - - gcdotcom_secure_sessionid=mtsukruim68wkw23jt1efu4if0sa6cgj; expires=Thu, 07-Jul-2022 - 12:41:56 GMT; httponly; Max-Age=1209600; Path=/; secure - - gcdotcom_sessionid=nv894zl2ynkm3w6yqttnycuw5hsi1ef6; expires=Thu, 07-Jul-2022 - 12:41:56 GMT; httponly; Max-Age=1209600; Path=/ - Vary: - - Cookie - status: - code: 302 - message: Found -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - csrftoken=L4qiXPu00gdACYEzfkUmZEZH4OZDHeDy0dbS8NkPn8HK0uR3o4zk6joKiupSn4nz; - gcdotcom_secure_sessionid=mtsukruim68wkw23jt1efu4if0sa6cgj; gcdotcom_sessionid=nv894zl2ynkm3w6yqttnycuw5hsi1ef6 - User-Agent: - - python-requests/2.28.0 - referer: - - https://gc.com/do-login - method: GET - uri: https://gc.com/welcome - response: - body: - string: '' - headers: - Connection: - - keep-alive - Content-Length: - - '0' - Content-Type: - - text/html; charset=utf-8 - Date: - - Thu, 23 Jun 2022 12:41:57 GMT - ETag: - - '"d41d8cd98f00b204e9800998ecf8427e"' - Location: - - /t/summer-2022/hounds-6258438ad39889aec68928da - Server: - - nginx - Set-Cookie: - - csrftoken=L4qiXPu00gdACYEzfkUmZEZH4OZDHeDy0dbS8NkPn8HK0uR3o4zk6joKiupSn4nz; - expires=Thu, 22-Jun-2023 12:41:57 GMT; Max-Age=31449600; Path=/ - - gcdotcom_secure_sessionid=mtsukruim68wkw23jt1efu4if0sa6cgj; expires=Thu, 07-Jul-2022 - 12:41:57 GMT; httponly; Max-Age=1209600; Path=/; secure - - gcdotcom_sessionid=nv894zl2ynkm3w6yqttnycuw5hsi1ef6; expires=Thu, 07-Jul-2022 - 12:41:57 GMT; httponly; Max-Age=1209600; Path=/ - Vary: - - Cookie - status: - code: 302 - message: Found -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - csrftoken=L4qiXPu00gdACYEzfkUmZEZH4OZDHeDy0dbS8NkPn8HK0uR3o4zk6joKiupSn4nz; - gcdotcom_secure_sessionid=mtsukruim68wkw23jt1efu4if0sa6cgj; gcdotcom_sessionid=nv894zl2ynkm3w6yqttnycuw5hsi1ef6 - User-Agent: - - python-requests/2.28.0 - referer: - - https://gc.com/do-login - method: GET - uri: https://gc.com/t/summer-2022/hounds-6258438ad39889aec68928da - response: - body: - string: "\n\n\n\n\n\n - \ \n \n \n - \ \n Hounds | Summer 2022 | Adult Baseball | GameChanger\n - \ \n \n \n \n \n - \ \n \n \n\n \n \n - \ \n \n - \ \n \n - \ \n \n - \ \n \n - \ \n \n - \ \n \n - \ \n - \ \n \n \n \n - \ \n \n \n \n \n - \ \n\n \n \n\n \n\n\n\n\n - \ \n \n \n \n\n - \ \n \n \n - \ \n\n\n - \ \n\n \n \n\n \n\n - \ \n\n - \ \n \n\n\n\n\n\n\n\n - \ \n \n - \ \n \n - \ \n \n - \ \n - \ \n - \ \n - \ \n - \ \n \n \n \n \n - \ \n\n\n \n\n - \ \n\n - \ \n\n\n - \ \n \n \n \n - \ \n \n\n \n\n\n - \ \n \n - \ \n\n - \ \n\n\n\n\n \n\n\n\n\n\n\n \n\n\n\n \n\n\n \n\n - \
\n \n\n \n
\n \n \n - \ \n\n\n\n \n\n
\n
\n \n
\n
\n
    \n
\n
\n
\n\n \n - \
\n
\n - \
\n \n\n\n\n\n
\n

Hounds

\n - \ \n

\n - \ \n Chicago, - IL ·\n \n Adult - Baseball\n

\n \n \n - \
\n
\n
\n\n
\n \n \n - \ \n

8-5-1

\n\n - \ \n \n \n \n\n
\n \n
\n\n\n - \
\n \n \n\n\n
\n
\n \n
\n
\n\n\n - \ \n
\n \n \n\n\n \n\n\n
\n
\n
\n
    \n \n \n
  • \n - \ \n
    \n
    \n

    Upcoming Events

    \n Full Schedule \u25B8\n
    \n - \ \n
    \n\n - \
  • \n \n \n - \ \n
  • \n \n\n\n - \ \n\n\n
    \n
    \n \n - \ Loading... Loading Team News...\n \n - \ \n
    \n
    \n\n
  • \n
\n - \
\n\n
\n
    \n \n\n
    \n - \ \n\n
  • \n
    \n - \ \n \n You’re an Admin.\n \n - \ \n
    \n\n \n \n \n Upgrade access for fans\n \n \n \n\n - \ \n
  • \n\n
    \n\n\n
    \n\n\n
  • \n
    \n
    \n - \
    \n
    Fans
    \n 11\n
    \n - \
    \n
    \n
    \n
    Popularity
    \n - \ \n - \ \n #49\n - \ \n \n
    \n
    \n - \
    \n
  • \n\n
    \n\n\n \n
    \n - \ \n\n
  • \n
    Communicate - and share with players,
    family, and fans.
    \n Send Invites\n
  • \n\n
    \n - \ \n\n\n\n \n\n\n
    \n \n\n
  • \n \n

    Team Admins

    \n - \
    \n Anthony Correa\n (you)\n - \ \n ,\n \n \n - \ Philip Zelenka\n \n \n - \ ,\n \n \n Brian - Lehman\n \n \n ,\n - \ \n \n Arron Kruse\n - \
    \n \n\n \n \n \n \n \n\n Team - Settings\n
  • \n\n\n
    \n\n
\n
\n - \
\n
\n
\n - \
\n \n\n\n\n\n\n\n\n - \ \n\n
\n
\n
\n - \

GC Plus

\n

Community Pass

\n
\n - \
\n

GC Premium

\n

Community Pass

\n
\n
\n\n \n \n - \ \n - \ \n - \ \n - \ \n - \ \n - \ \n
Live play-by-plays
Box scores
Game recap stories
Season stats
Spray charts
\n\n
\n
\n
\n - \
$149 - for one season
\n \n - \ PURCHASE\n \n
\n - \
\n
\n
\n
$299 for one season
\n - \ \n PURCHASE\n \n
\n - \
\n
\n
\n\n
\n
\n
\n\n
\n
\n
\n \n \n \n\n\n\n\n - \ \n\n
\n
\n

GameChanger


\n - \
Official Scoring Team
\n

We encourage any - user to create a GameChanger team and utilize our scorekeeping and stat management - tools. As a result of this open platform, there may be several versions of - the same team.

\n

GameChanger is beta testing solutions to - establish authenticity of teams so fans can easily trust that the teams they - follow will provide consistent game data.

\n

Official GameChanger - teams will be marked with an official tag in search results and on team home - pages.

\n

GameChanger reserves the right to contact a team's - head coach to confirm that it is an official team.

\n
\n \n - \ \n \n \n\n\n\n \n \n \n \n\n \n \n \n\n\n\n\n - \ \n \n
\n \n \n\n \n \n \n - \ \n \n\n
\n
\n \n
\n
\n
\n
GC Plus
\n - \
The GameDay
Experience
\n - \
\n
\n - \
GC Premium
\n
The - Complete Fan Experience
\n
\n
\n\n
\n
\n \n Live play-by-plays\n - \ \n
\n - \
\n \n Box scores\n \n
\n
\n \n GameStream Radio\n \n
\n
\n - \ \n Game recap stories\n \n
\n
\n - \ \n Season stats\n \n
\n
\n \n Spray - charts\n \n - \
\n
\n\n
\n
\n - \
\n
\n - \ - Upgrade \n
\n
$4.99/mo - or
$29.99/yr
\n
\n
\n
\n - \
\n
\n - \ Upgrade \n
\n
$9.99/mo or
$59.99/yr
\n
\n
\n - \
\n
\n\n
\n
\n - \ \n
\n
\n
GC Premium
\n
The Complete Fan Experience
\n
\n\n
\n
\n Live play-by-plays\n - \
\n
\n Box scores\n
\n
\n GameStream - Radio\n
\n
\n Game recap stories\n - \
\n
\n Season stats\n
\n
\n Spray - charts\n
\n
\n\n
\n - \ Upgrade - \n
\n
\n $9.99/mo or - $59.99/yr\n
\n
\n\n
\n
\n \n - \ \n \n\n" - headers: - Connection: - - keep-alive - Content-Type: - - text/html; charset=utf-8 - Date: - - Thu, 23 Jun 2022 12:41:57 GMT - ETag: - - W/"5f2637aa7b4c732a455aad10612fcd66" - Server: - - nginx - Set-Cookie: - - csrftoken=L4qiXPu00gdACYEzfkUmZEZH4OZDHeDy0dbS8NkPn8HK0uR3o4zk6joKiupSn4nz; - expires=Thu, 22-Jun-2023 12:41:57 GMT; Max-Age=31449600; Path=/ - - gcdotcom_secure_sessionid=mtsukruim68wkw23jt1efu4if0sa6cgj; expires=Thu, 07-Jul-2022 - 12:41:57 GMT; httponly; Max-Age=1209600; Path=/; secure - - gcdotcom_sessionid=nv894zl2ynkm3w6yqttnycuw5hsi1ef6; expires=Thu, 07-Jul-2022 - 12:41:57 GMT; httponly; Max-Age=1209600; Path=/ - - last_team_viewed=6258438ad39889aec68928da; expires=Thu, 23-Jun-2022 12:46:57 - GMT; Max-Age=300; Path=/ - Transfer-Encoding: - - chunked - Vary: - - User-Agent, Cookie - content-length: - - '73537' - status: - code: 200 - message: OK -version: 1 diff --git a/tests/test_gamescrapyr.py b/tests/test_gamescrapyr.py index ea3ab7a..a2774c3 100644 --- a/tests/test_gamescrapyr.py +++ b/tests/test_gamescrapyr.py @@ -10,13 +10,13 @@ from os import getenv import vcr vcr_options = dict( - cassette_library_dir = "fixtures/vcr_cassettes/", - ignore_localhost=True, - filter_post_data_parameters=['email', 'password'], - # record_mode="new_episodes", - decode_compressed_response=True, - # allow_playback_repeats=True, - ) + cassette_library_dir = "fixtures/vcr_cassettes/", + ignore_localhost=True, + filter_post_data_parameters=['email', 'password'], + # record_mode="new_episodes", + decode_compressed_response=True, + # allow_playback_repeats=True, +) class TestGamescrapyr(unittest.TestCase): """Tests for `gamescrapyr` package.""" @@ -183,3 +183,25 @@ class TestGamescrapyr(unittest.TestCase): should_be_authorized = self.client.is_authorized() self.assertTrue(should_be_authorized) self.client + + @vcr.use_cassette(**vcr_options) + def test_006_test_teams(self): + kwargs = { + 'season_slug': self.season_slug, + 'team_id': self.team_id, + 'team_slug': self.team_slug + } + teams = self.client.get_teams() + self.assertIsInstance(teams, list) + keys = ['name', + 'id', + 'season' , + 'season_slug', + 'team_slug' + ] + + for d in teams: + for key in keys: + self.assertIn(key, d.keys()) + self.assertNotEqual('', d.get(key)) +