בעיה עם הרצת טסטים שעברו merge

היי,
אני עובדת על קובץ dayview.html של שגיא.
רציתי להריץ את קובץ הבדיקות ששגיא יצר test_dayview.py, אך אני מקבלת את הודעת השגיאה הבאה:
נראה שלא נוצרים לי כל הפיצ’רים אשר מדמים יוזר ואירועים.
עשיתי pull מ develop (דאגתי למחוק לפני את הdb הקודם שהיה)
התקנתי requirements
העתקתי לconfig את התוכן של config.example.
בעת הרצת uvicorn נוצר לי dev.db
ובעת הרצת pytest נוצר לי test.db
הייתי שמחה לעזרה כיצד לפתור את הבעיה.
קישור לקובץ הבדיקות בגיט:

תודה!

לדעתי זה בגלל שה- fixture user קיים כבר בקוד.
תנסי או להשתמש במה שקיים או לשנות את השם של הfixture שלך

וגם אולי כדי להפריד את הפיקצרים לקובץ אחר.
תראי בקוד איך עושים את זה, זה יהיה יותר מסודר🙂

תודה, ניסיתי את מה שהצעת והופיעו אותן שגיאות.
בנוסף, זהו קוד שעבר merge ולאחר שיחה עם שגיא , הבנתי כי הקוד אצלו רץ תקין, ולכן הבעיה צריכה להיות אצלי, אך לצערי אני לא מצליחה לפתור אותה.

משונה, טכנית זה באמת אמור לעבוד אם זה עבר merge.

זה נשמע שלא חוזר שום user מהשורה הראשונה ב־dayview. בדקת מה יש בטבלת users?

תודה על העזרה,
בdev.dB קיימת טבלת users עם השדות שצריכים להיות אבל היא ריקה מנתונים.

test.dB נוצרה אך לא נוצרו בה טבלאות כלל.

מה ניתן עוד לעשות?

ב־testdb הנתונים נמחקים אחרי שהטסטים רצים. ניסית למחוק את השורה שמוחקת את הנתונים? :slight_smile:

האם התכוונת לשורה:

Base.metadata.drop_all(bind=sqlite_test_engine)

אם כן, מחקתי והרצתי ועדיין מתקבלות אותן הודעות שגיאה.
אם התכוונת לשורה אחרת , אשמח להסבר נוסף :slight_smile:

נראה לי שהבעיה היא ב-client שמועבר לטסט.
בקובץ client_fixture.py יש מספר קליינטים שונים, כשכל אחד נועד להחליף את ה-dependency שניגש ל-DB.
למעשה הבדיקה מוספיה את היוזר והאיוונטים אל test.db, אך הפונקציה שניבדקת ניגשת ל-dev.db ולכן לא מוצאת את היוזר (שימי לב שהבדיקה נכשלת בעקבות שגיאה בפונקציה המקורית ולא שגיאת assert).
מה יש לעשות אם כך זה ליצור fixture נוסף dayview_test_client לפי השבלונה של שאר הקליינטים עם הקובץ המתאים כפרמטר לפונקציה.
מקווה שזה יפתור את הבעיה

נדחפת לפוסט,
האם בטסט, כשאני מעבירה כפרמטר את client, הוא כולל בתוכו session?
ניסיתי לצור מצב מדומה שאין חיבור לdb. במקום להשתמש ב file_test_client, השתמשתי בclient וחזר לי בהצלחה פעולה שמחייבת שימוש בsession.

מצאנו את הבעיה אצל עדי בסשן זום שהתקיים היום עם צוות הפרונטאנד. הבעיה הייתה שינוי לוקאלי באחד הקבצים.
עשינו git stash לשינויים שלה, בדקנו בעזרת git log וראינו שהיו commit¯ים. שמרנו את מספר הקומיט הנוכחי ועשינו checkout ל¯upstream/develop. כשהרצנו שם את הטסטים הכל עבד.
אם יש למישהו/י בעיות נוספות אפשר לפתוח אשכול חדש :slight_smile:

לייק 1