Skip to content

Commit d68686c

Browse files
Fix: correct logic for tests in 20.1 and provide more descriptive errors (#1170)
* corrected logic for tests in 20.1 and provide more descriptive errors * c --------- Co-authored-by: Nathan Lovato <12694995+NathanLovato@users.noreply.github.com>
1 parent d5af1a2 commit d68686c

File tree

4 files changed

+47
-46
lines changed

4 files changed

+47
-46
lines changed

course/course-learn-gdscript.tres

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,35 @@
11
[gd_resource type="Resource" load_steps=29 format=2]
22

33
[ext_resource path="res://resources/Course.gd" type="Script" id=1]
4-
[ext_resource path="res://course/lesson-26-looping-over-dictionaries/lesson.tres" type="Resource" id=2]
5-
[ext_resource path="res://course/lesson-20-looping-over-arrays/lesson.tres" type="Resource" id=3]
6-
[ext_resource path="res://course/lesson-6-multiple-function-parameters/lesson.tres" type="Resource" id=4]
7-
[ext_resource path="res://course/lesson-5-your-first-function/lesson.tres" type="Resource" id=5]
8-
[ext_resource path="res://course/lesson-16-2d-vectors/lesson.tres" type="Resource" id=6]
9-
[ext_resource path="res://course/lesson-8-defining-variables/lesson.tres" type="Resource" id=7]
10-
[ext_resource path="res://course/lesson-12-using-variables/lesson.tres" type="Resource" id=8]
11-
[ext_resource path="res://course/lesson-7-member-variables/lesson.tres" type="Resource" id=9]
12-
[ext_resource path="res://course/lesson-25-creating-dictionaries/lesson.tres" type="Resource" id=10]
13-
[ext_resource path="res://course/lesson-1-what-code-is-like/lesson.tres" type="Resource" id=11]
14-
[ext_resource path="res://course/lesson-28-specifying-types/lesson.tres" type="Resource" id=12]
15-
[ext_resource path="res://course/lesson-17-while-loops/lesson.tres" type="Resource" id=13]
16-
[ext_resource path="res://course/lesson-22-functions-return-values/lesson.tres" type="Resource" id=14]
17-
[ext_resource path="res://course/lesson-21-strings/lesson.tres" type="Resource" id=15]
18-
[ext_resource path="res://course/lesson-27-value-types/lesson.tres" type="Resource" id=16]
19-
[ext_resource path="res://course/lesson-18-for-loops/lesson.tres" type="Resource" id=17]
20-
[ext_resource path="res://course/lesson-3-standing-on-shoulders-of-giants/lesson.tres" type="Resource" id=18]
21-
[ext_resource path="res://course/lesson-11-time-delta/lesson.tres" type="Resource" id=19]
22-
[ext_resource path="res://course/lesson-13-conditions/lesson.tres" type="Resource" id=20]
23-
[ext_resource path="res://course/lesson-2-your-first-error/lesson.tres" type="Resource" id=21]
24-
[ext_resource path="res://course/lesson-23-append-to-arrays/lesson.tres" type="Resource" id=22]
25-
[ext_resource path="res://course/lesson-4-drawing-a-rectangle/lesson.tres" type="Resource" id=23]
26-
[ext_resource path="res://course/lesson-24-access-array-indices/lesson.tres" type="Resource" id=24]
27-
[ext_resource path="res://course/lesson-19-creating-arrays/lesson.tres" type="Resource" id=25]
28-
[ext_resource path="res://course/lesson-9-adding-and-subtracting/lesson.tres" type="Resource" id=26]
29-
[ext_resource path="res://course/lesson-10-the-game-loop/lesson.tres" type="Resource" id=27]
30-
[ext_resource path="res://course/lesson-14-multiplying/lesson.tres" type="Resource" id=28]
4+
[ext_resource path="res://course/lesson-20-looping-over-arrays/lesson.tres" type="Resource" id=2]
5+
[ext_resource path="res://course/lesson-6-multiple-function-parameters/lesson.tres" type="Resource" id=3]
6+
[ext_resource path="res://course/lesson-5-your-first-function/lesson.tres" type="Resource" id=4]
7+
[ext_resource path="res://course/lesson-16-2d-vectors/lesson.tres" type="Resource" id=5]
8+
[ext_resource path="res://course/lesson-8-defining-variables/lesson.tres" type="Resource" id=6]
9+
[ext_resource path="res://course/lesson-12-using-variables/lesson.tres" type="Resource" id=7]
10+
[ext_resource path="res://course/lesson-7-member-variables/lesson.tres" type="Resource" id=8]
11+
[ext_resource path="res://course/lesson-25-creating-dictionaries/lesson.tres" type="Resource" id=9]
12+
[ext_resource path="res://course/lesson-1-what-code-is-like/lesson.tres" type="Resource" id=10]
13+
[ext_resource path="res://course/lesson-28-specifying-types/lesson.tres" type="Resource" id=11]
14+
[ext_resource path="res://course/lesson-17-while-loops/lesson.tres" type="Resource" id=12]
15+
[ext_resource path="res://course/lesson-22-functions-return-values/lesson.tres" type="Resource" id=13]
16+
[ext_resource path="res://course/lesson-21-strings/lesson.tres" type="Resource" id=14]
17+
[ext_resource path="res://course/lesson-27-value-types/lesson.tres" type="Resource" id=15]
18+
[ext_resource path="res://course/lesson-18-for-loops/lesson.tres" type="Resource" id=16]
19+
[ext_resource path="res://course/lesson-3-standing-on-shoulders-of-giants/lesson.tres" type="Resource" id=17]
20+
[ext_resource path="res://course/lesson-11-time-delta/lesson.tres" type="Resource" id=18]
21+
[ext_resource path="res://course/lesson-13-conditions/lesson.tres" type="Resource" id=19]
22+
[ext_resource path="res://course/lesson-2-your-first-error/lesson.tres" type="Resource" id=20]
23+
[ext_resource path="res://course/lesson-23-append-to-arrays/lesson.tres" type="Resource" id=21]
24+
[ext_resource path="res://course/lesson-4-drawing-a-rectangle/lesson.tres" type="Resource" id=22]
25+
[ext_resource path="res://course/lesson-24-access-array-indices/lesson.tres" type="Resource" id=23]
26+
[ext_resource path="res://course/lesson-19-creating-arrays/lesson.tres" type="Resource" id=24]
27+
[ext_resource path="res://course/lesson-9-adding-and-subtracting/lesson.tres" type="Resource" id=25]
28+
[ext_resource path="res://course/lesson-10-the-game-loop/lesson.tres" type="Resource" id=26]
29+
[ext_resource path="res://course/lesson-14-multiplying/lesson.tres" type="Resource" id=27]
30+
[ext_resource path="res://course/lesson-26-looping-over-dictionaries/lesson.tres" type="Resource" id=28]
3131

3232
[resource]
3333
script = ExtResource( 1 )
3434
title = "Learn GDScript From Zero"
35-
lessons = [ ExtResource( 11 ), ExtResource( 21 ), ExtResource( 18 ), ExtResource( 23 ), ExtResource( 5 ), ExtResource( 4 ), ExtResource( 9 ), ExtResource( 7 ), ExtResource( 26 ), ExtResource( 27 ), ExtResource( 19 ), ExtResource( 8 ), ExtResource( 20 ), ExtResource( 28 ), ExtResource( 6 ), ExtResource( 13 ), ExtResource( 17 ), ExtResource( 25 ), ExtResource( 3 ), ExtResource( 15 ), ExtResource( 14 ), ExtResource( 22 ), ExtResource( 24 ), ExtResource( 10 ), ExtResource( 2 ), ExtResource( 16 ), ExtResource( 12 ) ]
35+
lessons = [ ExtResource( 10 ), ExtResource( 20 ), ExtResource( 17 ), ExtResource( 22 ), ExtResource( 4 ), ExtResource( 3 ), ExtResource( 8 ), ExtResource( 6 ), ExtResource( 25 ), ExtResource( 26 ), ExtResource( 18 ), ExtResource( 7 ), ExtResource( 19 ), ExtResource( 27 ), ExtResource( 5 ), ExtResource( 12 ), ExtResource( 16 ), ExtResource( 24 ), ExtResource( 2 ), ExtResource( 14 ), ExtResource( 13 ), ExtResource( 21 ), ExtResource( 23 ), ExtResource( 9 ), ExtResource( 28 ), ExtResource( 15 ), ExtResource( 11 ) ]

course/lesson-21-strings/lesson.tres

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -148,14 +148,15 @@ has_separator = false
148148
script = ExtResource( 2 )
149149
practice_id = "res://course/lesson-21-strings/practice-iGjB7tKR.tres"
150150
title = "Creating string variables"
151-
goal = "Currently, the robot has a number stored in the [code]robot_name[/code] variable.
151+
goal = "Currently, the robot has a number stored in the [code]robot_name[/code] variable.
152152
153153
Change the [code]robot_name[/code] variable so that it's a string instead. You can give it any name you'd like."
154-
starting_code = "func run():
155-
robot_name = 0"
156-
cursor_line = 0
154+
starting_code = "var robot_name = 0
155+
156+
func run():
157+
print(\"Hi, \" + robot_name + \"!\")"
157158
cursor_column = 0
158-
hints = PoolStringArray( "Make sure to use quotes when defining strings to differentiate them from other variable types." )
159+
hints = PoolStringArray( "Strings need to be wrapped in quotes like \"Robi\".", "Replace the number 0 with your string (the robot's name)." )
159160
validator_script_path = "string_error/TestsStringError.gd"
160161
script_slice_path = "string_error/StringError.gd"
161162
slice_name = "print_string"

course/lesson-21-strings/string_error/StringError.gd

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,16 @@ func _run() -> void:
1212
run()
1313
if robot_name is String:
1414
_label.text = robot_name
15+
else:
16+
_label.text = "robot_name"
1517
yield(get_tree().create_timer(1.0), "timeout")
1618
_animation_tree.travel("saying_hi")
1719
Events.emit_signal("practice_run_completed")
1820

1921

20-
var robot_name = -1
21-
2222
# EXPORT print_string
23+
var robot_name = "Robi"
24+
2325
func run():
24-
robot_name = "Robi"
26+
print("Hi, " + robot_name + "!")
2527
# /EXPORT print_string

course/lesson-21-strings/string_error/TestsStringError.gd

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ extends PracticeTester
33
var robot: Node2D
44
var has_name_prop := false
55

6+
67
func _prepare() -> void:
78
robot = _scene_root_viewport.get_child(0)
89
has_name_prop = false
@@ -12,16 +13,13 @@ func _prepare() -> void:
1213
break
1314

1415

15-
func test_has_robot_name_variable() -> String:
16-
if not has_name_prop:
17-
return "The robot_name variable doesn't exist. Did you define it with the var keyword?"
18-
return ""
19-
20-
2116
func test_robot_name_is_a_string() -> String:
2217
if not has_name_prop:
23-
return "The robot_name variable doesn't exist. Make sure it's defined."
24-
var robot_name = robot.get("robot_name")
25-
if not robot_name is String:
26-
return "The robot_name isn't a string. Did you add quotes around the value?"
18+
return tr("The robot_name variable doesn't exist.")
19+
20+
var value = robot.get("robot_name")
21+
if value is int and value == 0:
22+
return tr("The robot_name variable is set to 0. Did you change its value?")
23+
elif not value is String:
24+
return tr("The robot_name isn't a string. Did you add quotes around the value?")
2725
return ""

0 commit comments

Comments
 (0)