74 lines
2.2 KiB
Python
74 lines
2.2 KiB
Python
import vcr
|
|
from django.conf import settings
|
|
from django.contrib.auth import (
|
|
BACKEND_SESSION_KEY,
|
|
HASH_SESSION_KEY,
|
|
SESSION_KEY,
|
|
get_user_model,
|
|
)
|
|
from django.contrib.sessions.backends.db import SessionStore
|
|
from django.contrib.staticfiles.testing import StaticLiveServerTestCase
|
|
from django.urls import reverse
|
|
from selenium import webdriver
|
|
|
|
USER = get_user_model().objects.get(pk=2)
|
|
vcr_options = {
|
|
"path": "teamsnap/fixtures/tests.json",
|
|
"ignore_localhost": True,
|
|
"filter_headers": ["authorization"],
|
|
"filter_query_parameters": ["email", "password"],
|
|
# 'record_mode':"new_episodes",
|
|
"decode_compressed_response": True,
|
|
"allow_playback_repeats": True,
|
|
}
|
|
|
|
|
|
def create_session_cookie():
|
|
|
|
# Then create the authenticated session using the new user credentials
|
|
session = SessionStore()
|
|
session[SESSION_KEY] = USER.pk
|
|
session[BACKEND_SESSION_KEY] = settings.AUTHENTICATION_BACKENDS[0]
|
|
session[HASH_SESSION_KEY] = USER.get_session_auth_hash()
|
|
session.save()
|
|
|
|
# Finally, create the cookie dictionary
|
|
cookie = {
|
|
"name": settings.SESSION_COOKIE_NAME,
|
|
"value": session.session_key,
|
|
"secure": False,
|
|
"path": "/",
|
|
}
|
|
return cookie
|
|
|
|
|
|
class TeamsnapTests(StaticLiveServerTestCase):
|
|
fixtures = ["benchcoach/fixtures/dump.json"]
|
|
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
cls.port = 8000
|
|
super().setUpClass()
|
|
cls.selenium = webdriver.Chrome("/opt/homebrew/bin/chromedriver")
|
|
cls.selenium.implicitly_wait(10)
|
|
|
|
@classmethod
|
|
def tearDownClass(cls):
|
|
cls.selenium.quit()
|
|
super().tearDownClass()
|
|
|
|
def setUp(self):
|
|
session_cookie = create_session_cookie()
|
|
self.selenium.get("{}{}".format(self.live_server_url, "/"))
|
|
self.selenium.add_cookie(session_cookie)
|
|
self.selenium.refresh()
|
|
pass
|
|
|
|
@vcr.use_cassette(**vcr_options)
|
|
def test_dashboard(self):
|
|
managed_team_id = USER.teamsnap_preferences.managed_team_id
|
|
# event_id = 266446202
|
|
url = reverse("teamsnap_dashboard", kwargs=dict(team_id=managed_team_id))
|
|
self.selenium.get(url=self.live_server_url + url)
|
|
breakpoint()
|