chore: add GUT test framework
This commit is contained in:
94
addons/gut/scratch/get_parent_class.gd
Normal file
94
addons/gut/scratch/get_parent_class.gd
Normal file
@@ -0,0 +1,94 @@
|
||||
extends SceneTree
|
||||
|
||||
const INNER_CLASSES_PATH = 'res://test/resources/doubler_test_objects/inner_classes.gd'
|
||||
var InnerClasses = load(INNER_CLASSES_PATH)
|
||||
|
||||
|
||||
class BaseClass:
|
||||
var foo = 'bar'
|
||||
|
||||
class ILevelOne:
|
||||
extends BaseClass
|
||||
|
||||
class ILevelTwo:
|
||||
extends ILevelOne
|
||||
|
||||
var the_hash = make_class_db_hash()
|
||||
|
||||
|
||||
func test_someting():
|
||||
var ic = InnerClasses.new()
|
||||
var ic_ia = InnerClasses.InnerA.new()
|
||||
|
||||
var dict = {}
|
||||
dict[InnerClasses.InnerA] = 'poop'
|
||||
dict[InnerClasses] = 'foobar'
|
||||
dict[InnerClasses.AnotherInnerA] = 'bar -> foo'
|
||||
|
||||
print(ic_ia, ' is InnerClasses ', ic_ia.is_instance_of(InnerClasses))
|
||||
print(ic_ia.get_class())
|
||||
print(ic_ia.get_script())
|
||||
print(dict[ic_ia.get_script()])
|
||||
|
||||
|
||||
func print_stuff(thing):
|
||||
var s = thing.get_script()
|
||||
print(thing)
|
||||
print(' -', s)
|
||||
print(' -', s.get_instance_base_type())
|
||||
print(' -', s.get_base_script())
|
||||
print(' -', s.get_name())
|
||||
print(' -', s.resource_name)
|
||||
print(' -', s.get_rid())
|
||||
|
||||
# print(thing.get_class())
|
||||
# print(thing.get_class().get_instance_base_type())
|
||||
|
||||
func find_top_of_inheritance(thing):
|
||||
var p = thing.get_script()
|
||||
var last_p = null
|
||||
while(p != null):
|
||||
last_p = p
|
||||
p = p.get_base_script()
|
||||
|
||||
# last_p = ClassDB.get_class(last_p.get_class())
|
||||
|
||||
print('top parent = ', last_p)
|
||||
print(the_hash[last_p.get_instance_base_type()])
|
||||
|
||||
|
||||
func test_something_else():
|
||||
var b = BaseClass.new()
|
||||
var one = ILevelOne.new()
|
||||
var two = ILevelTwo.new()
|
||||
|
||||
print_stuff(b)
|
||||
print_stuff(one)
|
||||
print_stuff(two)
|
||||
|
||||
print('RefCounted = ', RefCounted)
|
||||
print('top should be ', BaseClass)
|
||||
find_top_of_inheritance(two)
|
||||
|
||||
|
||||
|
||||
func make_class_db_hash_text():
|
||||
var text = "var all_classes = {\n"
|
||||
for classname in ClassDB.get_class_list():
|
||||
if(ClassDB.can_instantiate(classname)):
|
||||
text += str(' "', classname, '": ', classname, ", \n")
|
||||
else:
|
||||
text += str(' # ', classname, "\n")
|
||||
text += "}"
|
||||
print(GutUtils.add_line_numbers(text))
|
||||
return text
|
||||
|
||||
func make_class_db_hash():
|
||||
var source = make_class_db_hash_text()
|
||||
return GutUtilscreate_script_from_source(source).new().all_classes
|
||||
|
||||
|
||||
func _init():
|
||||
|
||||
test_something_else()
|
||||
quit();
|
||||
Reference in New Issue
Block a user