@@ -16,31 +16,25 @@ Method TestSimpleString()
16
16
do ##class (isc.py.Callout ).SimpleString (" y=1" )
17
17
set y = ##class (isc.py.Callout ).SimpleString (, " y" )
18
18
do $$$AssertEquals(y , 1 , " Context is persisted" )
19
-
20
- do ##class (isc.py.Callout ).Finalize ()
21
-
22
- set y = ##class (isc.py.Callout ).SimpleString (, " y" )
23
- do $$$AssertEquals(y , " " , " Context successfully flushed" )
24
19
}
25
20
26
21
Method TestLimit ()
27
22
{
28
- do ##class (isc.py.Callout ).Finalize ()
29
23
30
24
do ##class (isc.py.Callout ).SimpleString (" str1000=''.join('A' for _ in range(1000))" )
31
25
32
26
for limit = 32767 ,135108 ,$$$MaxStringLength {
33
27
set quotient = limit \1000
34
28
set modulus = limit #1000
35
- set str = ##class (isc.py.Callout ).SimpleString (" str =''.join(str1000 for i in range(" _quotient _" )) + str1000[:" _ modulus _ " ]" , " str " )
36
- do $$$AssertEquals($l (str ), limit , " Returned " _ limit _ " characters" )
29
+ set str1 = ##class (isc.py.Callout ).SimpleString (" str1 =''.join(str1000 for i in range(" _quotient _" )) + str1000[:" _ modulus _ " ]" , " str1 " )
30
+ do $$$AssertEquals($l (str1 ), limit , " Returned " _ limit _ " characters" )
37
31
}
38
32
39
33
try {
40
34
set limit = $$$MaxStringLength + 1
41
35
set quotient = limit \1000
42
36
set modulus = limit #1000
43
- set str = ##class (isc.py.Callout ).SimpleString (" str =''.join(str1000 for i in range(" _quotient _" )) + str1000[:" _ modulus _ " ]" , " str " )
37
+ set str1 = ##class (isc.py.Callout ).SimpleString (" str1 =''.join(str1000 for i in range(" _quotient _" )) + str1000[:" _ modulus _ " ]" , " str1 " )
44
38
} catch ex {
45
39
do $$$AssertEquals(ex .Name , " <FUNCTION>" , " Correctly failed to pass " _ limit _ " characters" )
46
40
}
@@ -57,7 +51,7 @@ Method TestPassSpeedIn()
57
51
set rounds = 295
58
52
set start = $zh
59
53
for i = 1 :1 :rounds {
60
- do ##class (isc.py.Callout ).SimpleString (" str ='" _ str _ " '" )
54
+ do ##class (isc.py.Callout ).SimpleString (" str1 ='" _ str _ " '" )
61
55
}
62
56
set end = $zh
63
57
@@ -73,12 +67,12 @@ Method TestPassSpeedOut()
73
67
set limit = $$$MaxStringLength
74
68
set quotient = limit \1000
75
69
set modulus = limit #1000
76
- do ##class (isc.py.Callout ).SimpleString (" str =''.join(str1000 for i in range(" _quotient _" )) + str1000[:" _ modulus _ " ]" , " str " )
70
+ do ##class (isc.py.Callout ).SimpleString (" str1 =''.join(str1000 for i in range(" _quotient _" )) + str1000[:" _ modulus _ " ]" , " str1 " )
77
71
78
72
set rounds = 295
79
73
set start = $zh
80
74
for i = 1 :1 :rounds {
81
- set str = ##class (isc.py.Callout ).SimpleString (, " str " )
75
+ set str = ##class (isc.py.Callout ).SimpleString (, " str1 " )
82
76
kill str
83
77
}
84
78
set end = $zh
@@ -92,11 +86,11 @@ Method TestPassSpeedOut()
92
86
93
87
Method TestSetCallSpeed ()
94
88
{
95
- do ##class (isc.py.Callout ).SimpleString (" str =''" )
89
+ do ##class (isc.py.Callout ).SimpleString (" str1 =''" )
96
90
set rounds = 100000
97
91
set start = $zh
98
92
for i = 1 :1 :rounds {
99
- do ##class (isc.py.Callout ).SimpleString (" str =" _ i )
93
+ do ##class (isc.py.Callout ).SimpleString (" str1 =" _ i )
100
94
}
101
95
set end = $zh
102
96
@@ -444,5 +438,56 @@ Method TestExecuteFunctionArgs()
444
438
do $$$AssertEquals(result , " Positional: Hello World! Keyword: Alice, Bob" , " str.format returned expected string" )
445
439
}
446
440
441
+ Method TestProxyObject ()
442
+ {
443
+ set sc = ##class (isc.py.init.Test ).InitPerson ()
444
+ do $$$AssertStatusOK(sc , " Loaded person class" )
445
+
446
+ set variable = " p1"
447
+
448
+ set nameRaw = " Ed"
449
+ set name = ##class (isc.py.util.Converter ).EscapeString (nameRaw )
450
+ set age = 25
451
+ set obj = ##class (isc.py.gw.DynamicObject ).%New (" Person" , variable , ##class (isc.py.Callout ).#SerializationStr, name , age , " 'Test'" )
452
+
453
+ set nameReturned = obj .name
454
+ do $$$AssertEquals(nameRaw , nameReturned )
455
+
456
+ set name2 = " Bob"
457
+ set obj .name = name2
458
+ set nameReturned = obj .name
459
+
460
+ do $$$AssertEquals(name2 , nameReturned )
461
+
462
+ set newProp = " Dog"
463
+ set obj .pet = newProp
464
+ set newPropReturned = obj .pet
465
+ do $$$AssertEquals(newProp , newPropReturned )
466
+
467
+ set ageReturned = obj .getAge ()
468
+ do $$$AssertEquals(age , ageReturned )
469
+
470
+ set plus = 10
471
+ set plusReturned = obj .getAgePlus (plus )
472
+ do $$$AssertEquals(age + plus , plusReturned )
473
+
474
+ kill obj , nameReturned
475
+
476
+ set obj = ##class (isc.py.gw.DynamicObject ).%New (, variable )
477
+
478
+ set nameReturned = obj .name
479
+ do $$$AssertEquals(name2 , nameReturned )
480
+
481
+ set sc = obj .%ToDynObj (.dynObj )
482
+
483
+ do $$$AssertEquals(obj .city , dynObj .city )
484
+
485
+ set sc = obj .%Destroy ()
486
+ do $$$AssertStatusOK(sc , " Destroyed person object" )
487
+
488
+ set sc = ##class (isc.py.Main ).GetVariableInfo (variable ,,.defined )
489
+ do $$$AssertNotTrue(defined , " Person object is undefined" )
490
+ }
491
+
447
492
}
448
493
0 commit comments