37 lines
1.4 KiB
Python
37 lines
1.4 KiB
Python
"""Palier 17 (0.21.0) — sélecteur de dépôt intelligent (Capture).
|
|
|
|
- GET /api/repos : liste exhaustive des dépôts pour les
|
|
sélecteurs (la palette reste plafonnée à 60), épinglés
|
|
d'abord, archivés en dernier.
|
|
- La page /capture branche le sélecteur sur le champ Dépôt
|
|
(liste filtrée + complétion Tab par segment, repo-picker.js).
|
|
"""
|
|
|
|
|
|
def test_api_repos_lists_everything_ranked(client, fake_gitea):
|
|
fake_gitea.starred.add("Projets/vieux")
|
|
r = client.get("/api/repos")
|
|
assert r.status_code == 200
|
|
repos = r.json()["repos"]
|
|
names = [x["full_name"] for x in repos]
|
|
# Exhaustif : actifs + inactifs + archivés du faux Gitea.
|
|
assert names == ["Projets/vieux", "Projets/demo", "Projets/archive"] or set(names) == {
|
|
"Projets/demo", "Projets/vieux", "Projets/archive",
|
|
}
|
|
# L'épinglé passe devant malgré son inactivité.
|
|
assert names[0] == "Projets/vieux"
|
|
by_name = {x["full_name"]: x for x in repos}
|
|
assert by_name["Projets/vieux"]["starred"] is True
|
|
assert by_name["Projets/demo"]["starred"] is False
|
|
assert by_name["Projets/archive"]["archived"] is True
|
|
|
|
|
|
def test_capture_page_wires_the_repo_picker(client):
|
|
r = client.get("/capture")
|
|
assert r.status_code == 200
|
|
assert 'id="capture-repo"' in r.text
|
|
assert 'id="repo-listbox"' in r.text
|
|
assert "repo-picker.js" in r.text
|
|
# Le contrat du formulaire ne change pas.
|
|
assert 'name="repo_full_name"' in r.text
|