-
Notifications
You must be signed in to change notification settings - Fork 48
/
conftest.py
137 lines (95 loc) · 3.45 KB
/
conftest.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
# -*- coding: utf-8 -*-
"""Pytest integration test conftest.py.
"""
__author__ = "Wren J. R. (uberfastman)"
__email__ = "uberfastman@uberfastman.dev"
import os
from pathlib import Path
from typing import Union
from quickstart import quickstart
import pytest
from yfpy import Data
from yfpy.query import YahooFantasySportsQuery
"""
Example public Yahoo league URL: "https://archive.fantasysports.yahoo.com/nfl/2014/729259"
Example vars using public Yahoo leagues still require auth through a personal Yahoo account: see README.md
"""
@pytest.fixture
def data_dir() -> Path:
"""Code tests will output data to this directory."""
return Path(__file__).parent / "test_output"
@pytest.fixture
def yahoo_data(data_dir: Union[Path, str]) -> Data:
"""Instantiate yfpy Data object."""
return Data(data_dir)
@pytest.fixture
def yahoo_query(league_id: str, game_code: str, game_id: int, browser_callback: bool) -> YahooFantasySportsQuery:
"""Instantiate yfpy YahooFantasySportsQuery object and override league key."""
yahoo_query = YahooFantasySportsQuery(
league_id,
game_code,
game_id=game_id,
yahoo_consumer_key=os.environ.get("YFPY_CONSUMER_KEY"),
yahoo_consumer_secret=os.environ.get("YFPY_CONSUMER_SECRET"),
env_file_location=Path(__file__).parent.parent.parent / "env",
all_output_as_json_str=False,
browser_callback=browser_callback,
offline=False,
)
# Manually override league key for example code to work
yahoo_query.league_key = f"{game_id}.l.{league_id}"
return yahoo_query
@pytest.fixture
def browser_callback() -> bool:
"""Turn on/off automatic opening of browser window for OAuth."""
browser_callback = True
return browser_callback
@pytest.fixture
def season() -> int:
"""Set Yahoo Fantasy Sports season for testing."""
return quickstart.get_season()
@pytest.fixture
def chosen_week() -> int:
"""Set Yahoo Fantasy Sports chosen week for testing."""
return quickstart.get_chosen_week()
@pytest.fixture
def chosen_date() -> str:
"""Set Yahoo Fantasy Sports chosen date for testing."""
return quickstart.get_chosen_date()
@pytest.fixture
def game_code() -> str:
"""Set Yahoo Fantasy Sports game code for testing."""
return quickstart.get_game_code()
@pytest.fixture
def game_id() -> int:
"""Set Yahoo Fantasy Sports game ID for testing."""
return quickstart.get_game_id()
@pytest.fixture
def game_key() -> str:
"""Set Yahoo Fantasy Sports game key for testing."""
return quickstart.get_game_key()
@pytest.fixture
def league_id() -> str:
"""Set Yahoo Fantasy Sports league ID for testing."""
return quickstart.get_league_id()
@pytest.fixture
def team_id() -> int:
"""Set Yahoo Fantasy Sports team ID for testing."""
return quickstart.get_team_id()
@pytest.fixture
def team_name() -> str:
"""Set Yahoo Fantasy Sports team name for testing."""
return quickstart.get_team_name()
@pytest.fixture
def player_id() -> int:
"""Create and set Yahoo Fantasy Sports player ID for testing."""
return quickstart.get_player_id()
@pytest.fixture
def player_key(game_id, player_id) -> str:
"""Create and set Yahoo Fantasy Sports player key for testing."""
player_key = f"{game_id}.p.{player_id}"
return player_key
@pytest.fixture
def league_player_limit() -> int:
"""Set Yahoo Fantasy Sports league player retrieval limit for testing."""
return quickstart.get_league_player_limit()