Spaces:
Build error
Build error
Commit ·
08a192b
1
Parent(s): ab88eb0
style: apply ruff format to copilot_quota and test_copilot_quota
Browse filesCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
headroom/subscription/copilot_quota.py
CHANGED
|
@@ -276,7 +276,9 @@ class _CopilotQuotaTracker:
|
|
| 276 |
|
| 277 |
try:
|
| 278 |
async with aiohttp.ClientSession() as session:
|
| 279 |
-
async with session.get(
|
|
|
|
|
|
|
| 280 |
if resp.status == 401:
|
| 281 |
with self._lock:
|
| 282 |
self._state.last_error = "unauthorized — check GITHUB_TOKEN"
|
|
|
|
| 276 |
|
| 277 |
try:
|
| 278 |
async with aiohttp.ClientSession() as session:
|
| 279 |
+
async with session.get(
|
| 280 |
+
url, headers=headers, timeout=aiohttp.ClientTimeout(total=10)
|
| 281 |
+
) as resp:
|
| 282 |
if resp.status == 401:
|
| 283 |
with self._lock:
|
| 284 |
self._state.last_error = "unauthorized — check GITHUB_TOKEN"
|
tests/test_copilot_quota.py
CHANGED
|
@@ -150,11 +150,7 @@ class TestParseCopilotQuota:
|
|
| 150 |
assert snap.categories["chat"].remaining == 75
|
| 151 |
|
| 152 |
def test_unlimited_category(self):
|
| 153 |
-
data = {
|
| 154 |
-
"quota_snapshots": {
|
| 155 |
-
"completions": {"unlimited": True}
|
| 156 |
-
}
|
| 157 |
-
}
|
| 158 |
snap = parse_copilot_quota(data)
|
| 159 |
assert snap.categories["completions"].unlimited is True
|
| 160 |
|
|
@@ -207,31 +203,56 @@ class TestParseCopilotQuota:
|
|
| 207 |
|
| 208 |
class TestDiscoverGithubToken:
|
| 209 |
def test_returns_none_when_no_env_vars(self, monkeypatch):
|
| 210 |
-
for var in [
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 211 |
monkeypatch.delenv(var, raising=False)
|
| 212 |
assert discover_github_token() is None
|
| 213 |
|
| 214 |
def test_picks_up_github_token(self, monkeypatch):
|
| 215 |
-
for var in [
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 216 |
monkeypatch.delenv(var, raising=False)
|
| 217 |
monkeypatch.setenv("GITHUB_TOKEN", "ghp_testtoken123")
|
| 218 |
assert discover_github_token() == "ghp_testtoken123"
|
| 219 |
|
| 220 |
def test_prefers_copilot_specific_token(self, monkeypatch):
|
| 221 |
-
for var in [
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 222 |
monkeypatch.delenv(var, raising=False)
|
| 223 |
monkeypatch.setenv("GITHUB_COPILOT_GITHUB_TOKEN", "ghp_copilot_specific")
|
| 224 |
monkeypatch.setenv("GITHUB_TOKEN", "ghp_generic")
|
| 225 |
assert discover_github_token() == "ghp_copilot_specific"
|
| 226 |
|
| 227 |
def test_falls_through_to_next_env_var(self, monkeypatch):
|
| 228 |
-
for var in [
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 229 |
monkeypatch.delenv(var, raising=False)
|
| 230 |
monkeypatch.setenv("COPILOT_GITHUB_TOKEN", "ghp_copilot")
|
| 231 |
assert discover_github_token() == "ghp_copilot"
|
| 232 |
|
| 233 |
def test_ignores_empty_strings(self, monkeypatch):
|
| 234 |
-
for var in [
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 235 |
monkeypatch.delenv(var, raising=False)
|
| 236 |
monkeypatch.setenv("GITHUB_COPILOT_GITHUB_TOKEN", "")
|
| 237 |
monkeypatch.setenv("GITHUB_TOKEN", "ghp_valid")
|
|
|
|
| 150 |
assert snap.categories["chat"].remaining == 75
|
| 151 |
|
| 152 |
def test_unlimited_category(self):
|
| 153 |
+
data = {"quota_snapshots": {"completions": {"unlimited": True}}}
|
|
|
|
|
|
|
|
|
|
|
|
|
| 154 |
snap = parse_copilot_quota(data)
|
| 155 |
assert snap.categories["completions"].unlimited is True
|
| 156 |
|
|
|
|
| 203 |
|
| 204 |
class TestDiscoverGithubToken:
|
| 205 |
def test_returns_none_when_no_env_vars(self, monkeypatch):
|
| 206 |
+
for var in [
|
| 207 |
+
"GITHUB_COPILOT_GITHUB_TOKEN",
|
| 208 |
+
"GITHUB_TOKEN",
|
| 209 |
+
"COPILOT_GITHUB_TOKEN",
|
| 210 |
+
"GITHUB_COPILOT_API_TOKEN",
|
| 211 |
+
]:
|
| 212 |
monkeypatch.delenv(var, raising=False)
|
| 213 |
assert discover_github_token() is None
|
| 214 |
|
| 215 |
def test_picks_up_github_token(self, monkeypatch):
|
| 216 |
+
for var in [
|
| 217 |
+
"GITHUB_COPILOT_GITHUB_TOKEN",
|
| 218 |
+
"GITHUB_TOKEN",
|
| 219 |
+
"COPILOT_GITHUB_TOKEN",
|
| 220 |
+
"GITHUB_COPILOT_API_TOKEN",
|
| 221 |
+
]:
|
| 222 |
monkeypatch.delenv(var, raising=False)
|
| 223 |
monkeypatch.setenv("GITHUB_TOKEN", "ghp_testtoken123")
|
| 224 |
assert discover_github_token() == "ghp_testtoken123"
|
| 225 |
|
| 226 |
def test_prefers_copilot_specific_token(self, monkeypatch):
|
| 227 |
+
for var in [
|
| 228 |
+
"GITHUB_COPILOT_GITHUB_TOKEN",
|
| 229 |
+
"GITHUB_TOKEN",
|
| 230 |
+
"COPILOT_GITHUB_TOKEN",
|
| 231 |
+
"GITHUB_COPILOT_API_TOKEN",
|
| 232 |
+
]:
|
| 233 |
monkeypatch.delenv(var, raising=False)
|
| 234 |
monkeypatch.setenv("GITHUB_COPILOT_GITHUB_TOKEN", "ghp_copilot_specific")
|
| 235 |
monkeypatch.setenv("GITHUB_TOKEN", "ghp_generic")
|
| 236 |
assert discover_github_token() == "ghp_copilot_specific"
|
| 237 |
|
| 238 |
def test_falls_through_to_next_env_var(self, monkeypatch):
|
| 239 |
+
for var in [
|
| 240 |
+
"GITHUB_COPILOT_GITHUB_TOKEN",
|
| 241 |
+
"GITHUB_TOKEN",
|
| 242 |
+
"COPILOT_GITHUB_TOKEN",
|
| 243 |
+
"GITHUB_COPILOT_API_TOKEN",
|
| 244 |
+
]:
|
| 245 |
monkeypatch.delenv(var, raising=False)
|
| 246 |
monkeypatch.setenv("COPILOT_GITHUB_TOKEN", "ghp_copilot")
|
| 247 |
assert discover_github_token() == "ghp_copilot"
|
| 248 |
|
| 249 |
def test_ignores_empty_strings(self, monkeypatch):
|
| 250 |
+
for var in [
|
| 251 |
+
"GITHUB_COPILOT_GITHUB_TOKEN",
|
| 252 |
+
"GITHUB_TOKEN",
|
| 253 |
+
"COPILOT_GITHUB_TOKEN",
|
| 254 |
+
"GITHUB_COPILOT_API_TOKEN",
|
| 255 |
+
]:
|
| 256 |
monkeypatch.delenv(var, raising=False)
|
| 257 |
monkeypatch.setenv("GITHUB_COPILOT_GITHUB_TOKEN", "")
|
| 258 |
monkeypatch.setenv("GITHUB_TOKEN", "ghp_valid")
|