Skip to content

1307 0 modelisation procedure#1876

Draft
rik wants to merge 4 commits intomainfrom
1307_0_modelisation_procedure
Draft

1307 0 modelisation procedure#1876
rik wants to merge 4 commits intomainfrom
1307_0_modelisation_procedure

Conversation

@rik
Copy link
Member

@rik rik commented Feb 24, 2026

Modélisation procédure - Aligne les champs avec la production

En passant à la même valeur par défaut qu'en production, un test échoue car les dates de création sont identiques dans la même transaction. On marque le test en xfail en attendant de migrer le champ vers statement_timestamp.


Modélisation procédure - Ajoute un index présent en production

L'ajout de cet index rend la sortie de Collectivite.scots_pour_csv non déterministe. Les tests sont mis à jour pour refléter cela.

rik added 4 commits February 24, 2026 17:23
Y compris celles n'ayant pas `main` comme base.
En passant à la même valeur par défaut qu'en production, un test échoue car les dates de création sont identiques dans la même transaction. On marque le test en xfail en attendant de migrer le champ vers `statement_timestamp`.

ref #1307
L'ajout de cet index rend la sortie de `Collectivite.scots_pour_csv` non déterministe. Les tests sont mis à jour pour refléter cela.

ref #1307
@rik rik requested a review from celine-m-s February 24, 2026 22:35
@sonarqubecloud
Copy link

@rik rik changed the title 1307 1 modelisation procedure 1307 0 modelisation procedure Feb 24, 2026

@pytest.mark.xfail(
reason="created_at utilise le timestamp de la transaction, pas du statement"
)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Idée d'Anthony pour que ça fonctionne : passer de nouveau le default à models.functions.Now() quand le modèle sera managé par Django.

to_field="code_insee_unique",
)
created_at = models.DateTimeField(db_default=models.functions.Now())
created_at = models.DateTimeField(db_default=TransactionNow(), null=True)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Vérifier si c'est le cas dans les autres tables aussi.

[tool.pytest.ini_options]
DJANGO_SETTINGS_MODULE = "core.settings"
addopts = "--reuse-db --cov=."
xfail_strict = true
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Si le test fonctionne de nouveau, la suite de tests doit échouer.

constraints = (
UniqueConstraint(
"id",
condition=models.Q(parente=None, archived=False),
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

L'index sous-jactent permet d'améliorer les performances de l'export.
A priori, Anthony ne sait plus ce qui l'a motivé à créer la contrainte d'unicité mais elle existe bien en prod.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants