You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I PersonFactory bliver der brugt en factory.Sequence() til at give hver person en unik e-mail ([email protected], [email protected], [email protected] osv.) Men sequencen resetter sig selv efter hver "gang" man har brugt den.
Det jeg mener med "gang" er, at jeg åbner et shell og bruger person factory 3 gange, hvor sequence bliver større. Men når jeg åbner et nyt shell, efter jeg har lukket det gamle, og kører PersonFactory igen, så har sequencen resat sig selv til 0, som giver mig UniqueViolation fejlen.
Genskab fejlen
Vær sikker på, at der ikke allerede er blevet lavet en Person med PersonFactory, så [email protected] ikke er brugt. (Fx brugte jeg python manage.py flush til at rydde databasen).
Åbn et nyt shell. Og lav 2 eller flere personer.
# python manage.py shell
RUNNING IN DEBUG MODE
Python 3.10.15 (main, Oct 19 2024, 04:00:28) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from members.tests.factories import PersonFactory
>>> p1 = PersonFactory()
>>> p2 = PersonFactory()
>>> p3 = PersonFactory()
>>> exit()
Så her er sequence blevet større ved hver person, da der ikke er kommet en fejl.
Derefter åbn et nyt shell:
# python manage.py shell
RUNNING IN DEBUG MODE
Python 3.10.15 (main, Oct 19 2024, 04:00:28) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from members.tests.factories import PersonFactory
>>> p4 = PersonFactory()
Efter at jeg trykker enter på sidste linje, og laver en ny person, får jeg denne fejl:
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/django/db/backends/utils.py", line 89, in _execute
return self.cursor.execute(sql, params)
psycopg2.errors.UniqueViolation: duplicate key value violates unique constraint "members_family_email_key"
DETAIL: Key (email)=([email protected]) already exists.
Hvad skulle der være sket
Jeg tænker bare at sequencen skulle fortsætte så den lavede en [email protected].
Mere info
Jeg kørte manage.py shell i Docker desktops terminal. Mit OS er Windows 10.
Dansk-Torskerognsforening
changed the title
[BUG] PersonFactory giver UniqueViolation, da e-mails er ikke unikke fordi Sequence bliver resat
[BUG] PersonFactory giver UniqueViolation, da e-mail ikke er unik fordi Sequence bliver resat
Nov 21, 2024
I PersonFactory bliver der brugt en
factory.Sequence()
til at give hver person en unik e-mail ([email protected]
,[email protected]
,[email protected]
osv.) Men sequencen resetter sig selv efter hver "gang" man har brugt den.Det jeg mener med "gang" er, at jeg åbner et shell og bruger person factory 3 gange, hvor sequence bliver større. Men når jeg åbner et nyt shell, efter jeg har lukket det gamle, og kører PersonFactory igen, så har sequencen resat sig selv til 0, som giver mig UniqueViolation fejlen.
Genskab fejlen
Vær sikker på, at der ikke allerede er blevet lavet en Person med PersonFactory, så
[email protected]
ikke er brugt. (Fx brugte jegpython manage.py flush
til at rydde databasen).Åbn et nyt shell. Og lav 2 eller flere personer.
Så her er sequence blevet større ved hver person, da der ikke er kommet en fejl.
Derefter åbn et nyt shell:
Efter at jeg trykker enter på sidste linje, og laver en ny person, får jeg denne fejl:
Hvad skulle der være sket
Jeg tænker bare at sequencen skulle fortsætte så den lavede en
[email protected]
.Mere info
Jeg kørte
manage.py shell
i Docker desktops terminal. Mit OS er Windows 10.Koden hvor sequence er brugt til at lave e-mails:
forenings_medlemmer/members/tests/factories/person_factory.py
Lines 33 to 35 in 3729709
The text was updated successfully, but these errors were encountered: