עזרה בפענוח הבדיקות האוטומטיות / דיווח על בעיות אפשריות בבודק

הוספנו קצת בדיקות אוטומטיות לתרגילים, אני מניח שקיבלתם לא מעט הערות.
הצוות (@gal432, @itamaraviv, @ido) עבדו עליהם לא מעט, ככה שהבדיקות ברמה טובה כרגע ועבדתי הערב על להכניס אותן למערכת.
השבוע, כבכל שבוע הבדיקות הפכו להיות קצת יותר מורכבות. אם לדעתכם יש בעיה בבדיקה האוטומטית – נשמח אם תעלו את זה פה בתוספת קישור לתרגיל.
בהצלחה!

בעיות שתוקנו:

  1. “סקרנות” – הבודק האוטומטי נכשל בריצה. בהמשך חלק מכם קיבלו הערות על בדיקה ספציפית שנכשלה עבור SandyBrown. הטסטים אמורים לעבוד עכשיו.
  2. “חללר” – בעיה עם ספריות נפוצות.

בעיות ידועות:

  1. צב שלוח וצב שלוח 2 – ציפייה לפרמטרים מסוימים שלא בהכרח קיימים. ההנחיה כרגע היא או לתקן לפי שמות הפרמטרים שהבודק מצפה (הם כתובים בבדיקה), או להתעלם מהבודק (התרגיל יחשב כהוגש).
7 לייקים

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

ועכשיו להערות שקפצו לי:
סקרנות - https://solve.pythonic.guru/view/97912
הבודק האוטומטי לא מצליח להריץ את הקוד שלי, דבר שלא קרה קודם. במיוחד שהקוד מניב True עבור כל הבדיקות מהמחברת.
חללר - https://solve.pythonic.guru/view/100511
הבודק מקפיץ את השגיאה:

AttributeError: module ‘datetime’ has no attribute ‘now’

המופע היחיד בקוד הוא datetime.datetime.now() (פונקציה ולא תכונה, שלחלוטין קיימת)

צב שלוח - https://solve.pythonic.guru/view/98252
הבודק האוטומטי משתמש ב-keyword argument: subject, על אף שאין כזה בחתימת הפונקציה. אמנם לא כתבתי כזה בפונקציה וצריך, אך באותה מידה יכולתי לקרוא לו בשם אחר.

צב שלוח 2 - https://solve.pythonic.guru/view/99950
הפעם הבודק משתמש ב- sender, שבשונה מהתרגיל הקודם הוצאתי לחלוטין מהפונקציה והכנסתי בכלל למחלקה אחרת.

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

אשמח למשוב על התקלות.
תודה על ההשקעה :smile:

4 לייקים

כנל לגבי צב שלוח - השתמשתי במילה title ולא subject , אם חייבים להשתמש דווקא בסט מסוים של kwargs , כדאי לציין זאת בשאלה.
יום נהדר !

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

4 לייקים

גם אצלי אותה שגיאה ב"סקרנות"
https://solve.pythonic.guru/view/97814

חללר: יש לי הודעה שהבודק האוטומטי נכשל ב1 דוגמאות
https://solve.pythonic.guru/view/99892
אבל אין שום שורה כזו בתוך הקובץ של התרגיל (ויש לי הודעות “אוהדות” מים מסיקה מלפני כן)

בצב שלוח אין לי סימון שהיתה בדיקה, וגם לא קיבלתי הודעה על עך, ונכנסתי רק בזכות יובל, ויש שם גם שגיאה על subject
https://solve.pythonic.guru/view/99712

גם אצלי בצב שלוח 2 נבדקו גרסאות לא עדכניות
https://solve.pythonic.guru/view/101110
ויש שגיאה דומה לזו של “subject” מ1, הפעם על “sender”
לא ברור לי מה בדיוק היה צריך להיות ומה חסר, או מה עודף.

לייק 1

הצעה - מקווה שלא תכעסו :
אני חושב שדווקא בגלל שזו פלטפורמת בדיקות של המון פתרונות שונים ומשונים , טוב לעבוד בצורה של TDD , גם אם זה יעכב קצת את הקורס.
זאת אומרת - קודם לכתוב את הטסטים לשאלה , אחר כך לכתוב את השאלה.
כך השאלות תהיינה יותר “מוכוונות טסטים” , ממילא תהיינה פחות אי הבנות.
(בינתיים אני די תקוע בצב שלוח עם הבודק האוטומטי - מקווה שאני יבין עד הערב מה הוא רוצה ממני …)
תודה על ההשקעה של כולכם.

מצטרף פה לחברה:

סקרנות:
https://solve.pythonic.guru/view/98483
אותה בעיה כמו לכולם (וקיבלתי משום מה 5 התראות על זה)

חללר:
https://solve.pythonic.guru/view/100835
כנ"ל התראות (הפעם רק 4) שהוא “נכשל ב-1 דוגמאות” אבל אין שום שורה בתוך הבדיקה של התרגיל.

צב שלוח:
https://solve.pythonic.guru/view/99203
שגיאה על subject, על 3 מקרים:
בדיקת מחלקת PostOffice, קריאת מס’ הודעות וחיפוש הודעות עפ"י תוכן וכותרת.

צב שלוח 2:
https://solve.pythonic.guru/view/100830
שגיאה על message_body הפעם, אותם 3 מקרים רק הפעם על בדיקת מחלקת Message.

לייק 1

השאלה שלי היא למי להאמין? לים שכתב לי “יופי!” על התרגיל או לבודק האוטומטי שלא מצליח להריץ אותו :thinking:

  1. יש שיקולים שלא מאפשרים לנו לעקב את הקורס יותר ממה שאנחנו מעכבים אותו כרגע, בין היתר דרישת קהל
  2. יש הבדל עצום בין לכתוב טסטים לעצמנו (יש לנו פתרונות לכל התרגילים שאנחנו מוציאים) לבין לכתוב בדיקות שירוצו על כמה מאות חניכים. קח דוגמה: בתרגיל חללר, חלק משתמשים ב־datetime, חלק ב־time, חלק עושים from datetime import datetime וחלק פשוט import datetime, חלק לא מקבלים את הזמן כפרמטר, חלק כן מקבלים אותו כפרמטר ראשון, וחלק מקבלים אותו כפרמטר שני. הבדיקות ש־@ido כתב מתחשבות בכל מקרי הקצה האלו.

אני לא כועס, אבל כן שווה להניח שהצוות לא אהבל וכן עושה את ה־best effort עבורכם :stuck_out_tongue:

6 לייקים

כנ"ל להכל. מאמין שזה אצל כולם

אני בהחלט מניח שאתם עושים את הבסט !

כוונתי היא שאם כותבים קודם את הטסטים אפשר במפורש לבקש למשל - "תעבדו עם datetime "
“שימו kwargs בשמות כאלו וכאלו”
וכן הלאה.
ככה צריך לבדוק פחות מקרי קצה גם כן.

לייק 1

אני מאוד משתדל שלא להגביל חניכים בצורת כתיבת קוד בשביל שהם יהיו טסטביליים.
אני חושב שזה חוטא למטרה – הטסטים פה כדי לשרת אתכם, ולא אתם את הטסטים :slight_smile:

8 לייקים

בנוגע להתראות המרובות – לצערי אתם עלולים להמשיך לקבל קצת התראות סרק.
התראה נוצרת אוטומטית בכל פעם שהבודק עובר על התרגיל, אז הפעם בגלל חבלי לידה של הטסטים נוצרו קצת יותר התראות לכל תרגיל מהרגיל. אני מתנצל :slight_smile:

2 לייקים

לים!!

:slight_smile: :+1:

2 לייקים

צב שילוח: הערה של subject מכוונת לפרמטר של הכותרת של ההודעה. אם קראתם לה בשם אחר, פשוט תשנו את השם ל subject וזה יפתור את הבעיה.

3 לייקים

כרגע כל התרגילים אמורים להיות בסדר, פרט לצבים השלוחים שמצפים לפרמטרים שלא בהכרח יש לכם (או ששמם שונה). אנחנו נקבל את הפתרונות שלכם בתרגילים האלו גם אם הבודק האוטומטי כועס, אבל אם בא לכם לעשות את ה־extra mile ולזכות בתרגיל ללא הערות הבודק – תוכלו לתקן את שמות הפרמטרים של הפונקציה לפי ההערות שהוא זורק.

ככל שעדיין יש לכם הערות בעייתיות לגבי חללר או לגבי סקרנות, ואתם סבורים שהתקלה היא בבודק האוטומטי – אנא פרטו וצרפו קישור רלוונטי.

5 לייקים

בצב שילוח אני מקבל את ההערה:

 AttributeError: 'PostOffice' object has no attribute 'read_inbox'

https://solve.pythonic.guru/view/101357

נשמע לי מוזר שהוא מחפש פרמטר בשם הזה, אבל לצורך הבדיקה, הוספתי אותה והעלתי מחדש וקיבלתי:

TypeError: 'bool' object is not callable

https://solve.pythonic.guru/view/101361

שאני מבין ממנו שהוא בעצם לא חיפש attribute אלא מתודה?
אבל יש מתודה בשם הזה, שהוגדרה לפי מה שהתבקשנו והיא גם עובדת.

הוא מחפש פונקציה כזו, לא פרמטר כזה :slight_smile: הפונקציה שלך נקראת read_infobox

לייק 1

חחחח. לא באמת. גם עוד יום שלם של הסתכלות על זה לא הייתי שם לב לזה.

השאלה היא איך אני יודעת מה דרוש לתקן כדי לסיים את השבוע במלואו ומה לא.
אם קפצה לי התראה, על חללר/סקרנות למשל, אבל כשאני פותחת את התרגיל עצמו במערכת אין שום הערה למטה, זה בסדר ולא צריך לתקן?
https://solve.pythonic.guru/view/100802
צב שלוח, מהתראה כזאת אפשר להתעלם?
TypeError: send_message() got an unexpected keyword argument ‘sender’