47 lines
1.4 KiB
Python
47 lines
1.4 KiB
Python
import json
|
|
|
|
from registration import load_google_accounts, _is_on_kilo
|
|
import registration as reg
|
|
|
|
|
|
def test_load_google_accounts(tmp_path, monkeypatch):
|
|
mail_file = tmp_path / "mail.json"
|
|
accounts = [
|
|
{"email": "a@example.com", "password": "pass1"},
|
|
{"email": "b@example.com", "password": "pass2"},
|
|
]
|
|
mail_file.write_text(json.dumps(accounts))
|
|
monkeypatch.setattr(reg, "MAIL_JSON", mail_file)
|
|
|
|
result = load_google_accounts()
|
|
assert len(result) == 2
|
|
assert result[0]["email"] == "a@example.com"
|
|
|
|
|
|
def test_load_missing_file(tmp_path, monkeypatch):
|
|
monkeypatch.setattr(reg, "MAIL_JSON", tmp_path / "nope.json")
|
|
assert load_google_accounts() == []
|
|
|
|
|
|
def test_load_invalid_json(tmp_path, monkeypatch):
|
|
f = tmp_path / "mail.json"
|
|
f.write_text("not json")
|
|
monkeypatch.setattr(reg, "MAIL_JSON", f)
|
|
assert load_google_accounts() == []
|
|
|
|
|
|
def test_is_on_kilo():
|
|
assert _is_on_kilo("https://app.kilo.ai/profile") is True
|
|
assert _is_on_kilo("https://kilo.ai/") is True
|
|
assert (
|
|
_is_on_kilo("https://accounts.google.com/?redirect=https://app.kilo.ai")
|
|
is False
|
|
)
|
|
assert _is_on_kilo("https://example.com/kilo.ai") is False
|
|
|
|
|
|
def test_load_not_array(tmp_path, monkeypatch):
|
|
f = tmp_path / "mail.json"
|
|
f.write_text('{"email": "a@b.com"}')
|
|
monkeypatch.setattr(reg, "MAIL_JSON", f)
|
|
assert load_google_accounts() == []
|