chore: add GUT test framework
This commit is contained in:
133
addons/gut/scratch/find_inner_classes.gd
Normal file
133
addons/gut/scratch/find_inner_classes.gd
Normal file
@@ -0,0 +1,133 @@
|
||||
extends SceneTree
|
||||
|
||||
var ThatInnerClassScript = load('res://test/resources/doubler_test_objects/inner_classes.gd')
|
||||
|
||||
|
||||
class HasSomeInners:
|
||||
signal look_at_me_now
|
||||
|
||||
const WHATEVER = 'maaaaaan'
|
||||
|
||||
class Inner1:
|
||||
extends 'res://addons/gut/test.gd'
|
||||
var a = 'b'
|
||||
|
||||
class Inner2:
|
||||
var b = 'a'
|
||||
|
||||
class Inner2_a:
|
||||
extends 'res://addons/gut/test.gd'
|
||||
|
||||
class Inner2_b:
|
||||
var foo = 'bar'
|
||||
|
||||
class Inner3:
|
||||
extends GutInternalTester
|
||||
|
||||
class ExtendsInner1:
|
||||
extends Inner1
|
||||
|
||||
|
||||
func get_extends_text(inner, parent_script):
|
||||
if(parent_script.get_path() == ''):
|
||||
return null
|
||||
|
||||
var to_return = null
|
||||
var inner_string = get_inner_class_string(inner, parent_script)
|
||||
if(inner_string != null):
|
||||
to_return = str("extends '", parent_script.get_path(), "'.", inner_string)
|
||||
|
||||
return to_return
|
||||
|
||||
|
||||
func get_inner_class_string(inner, parent_script):
|
||||
|
||||
var const_map = parent_script.get_script_constant_map()
|
||||
var consts = const_map.keys()
|
||||
var const_idx = 0
|
||||
var found = false
|
||||
var to_return = null
|
||||
|
||||
while(const_idx < consts.size() and !found):
|
||||
var key = consts[const_idx]
|
||||
var thing = const_map[key]
|
||||
|
||||
if(typeof(thing) == TYPE_OBJECT):
|
||||
if(thing == inner):
|
||||
found = true
|
||||
to_return = key
|
||||
else:
|
||||
to_return = get_inner_class_string(inner, thing)
|
||||
if(to_return != null):
|
||||
to_return = str(key, '.', to_return)
|
||||
found = true
|
||||
|
||||
const_idx += 1
|
||||
|
||||
return to_return
|
||||
|
||||
|
||||
func print_other_info(loaded, msg = '', indent=''):
|
||||
print(indent, loaded)
|
||||
|
||||
var base_script_path = 'NO base script'
|
||||
if(loaded.has_method('get_base_script')):
|
||||
if(loaded.get_base_script() != null):
|
||||
base_script_path = str('"', loaded.get_base_script().get_path(), '"')
|
||||
else:
|
||||
base_script_path = 'Null base script'
|
||||
|
||||
print(indent, 'base_script path ', base_script_path)
|
||||
print(indent, 'class ', loaded.get_class())
|
||||
print(indent, 'instance base type ', loaded.get_instance_base_type())
|
||||
print(indent, 'instance_id ', loaded.get_instance_id())
|
||||
print(indent, 'meta_list ', loaded.get_meta_list())
|
||||
print(indent, 'name ', loaded.get_name())
|
||||
print(indent, 'path ', loaded.get_path())
|
||||
print(indent, 'resource local to scene ', loaded.resource_local_to_scene)
|
||||
print(indent, 'resource name ', loaded.resource_name)
|
||||
print(indent, 'resource path ', loaded.resource_path)
|
||||
print(indent, 'RID ', loaded.get_rid())
|
||||
print(indent, 'script ', loaded.get_script())
|
||||
print()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
func find_parent_script(InnerClass):
|
||||
var max_search = 20
|
||||
var start_id = InnerClass.get_instance_id()
|
||||
var search_id = start_id + 1
|
||||
var found = false
|
||||
|
||||
while(search_id < start_id + max_search and !found):
|
||||
print(search_id)
|
||||
var search_obj = instance_from_id(search_id)
|
||||
print(search_obj)
|
||||
if(search_obj != null):
|
||||
print(search_obj)
|
||||
search_id += 1
|
||||
|
||||
|
||||
func _init():
|
||||
print(GutDoubleTestInnerClasses)
|
||||
print(GutDoubleTestInnerClasses.InnerA)
|
||||
print(ThatInnerClassScript.get_instance_id() + ThatInnerClassScript.InnerA.get_instance_id())
|
||||
find_parent_script(GutDoubleTestInnerClasses.InnerA)
|
||||
quit()
|
||||
|
||||
# var result = get_inner_class_string(HasSomeInners.Inner2.Inner2_b, self.get_script())
|
||||
# print(result)
|
||||
|
||||
# print()
|
||||
# result = get_inner_class_string(ThatInnerClassScript.InnerWithSignals, ThatInnerClassScript)
|
||||
# print(result)
|
||||
|
||||
# print(get_extends_text(HasSomeInners.Inner2.Inner2_b, self.get_script()))
|
||||
|
||||
# print(get_extends_text(HasSomeInners.Inner2.Inner2_b, HasSomeInners))
|
||||
|
||||
# print(get_extends_text(ThatInnerClassScript.InnerWithSignals, ThatInnerClassScript))
|
||||
|
||||
# quit()
|
||||
Reference in New Issue
Block a user