@alloy-js/python 0.5.0-dev.1 → 0.5.0-dev.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dev/src/components/SourceFile.js +44 -32
- package/dist/dev/src/components/SourceFile.js.map +1 -1
- package/dist/dev/test/callsignatures.test.js +471 -297
- package/dist/dev/test/callsignatures.test.js.map +1 -1
- package/dist/dev/test/class-method-declaration.test.js +21 -10
- package/dist/dev/test/class-method-declaration.test.js.map +1 -1
- package/dist/dev/test/classdeclarations.test.js +459 -393
- package/dist/dev/test/classdeclarations.test.js.map +1 -1
- package/dist/dev/test/classinstantiations.test.js +201 -168
- package/dist/dev/test/classinstantiations.test.js.map +1 -1
- package/dist/dev/test/constructordeclaration.test.js +22 -11
- package/dist/dev/test/constructordeclaration.test.js.map +1 -1
- package/dist/dev/test/dataclassdeclarations.test.js +322 -368
- package/dist/dev/test/dataclassdeclarations.test.js.map +1 -1
- package/dist/dev/test/decoratorlist.test.js +96 -49
- package/dist/dev/test/decoratorlist.test.js.map +1 -1
- package/dist/dev/test/dundermethoddeclaration.test.js +22 -11
- package/dist/dev/test/dundermethoddeclaration.test.js.map +1 -1
- package/dist/dev/test/enums.test.js +218 -184
- package/dist/dev/test/enums.test.js.map +1 -1
- package/dist/dev/test/externals.test.js +57 -45
- package/dist/dev/test/externals.test.js.map +1 -1
- package/dist/dev/test/factories.test.js +124 -50
- package/dist/dev/test/factories.test.js.map +1 -1
- package/dist/dev/test/functioncallexpressions.test.js +199 -164
- package/dist/dev/test/functioncallexpressions.test.js.map +1 -1
- package/dist/dev/test/functiondeclaration.test.js +439 -272
- package/dist/dev/test/functiondeclaration.test.js.map +1 -1
- package/dist/dev/test/imports.test.js +273 -221
- package/dist/dev/test/imports.test.js.map +1 -1
- package/dist/dev/test/memberexpressions.test.js +1237 -972
- package/dist/dev/test/memberexpressions.test.js.map +1 -1
- package/dist/dev/test/methoddeclaration.test.js +142 -78
- package/dist/dev/test/methoddeclaration.test.js.map +1 -1
- package/dist/dev/test/namepolicies.test.js +130 -94
- package/dist/dev/test/namepolicies.test.js.map +1 -1
- package/dist/dev/test/propertydeclaration.test.js +88 -59
- package/dist/dev/test/propertydeclaration.test.js.map +1 -1
- package/dist/dev/test/pydanticclassdeclarations.test.js +299 -347
- package/dist/dev/test/pydanticclassdeclarations.test.js.map +1 -1
- package/dist/dev/test/pydocs.test.js +888 -715
- package/dist/dev/test/pydocs.test.js.map +1 -1
- package/dist/dev/test/references.test.js +42 -35
- package/dist/dev/test/references.test.js.map +1 -1
- package/dist/dev/test/sourcefiles.test.js +1109 -841
- package/dist/dev/test/sourcefiles.test.js.map +1 -1
- package/dist/dev/test/staticmethoddeclaration.test.js +21 -10
- package/dist/dev/test/staticmethoddeclaration.test.js.map +1 -1
- package/dist/dev/test/type-checking-imports.test.js +408 -359
- package/dist/dev/test/type-checking-imports.test.js.map +1 -1
- package/dist/dev/test/typereference.test.js +55 -40
- package/dist/dev/test/typereference.test.js.map +1 -1
- package/dist/dev/test/uniontypeexpression.test.js +222 -146
- package/dist/dev/test/uniontypeexpression.test.js.map +1 -1
- package/dist/dev/test/utils.js +39 -77
- package/dist/dev/test/utils.js.map +1 -1
- package/dist/dev/test/values.test.js +237 -101
- package/dist/dev/test/values.test.js.map +1 -1
- package/dist/dev/test/variables.test.js +321 -203
- package/dist/dev/test/variables.test.js.map +1 -1
- package/dist/dev/test/vitest.setup.js +2 -0
- package/dist/dev/test/vitest.setup.js.map +1 -0
- package/dist/src/components/SourceFile.d.ts +2 -2
- package/dist/src/components/SourceFile.d.ts.map +1 -1
- package/dist/src/components/SourceFile.js +12 -0
- package/dist/src/components/SourceFile.js.map +1 -1
- package/dist/test/callsignatures.test.js +346 -272
- package/dist/test/callsignatures.test.js.map +1 -1
- package/dist/test/class-method-declaration.test.js +7 -4
- package/dist/test/class-method-declaration.test.js.map +1 -1
- package/dist/test/classdeclarations.test.js +302 -288
- package/dist/test/classdeclarations.test.js.map +1 -1
- package/dist/test/classinstantiations.test.js +112 -103
- package/dist/test/classinstantiations.test.js.map +1 -1
- package/dist/test/constructordeclaration.test.js +7 -4
- package/dist/test/constructordeclaration.test.js.map +1 -1
- package/dist/test/dataclassdeclarations.test.js +134 -184
- package/dist/test/dataclassdeclarations.test.js.map +1 -1
- package/dist/test/decoratorlist.test.js +59 -36
- package/dist/test/decoratorlist.test.js.map +1 -1
- package/dist/test/dundermethoddeclaration.test.js +7 -4
- package/dist/test/dundermethoddeclaration.test.js.map +1 -1
- package/dist/test/enums.test.js +161 -159
- package/dist/test/enums.test.js.map +1 -1
- package/dist/test/externals.test.js +24 -24
- package/dist/test/externals.test.js.map +1 -1
- package/dist/test/factories.test.js +75 -33
- package/dist/test/factories.test.js.map +1 -1
- package/dist/test/functioncallexpressions.test.js +117 -106
- package/dist/test/functioncallexpressions.test.js.map +1 -1
- package/dist/test/functiondeclaration.test.js +247 -180
- package/dist/test/functiondeclaration.test.js.map +1 -1
- package/dist/test/imports.test.js +171 -143
- package/dist/test/imports.test.js.map +1 -1
- package/dist/test/memberexpressions.test.js +582 -453
- package/dist/test/memberexpressions.test.js.map +1 -1
- package/dist/test/methoddeclaration.test.js +66 -46
- package/dist/test/methoddeclaration.test.js.map +1 -1
- package/dist/test/namepolicies.test.js +90 -78
- package/dist/test/namepolicies.test.js.map +1 -1
- package/dist/test/propertydeclaration.test.js +25 -20
- package/dist/test/propertydeclaration.test.js.map +1 -1
- package/dist/test/pydanticclassdeclarations.test.js +134 -190
- package/dist/test/pydanticclassdeclarations.test.js.map +1 -1
- package/dist/test/pydocs.test.js +573 -532
- package/dist/test/pydocs.test.js.map +1 -1
- package/dist/test/references.test.js +31 -28
- package/dist/test/references.test.js.map +1 -1
- package/dist/test/sourcefiles.test.js +700 -580
- package/dist/test/sourcefiles.test.js.map +1 -1
- package/dist/test/staticmethoddeclaration.test.js +7 -4
- package/dist/test/staticmethoddeclaration.test.js.map +1 -1
- package/dist/test/type-checking-imports.test.js +297 -284
- package/dist/test/type-checking-imports.test.js.map +1 -1
- package/dist/test/typereference.test.js +29 -22
- package/dist/test/typereference.test.js.map +1 -1
- package/dist/test/uniontypeexpression.test.js +124 -88
- package/dist/test/uniontypeexpression.test.js.map +1 -1
- package/dist/test/utils.d.ts +10 -17
- package/dist/test/utils.d.ts.map +1 -1
- package/dist/test/utils.js +32 -74
- package/dist/test/utils.js.map +1 -1
- package/dist/test/values.test.js +135 -67
- package/dist/test/values.test.js.map +1 -1
- package/dist/test/variables.test.js +201 -151
- package/dist/test/variables.test.js.map +1 -1
- package/dist/test/vitest.setup.d.ts +2 -0
- package/dist/test/vitest.setup.d.ts.map +1 -0
- package/dist/test/vitest.setup.js +2 -0
- package/dist/test/vitest.setup.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/docs/api/components/SourceFile.md +20 -8
- package/package.json +2 -2
- package/src/components/SourceFile.tsx +6 -1
- package/temp/api.json +16 -2
- package/test/callsignatures.test.tsx +309 -283
- package/test/class-method-declaration.test.tsx +3 -4
- package/test/classdeclarations.test.tsx +263 -248
- package/test/classinstantiations.test.tsx +115 -109
- package/test/constructordeclaration.test.tsx +9 -6
- package/test/dataclassdeclarations.test.tsx +243 -361
- package/test/decoratorlist.test.tsx +78 -59
- package/test/dundermethoddeclaration.test.tsx +3 -4
- package/test/enums.test.tsx +65 -81
- package/test/externals.test.tsx +25 -25
- package/test/factories.test.tsx +64 -22
- package/test/functioncallexpressions.test.tsx +123 -109
- package/test/functiondeclaration.test.tsx +209 -148
- package/test/imports.test.tsx +119 -91
- package/test/memberexpressions.test.tsx +265 -207
- package/test/methoddeclaration.test.tsx +84 -63
- package/test/namepolicies.test.tsx +69 -69
- package/test/propertydeclaration.test.tsx +7 -8
- package/test/pydanticclassdeclarations.test.tsx +355 -487
- package/test/pydocs.test.tsx +531 -579
- package/test/references.test.tsx +24 -23
- package/test/sourcefiles.test.tsx +527 -492
- package/test/staticmethoddeclaration.test.tsx +3 -4
- package/test/type-checking-imports.test.tsx +206 -218
- package/test/typereference.test.tsx +15 -12
- package/test/uniontypeexpression.test.tsx +74 -61
- package/test/utils.tsx +26 -110
- package/test/values.test.tsx +82 -32
- package/test/variables.test.tsx +162 -142
- package/test/vitest.setup.ts +1 -0
- package/vitest.config.ts +3 -0
package/test/factories.test.tsx
CHANGED
|
@@ -1,46 +1,76 @@
|
|
|
1
|
+
import { render } from "@alloy-js/core";
|
|
1
2
|
import { describe, expect, it } from "vitest";
|
|
2
3
|
import * as py from "../src/index.js";
|
|
3
|
-
import {
|
|
4
|
+
import { TestOutput } from "./utils.js";
|
|
4
5
|
|
|
5
6
|
describe("Symbol factories", () => {
|
|
6
7
|
it("createMethodSymbol throws outside class", () => {
|
|
7
8
|
expect(() => {
|
|
8
|
-
|
|
9
|
+
render(
|
|
10
|
+
<TestOutput>
|
|
11
|
+
<py.MethodDeclaration name="m" />
|
|
12
|
+
</TestOutput>,
|
|
13
|
+
);
|
|
9
14
|
}).toThrow('Method "m" must be declared inside a class (member scope)');
|
|
10
15
|
});
|
|
11
16
|
|
|
12
17
|
it("createMethodSymbol succeeds inside class", () => {
|
|
13
|
-
|
|
14
|
-
<
|
|
15
|
-
<py.
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
18
|
+
expect(
|
|
19
|
+
<TestOutput>
|
|
20
|
+
<py.ClassDeclaration name="C">
|
|
21
|
+
<py.MethodDeclaration name="m" />
|
|
22
|
+
</py.ClassDeclaration>
|
|
23
|
+
</TestOutput>,
|
|
24
|
+
).toRenderTo(
|
|
25
|
+
`
|
|
26
|
+
class C:
|
|
27
|
+
def m(self):
|
|
28
|
+
pass
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
`,
|
|
32
|
+
);
|
|
19
33
|
});
|
|
20
34
|
|
|
21
35
|
it("createFunctionSymbol usable in member scope (top-level function component still works nested)", () => {
|
|
22
|
-
|
|
23
|
-
<
|
|
24
|
-
<py.
|
|
25
|
-
<py.
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
36
|
+
expect(
|
|
37
|
+
<TestOutput>
|
|
38
|
+
<py.ClassDeclaration name="C">
|
|
39
|
+
<py.StatementList>
|
|
40
|
+
<py.FunctionDeclaration name="f" />
|
|
41
|
+
</py.StatementList>
|
|
42
|
+
</py.ClassDeclaration>
|
|
43
|
+
</TestOutput>,
|
|
44
|
+
).toRenderTo(
|
|
45
|
+
`
|
|
46
|
+
class C:
|
|
47
|
+
def f():
|
|
48
|
+
pass
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
`,
|
|
52
|
+
);
|
|
31
53
|
});
|
|
32
54
|
});
|
|
33
55
|
|
|
34
56
|
describe("Validation Errors", () => {
|
|
35
57
|
it("throws error when PropertyDeclaration is used outside of a class", () => {
|
|
36
58
|
expect(() => {
|
|
37
|
-
|
|
59
|
+
render(
|
|
60
|
+
<TestOutput>
|
|
61
|
+
<py.PropertyDeclaration name="x" />
|
|
62
|
+
</TestOutput>,
|
|
63
|
+
);
|
|
38
64
|
}).toThrow('Method "x" must be declared inside a class (member scope)');
|
|
39
65
|
});
|
|
40
66
|
|
|
41
67
|
it("throws error when MethodDeclaration is used outside of a class", () => {
|
|
42
68
|
expect(() => {
|
|
43
|
-
|
|
69
|
+
render(
|
|
70
|
+
<TestOutput>
|
|
71
|
+
<py.MethodDeclaration name="my_method" />
|
|
72
|
+
</TestOutput>,
|
|
73
|
+
);
|
|
44
74
|
}).toThrow(
|
|
45
75
|
'Method "my_method" must be declared inside a class (member scope)',
|
|
46
76
|
);
|
|
@@ -48,7 +78,11 @@ describe("Validation Errors", () => {
|
|
|
48
78
|
|
|
49
79
|
it("throws error when ClassMethodDeclaration is used outside of a class", () => {
|
|
50
80
|
expect(() => {
|
|
51
|
-
|
|
81
|
+
render(
|
|
82
|
+
<TestOutput>
|
|
83
|
+
<py.ClassMethodDeclaration name="my_class_method" />
|
|
84
|
+
</TestOutput>,
|
|
85
|
+
);
|
|
52
86
|
}).toThrow(
|
|
53
87
|
'Method "my_class_method" must be declared inside a class (member scope)',
|
|
54
88
|
);
|
|
@@ -56,7 +90,11 @@ describe("Validation Errors", () => {
|
|
|
56
90
|
|
|
57
91
|
it("throws error when StaticMethodDeclaration is used outside of a class", () => {
|
|
58
92
|
expect(() => {
|
|
59
|
-
|
|
93
|
+
render(
|
|
94
|
+
<TestOutput>
|
|
95
|
+
<py.StaticMethodDeclaration name="my_static_method" />
|
|
96
|
+
</TestOutput>,
|
|
97
|
+
);
|
|
60
98
|
}).toThrow(
|
|
61
99
|
'Method "my_static_method" must be declared inside a class (member scope)',
|
|
62
100
|
);
|
|
@@ -64,7 +102,11 @@ describe("Validation Errors", () => {
|
|
|
64
102
|
|
|
65
103
|
it("throws error when DunderMethodDeclaration is used outside of a class", () => {
|
|
66
104
|
expect(() => {
|
|
67
|
-
|
|
105
|
+
render(
|
|
106
|
+
<TestOutput>
|
|
107
|
+
<py.DunderMethodDeclaration name="__init__" />
|
|
108
|
+
</TestOutput>,
|
|
109
|
+
);
|
|
68
110
|
}).toThrow(
|
|
69
111
|
'Method "__init__" must be declared inside a class (member scope)',
|
|
70
112
|
);
|
|
@@ -1,145 +1,159 @@
|
|
|
1
1
|
import { refkey } from "@alloy-js/core";
|
|
2
|
-
import { d } from "@alloy-js/core/testing";
|
|
3
2
|
import { describe, expect, it } from "vitest";
|
|
4
3
|
import * as py from "../src/index.js";
|
|
5
|
-
import {
|
|
4
|
+
import { TestOutput } from "./utils.js";
|
|
6
5
|
|
|
7
6
|
describe("FunctionCallExpression", () => {
|
|
8
7
|
it("renders", () => {
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
expect(
|
|
9
|
+
<TestOutput>
|
|
10
|
+
<py.FunctionCallExpression target="foo" />
|
|
11
|
+
</TestOutput>,
|
|
12
|
+
).toRenderTo(
|
|
13
|
+
`
|
|
11
14
|
foo()
|
|
12
|
-
|
|
15
|
+
`,
|
|
16
|
+
);
|
|
13
17
|
});
|
|
18
|
+
|
|
14
19
|
it("renders with args", () => {
|
|
15
|
-
|
|
16
|
-
<
|
|
17
|
-
|
|
18
|
-
|
|
20
|
+
expect(
|
|
21
|
+
<TestOutput>
|
|
22
|
+
<py.FunctionCallExpression target="foo" args={["a", "b"]} />
|
|
23
|
+
</TestOutput>,
|
|
24
|
+
).toRenderTo(
|
|
25
|
+
`
|
|
19
26
|
foo(a, b)
|
|
20
|
-
|
|
27
|
+
`,
|
|
28
|
+
);
|
|
21
29
|
});
|
|
22
30
|
|
|
23
31
|
it("function call with variables", () => {
|
|
24
|
-
// Creating the reference separately so the naming policy doesn't interfere
|
|
25
32
|
const methodRef = refkey();
|
|
26
|
-
|
|
27
|
-
<
|
|
28
|
-
<py.
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
33
|
+
expect(
|
|
34
|
+
<TestOutput>
|
|
35
|
+
<py.StatementList>
|
|
36
|
+
<py.FunctionDeclaration name="runFunc" refkey={methodRef} />
|
|
37
|
+
<py.FunctionCallExpression
|
|
38
|
+
target={methodRef}
|
|
39
|
+
args={[
|
|
40
|
+
<py.Atom jsValue={"A name"} />,
|
|
41
|
+
<py.Atom jsValue={42} />,
|
|
42
|
+
<py.Atom jsValue={true} />,
|
|
43
|
+
]}
|
|
44
|
+
/>
|
|
45
|
+
</py.StatementList>
|
|
46
|
+
</TestOutput>,
|
|
47
|
+
).toRenderTo(
|
|
48
|
+
`
|
|
40
49
|
def run_func():
|
|
41
50
|
pass
|
|
42
51
|
|
|
43
52
|
run_func("A name", 42, True)
|
|
44
|
-
|
|
45
|
-
|
|
53
|
+
`,
|
|
54
|
+
);
|
|
46
55
|
});
|
|
47
56
|
|
|
48
57
|
it("function call with variables and assignment", () => {
|
|
49
|
-
// Creating the reference separately so the naming policy doesn't interfere
|
|
50
58
|
const methodRef = refkey();
|
|
51
|
-
|
|
52
|
-
<
|
|
53
|
-
<py.
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
{
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
59
|
+
expect(
|
|
60
|
+
<TestOutput>
|
|
61
|
+
<py.StatementList>
|
|
62
|
+
<py.FunctionDeclaration
|
|
63
|
+
name="runFunc"
|
|
64
|
+
returnType="str"
|
|
65
|
+
refkey={methodRef}
|
|
66
|
+
parameters={[
|
|
67
|
+
{ name: "name", type: "str" },
|
|
68
|
+
{ name: "number", type: "int" },
|
|
69
|
+
{ name: "flag", type: "bool" },
|
|
70
|
+
]}
|
|
71
|
+
/>
|
|
72
|
+
<py.VariableDeclaration
|
|
73
|
+
name="result"
|
|
74
|
+
type="str"
|
|
75
|
+
initializer={
|
|
76
|
+
<py.FunctionCallExpression
|
|
77
|
+
target={methodRef}
|
|
78
|
+
args={[
|
|
79
|
+
<py.Atom jsValue={"A name"} />,
|
|
80
|
+
<py.Atom jsValue={42} />,
|
|
81
|
+
<py.Atom jsValue={true} />,
|
|
82
|
+
]}
|
|
83
|
+
/>
|
|
84
|
+
}
|
|
85
|
+
/>
|
|
86
|
+
</py.StatementList>
|
|
87
|
+
</TestOutput>,
|
|
88
|
+
).toRenderTo(
|
|
89
|
+
`
|
|
80
90
|
def run_func(name: str, number: int, flag: bool) -> str:
|
|
81
91
|
pass
|
|
82
92
|
|
|
83
93
|
result: str = run_func("A name", 42, True)
|
|
84
|
-
|
|
85
|
-
|
|
94
|
+
`,
|
|
95
|
+
);
|
|
86
96
|
});
|
|
87
97
|
|
|
88
98
|
it("Method call without a reference and with call statement vars", () => {
|
|
89
|
-
|
|
90
|
-
<
|
|
91
|
-
<py.
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
99
|
+
expect(
|
|
100
|
+
<TestOutput>
|
|
101
|
+
<py.StatementList>
|
|
102
|
+
<py.FunctionCallExpression
|
|
103
|
+
target={"example_method"}
|
|
104
|
+
args={[
|
|
105
|
+
<py.VariableDeclaration
|
|
106
|
+
name="name"
|
|
107
|
+
initializer={"A name"}
|
|
108
|
+
callStatementVar
|
|
109
|
+
/>,
|
|
110
|
+
<py.VariableDeclaration
|
|
111
|
+
name="number"
|
|
112
|
+
initializer={42}
|
|
113
|
+
callStatementVar
|
|
114
|
+
/>,
|
|
115
|
+
<py.VariableDeclaration
|
|
116
|
+
name="flag"
|
|
117
|
+
initializer={true}
|
|
118
|
+
callStatementVar
|
|
119
|
+
/>,
|
|
120
|
+
]}
|
|
121
|
+
/>
|
|
122
|
+
</py.StatementList>
|
|
123
|
+
</TestOutput>,
|
|
124
|
+
).toRenderTo(
|
|
125
|
+
`
|
|
114
126
|
example_method(name="A name", number=42, flag=True)
|
|
115
|
-
|
|
116
|
-
|
|
127
|
+
`,
|
|
128
|
+
);
|
|
117
129
|
});
|
|
118
130
|
|
|
119
131
|
it("Method call without a reference mixing unnamed and named vars", () => {
|
|
120
|
-
|
|
121
|
-
<
|
|
122
|
-
<py.
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
132
|
+
expect(
|
|
133
|
+
<TestOutput>
|
|
134
|
+
<py.StatementList>
|
|
135
|
+
<py.FunctionCallExpression
|
|
136
|
+
target={"example_method"}
|
|
137
|
+
args={[
|
|
138
|
+
<py.Atom jsValue={"A name"} />,
|
|
139
|
+
<py.VariableDeclaration
|
|
140
|
+
name="number"
|
|
141
|
+
initializer={42}
|
|
142
|
+
callStatementVar
|
|
143
|
+
/>,
|
|
144
|
+
<py.VariableDeclaration
|
|
145
|
+
name="flag"
|
|
146
|
+
initializer={true}
|
|
147
|
+
callStatementVar
|
|
148
|
+
/>,
|
|
149
|
+
]}
|
|
150
|
+
/>
|
|
151
|
+
</py.StatementList>
|
|
152
|
+
</TestOutput>,
|
|
153
|
+
).toRenderTo(
|
|
154
|
+
`
|
|
141
155
|
example_method("A name", number=42, flag=True)
|
|
142
|
-
|
|
143
|
-
|
|
156
|
+
`,
|
|
157
|
+
);
|
|
144
158
|
});
|
|
145
159
|
});
|