@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
|
@@ -1,44 +1,47 @@
|
|
|
1
|
-
import { d } from "@alloy-js/core/testing";
|
|
2
1
|
import { describe, expect, it } from "vitest";
|
|
3
2
|
import * as py from "../src/index.js";
|
|
4
3
|
import { abcModule } from "../src/index.js";
|
|
5
|
-
import {
|
|
4
|
+
import { TestOutput } from "./utils.js";
|
|
6
5
|
|
|
7
6
|
describe("Method-like Declarations", () => {
|
|
8
7
|
it("renders decorators above def", () => {
|
|
9
|
-
|
|
10
|
-
<
|
|
11
|
-
<py.
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
8
|
+
expect(
|
|
9
|
+
<TestOutput>
|
|
10
|
+
<py.ClassDeclaration name="MyClass">
|
|
11
|
+
<py.MethodDeclaration
|
|
12
|
+
name="with_decorator"
|
|
13
|
+
decorators={["@some_decorator"]}
|
|
14
|
+
>
|
|
15
|
+
pass
|
|
16
|
+
</py.MethodDeclaration>
|
|
17
|
+
</py.ClassDeclaration>
|
|
18
|
+
</TestOutput>,
|
|
19
|
+
).toRenderTo(
|
|
20
|
+
`
|
|
20
21
|
class MyClass:
|
|
21
22
|
@some_decorator
|
|
22
23
|
def with_decorator(self):
|
|
23
24
|
pass
|
|
24
25
|
|
|
25
26
|
|
|
26
|
-
|
|
27
|
-
|
|
27
|
+
`,
|
|
28
|
+
);
|
|
28
29
|
});
|
|
29
30
|
|
|
30
31
|
it("renders multiple decorators above def without blank lines", () => {
|
|
31
|
-
|
|
32
|
-
<
|
|
33
|
-
<py.
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
32
|
+
expect(
|
|
33
|
+
<TestOutput>
|
|
34
|
+
<py.ClassDeclaration name="MyClass">
|
|
35
|
+
<py.MethodDeclaration
|
|
36
|
+
name="with_decorators"
|
|
37
|
+
decorators={["@outer", "@middle", "@inner"]}
|
|
38
|
+
>
|
|
39
|
+
pass
|
|
40
|
+
</py.MethodDeclaration>
|
|
41
|
+
</py.ClassDeclaration>
|
|
42
|
+
</TestOutput>,
|
|
43
|
+
).toRenderTo(
|
|
44
|
+
`
|
|
42
45
|
class MyClass:
|
|
43
46
|
@outer
|
|
44
47
|
@middle
|
|
@@ -47,22 +50,24 @@ describe("Method-like Declarations", () => {
|
|
|
47
50
|
pass
|
|
48
51
|
|
|
49
52
|
|
|
50
|
-
|
|
51
|
-
|
|
53
|
+
`,
|
|
54
|
+
);
|
|
52
55
|
});
|
|
53
56
|
|
|
54
57
|
it("renders multiple decorators above @classmethod without blank lines", () => {
|
|
55
|
-
|
|
56
|
-
<
|
|
57
|
-
<py.
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
58
|
+
expect(
|
|
59
|
+
<TestOutput>
|
|
60
|
+
<py.ClassDeclaration name="MyClass">
|
|
61
|
+
<py.ClassMethodDeclaration
|
|
62
|
+
name="with_decorators"
|
|
63
|
+
decorators={["@outer", "@inner"]}
|
|
64
|
+
>
|
|
65
|
+
pass
|
|
66
|
+
</py.ClassMethodDeclaration>
|
|
67
|
+
</py.ClassDeclaration>
|
|
68
|
+
</TestOutput>,
|
|
69
|
+
).toRenderTo(
|
|
70
|
+
`
|
|
66
71
|
class MyClass:
|
|
67
72
|
@outer
|
|
68
73
|
@inner
|
|
@@ -71,24 +76,26 @@ describe("Method-like Declarations", () => {
|
|
|
71
76
|
pass
|
|
72
77
|
|
|
73
78
|
|
|
74
|
-
|
|
75
|
-
|
|
79
|
+
`,
|
|
80
|
+
);
|
|
76
81
|
});
|
|
77
82
|
|
|
78
83
|
it("renders an instance function with a body", () => {
|
|
79
|
-
|
|
80
|
-
<
|
|
81
|
-
<py.
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
84
|
+
expect(
|
|
85
|
+
<TestOutput>
|
|
86
|
+
<py.ClassDeclaration name="MyClass">
|
|
87
|
+
<py.MethodDeclaration name="bar">print('hi')</py.MethodDeclaration>
|
|
88
|
+
</py.ClassDeclaration>
|
|
89
|
+
</TestOutput>,
|
|
90
|
+
).toRenderTo(
|
|
91
|
+
`
|
|
85
92
|
class MyClass:
|
|
86
93
|
def bar(self):
|
|
87
94
|
print('hi')
|
|
88
95
|
|
|
89
96
|
|
|
90
|
-
|
|
91
|
-
|
|
97
|
+
`,
|
|
98
|
+
);
|
|
92
99
|
});
|
|
93
100
|
|
|
94
101
|
it("can be an async method", () => {
|
|
@@ -104,13 +111,15 @@ describe("Method-like Declarations", () => {
|
|
|
104
111
|
</py.StatementList>
|
|
105
112
|
);
|
|
106
113
|
|
|
107
|
-
expect(
|
|
114
|
+
expect(<TestOutput>{decl}</TestOutput>).toRenderTo(
|
|
115
|
+
`
|
|
108
116
|
class MyClass:
|
|
109
117
|
async def my_method(self) -> str:
|
|
110
118
|
return "async result"
|
|
111
119
|
|
|
112
120
|
|
|
113
|
-
|
|
121
|
+
`,
|
|
122
|
+
);
|
|
114
123
|
});
|
|
115
124
|
|
|
116
125
|
it("can be an async class method", () => {
|
|
@@ -130,14 +139,16 @@ describe("Method-like Declarations", () => {
|
|
|
130
139
|
</py.StatementList>
|
|
131
140
|
);
|
|
132
141
|
|
|
133
|
-
expect(
|
|
142
|
+
expect(<TestOutput>{decl}</TestOutput>).toRenderTo(
|
|
143
|
+
`
|
|
134
144
|
class MyClass:
|
|
135
145
|
@classmethod
|
|
136
146
|
async def create_async(cls) -> MyClass:
|
|
137
147
|
return cls()
|
|
138
148
|
|
|
139
149
|
|
|
140
|
-
|
|
150
|
+
`,
|
|
151
|
+
);
|
|
141
152
|
});
|
|
142
153
|
|
|
143
154
|
it("can be an async static method", () => {
|
|
@@ -153,14 +164,16 @@ describe("Method-like Declarations", () => {
|
|
|
153
164
|
</py.StatementList>
|
|
154
165
|
);
|
|
155
166
|
|
|
156
|
-
expect(
|
|
167
|
+
expect(<TestOutput>{decl}</TestOutput>).toRenderTo(
|
|
168
|
+
`
|
|
157
169
|
class MyClass:
|
|
158
170
|
@staticmethod
|
|
159
171
|
async def utility() -> str:
|
|
160
172
|
return "utility result"
|
|
161
173
|
|
|
162
174
|
|
|
163
|
-
|
|
175
|
+
`,
|
|
176
|
+
);
|
|
164
177
|
});
|
|
165
178
|
|
|
166
179
|
it("renders method with parameters", () => {
|
|
@@ -173,13 +186,15 @@ describe("Method-like Declarations", () => {
|
|
|
173
186
|
</py.ClassDeclaration>
|
|
174
187
|
);
|
|
175
188
|
|
|
176
|
-
expect(
|
|
189
|
+
expect(<TestOutput>{decl}</TestOutput>).toRenderTo(
|
|
190
|
+
`
|
|
177
191
|
class MyClass:
|
|
178
192
|
def foo(self, x: int):
|
|
179
193
|
self.attribute = "value"
|
|
180
194
|
|
|
181
195
|
|
|
182
|
-
|
|
196
|
+
`,
|
|
197
|
+
);
|
|
183
198
|
});
|
|
184
199
|
|
|
185
200
|
it("renders class method with parameters", () => {
|
|
@@ -192,14 +207,16 @@ describe("Method-like Declarations", () => {
|
|
|
192
207
|
</py.ClassDeclaration>
|
|
193
208
|
);
|
|
194
209
|
|
|
195
|
-
expect(
|
|
210
|
+
expect(<TestOutput>{decl}</TestOutput>).toRenderTo(
|
|
211
|
+
`
|
|
196
212
|
class MyClass:
|
|
197
213
|
@classmethod
|
|
198
214
|
def foo(cls, x: int):
|
|
199
215
|
self.attribute = "value"
|
|
200
216
|
|
|
201
217
|
|
|
202
|
-
|
|
218
|
+
`,
|
|
219
|
+
);
|
|
203
220
|
});
|
|
204
221
|
|
|
205
222
|
it("renders static method with parameters", () => {
|
|
@@ -212,14 +229,16 @@ describe("Method-like Declarations", () => {
|
|
|
212
229
|
</py.ClassDeclaration>
|
|
213
230
|
);
|
|
214
231
|
|
|
215
|
-
expect(
|
|
232
|
+
expect(<TestOutput>{decl}</TestOutput>).toRenderTo(
|
|
233
|
+
`
|
|
216
234
|
class MyClass:
|
|
217
235
|
@staticmethod
|
|
218
236
|
def foo(x: int):
|
|
219
237
|
attribute = "value"
|
|
220
238
|
|
|
221
239
|
|
|
222
|
-
|
|
240
|
+
`,
|
|
241
|
+
);
|
|
223
242
|
});
|
|
224
243
|
|
|
225
244
|
it("renders abstract methods", () => {
|
|
@@ -248,7 +267,8 @@ describe("Method-like Declarations", () => {
|
|
|
248
267
|
</py.StatementList>
|
|
249
268
|
);
|
|
250
269
|
|
|
251
|
-
expect(
|
|
270
|
+
expect(<TestOutput externals={[abcModule]}>{decl}</TestOutput>).toRenderTo(
|
|
271
|
+
`
|
|
252
272
|
from abc import abstractmethod
|
|
253
273
|
|
|
254
274
|
|
|
@@ -268,6 +288,7 @@ describe("Method-like Declarations", () => {
|
|
|
268
288
|
pass
|
|
269
289
|
|
|
270
290
|
|
|
271
|
-
|
|
291
|
+
`,
|
|
292
|
+
);
|
|
272
293
|
});
|
|
273
294
|
});
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import { d } from "@alloy-js/core/testing";
|
|
2
1
|
import { expect, it } from "vitest";
|
|
3
2
|
import { enumModule } from "../src/builtins/python.js";
|
|
4
3
|
import * as py from "../src/index.js";
|
|
5
|
-
import {
|
|
4
|
+
import { TestOutput } from "./utils.js";
|
|
6
5
|
|
|
7
6
|
it("correct formatting of class name", () => {
|
|
8
|
-
|
|
9
|
-
<
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
expect(
|
|
8
|
+
<TestOutput>
|
|
9
|
+
<py.ClassDeclaration name="a-really-WeirdClass-name" />
|
|
10
|
+
</TestOutput>,
|
|
11
|
+
).toRenderTo(
|
|
12
|
+
`
|
|
12
13
|
class AReallyWeirdClassName:
|
|
13
14
|
pass
|
|
14
15
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
expect(result).toRenderTo(expected);
|
|
16
|
+
`,
|
|
17
|
+
);
|
|
18
18
|
});
|
|
19
19
|
|
|
20
20
|
it("correct formatting of Enum name and EnumMember names", () => {
|
|
21
|
-
|
|
22
|
-
[
|
|
21
|
+
expect(
|
|
22
|
+
<TestOutput externals={[enumModule]}>
|
|
23
23
|
<py.FunctionalEnumDeclaration
|
|
24
24
|
name="priority"
|
|
25
25
|
members={[
|
|
@@ -27,83 +27,83 @@ it("correct formatting of Enum name and EnumMember names", () => {
|
|
|
27
27
|
{ name: "Medium", value: 2 },
|
|
28
28
|
{ name: "lowValue", value: 3 },
|
|
29
29
|
]}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
const expected = d`
|
|
30
|
+
/>
|
|
31
|
+
</TestOutput>,
|
|
32
|
+
).toRenderTo(
|
|
33
|
+
`
|
|
35
34
|
from enum import Enum
|
|
36
35
|
|
|
37
36
|
|
|
38
37
|
Priority = Enum('Priority', {'HIGH' : 1, 'MEDIUM' : 2, 'LOW_VALUE' : 3})
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
`,
|
|
39
|
+
);
|
|
41
40
|
});
|
|
42
41
|
|
|
43
42
|
it("renders a function with parameters", () => {
|
|
44
|
-
|
|
45
|
-
<
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
43
|
+
expect(
|
|
44
|
+
<TestOutput>
|
|
45
|
+
<py.FunctionDeclaration
|
|
46
|
+
name="quirklyNamed-Function"
|
|
47
|
+
parameters={[{ name: "a-parameter", type: "int" }]}
|
|
48
|
+
args={true}
|
|
49
|
+
kwargs={true}
|
|
50
|
+
>
|
|
51
|
+
print(x, y)
|
|
52
|
+
</py.FunctionDeclaration>
|
|
53
|
+
</TestOutput>,
|
|
54
|
+
).toRenderTo(
|
|
55
|
+
`
|
|
56
56
|
def quirkly_named_function(a_parameter: int, *args, **kwargs):
|
|
57
57
|
print(x, y)
|
|
58
58
|
|
|
59
|
-
|
|
60
59
|
`,
|
|
61
60
|
);
|
|
62
61
|
});
|
|
63
62
|
|
|
64
63
|
it("correct formatting of call signature parameters names", () => {
|
|
65
|
-
|
|
66
|
-
<
|
|
67
|
-
|
|
68
|
-
{
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
64
|
+
expect(
|
|
65
|
+
<TestOutput>
|
|
66
|
+
<py.CallSignatureParameters
|
|
67
|
+
parameters={[
|
|
68
|
+
{ name: "this-is-a-number", type: "int" },
|
|
69
|
+
{
|
|
70
|
+
name: "andThisIsADict",
|
|
71
|
+
type: "dict",
|
|
72
|
+
},
|
|
73
|
+
]}
|
|
74
|
+
/>
|
|
75
|
+
</TestOutput>,
|
|
76
|
+
).toRenderTo(`this_is_a_number: int, and_this_is_a_dict: dict`);
|
|
77
77
|
});
|
|
78
78
|
|
|
79
79
|
it("correct formatting of call statement vars", () => {
|
|
80
|
-
|
|
81
|
-
<
|
|
82
|
-
<py.
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
);
|
|
80
|
+
expect(
|
|
81
|
+
<TestOutput>
|
|
82
|
+
<py.StatementList>
|
|
83
|
+
<py.ClassInstantiation
|
|
84
|
+
target={"test"}
|
|
85
|
+
args={[
|
|
86
|
+
<py.VariableDeclaration
|
|
87
|
+
name="this-is-a-long-name"
|
|
88
|
+
initializer={<py.Atom jsValue={"A name"} />}
|
|
89
|
+
callStatementVar
|
|
90
|
+
/>,
|
|
91
|
+
<py.VariableDeclaration
|
|
92
|
+
name="andThisIsANumber"
|
|
93
|
+
initializer={<py.Atom jsValue={42} />}
|
|
94
|
+
callStatementVar
|
|
95
|
+
/>,
|
|
96
|
+
]}
|
|
97
|
+
/>
|
|
98
|
+
</py.StatementList>
|
|
99
|
+
</TestOutput>,
|
|
100
|
+
).toRenderTo(`test(this_is_a_long_name="A name", and_this_is_a_number=42)`);
|
|
102
101
|
});
|
|
103
102
|
|
|
104
103
|
it("correct formatting of variable name", () => {
|
|
105
|
-
|
|
106
|
-
<
|
|
107
|
-
|
|
108
|
-
|
|
104
|
+
expect(
|
|
105
|
+
<TestOutput>
|
|
106
|
+
<py.VariableDeclaration name="myVar" type="int" initializer={42} />
|
|
107
|
+
</TestOutput>,
|
|
108
|
+
).toRenderTo("my_var: int = 42");
|
|
109
109
|
});
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { Prose, code } 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
4
|
import { abcModule } from "../src/index.js";
|
|
6
|
-
import {
|
|
5
|
+
import { TestOutput } from "./utils.js";
|
|
7
6
|
|
|
8
7
|
describe("PropertyDeclaration", () => {
|
|
9
8
|
it("renders empty property, setter, deleter", () => {
|
|
@@ -20,7 +19,7 @@ describe("PropertyDeclaration", () => {
|
|
|
20
19
|
</py.StatementList>
|
|
21
20
|
);
|
|
22
21
|
|
|
23
|
-
expect(
|
|
22
|
+
expect(<TestOutput externals={[abcModule]}>{decl}</TestOutput>).toRenderTo(`
|
|
24
23
|
class MyClass:
|
|
25
24
|
@property
|
|
26
25
|
def x(self):
|
|
@@ -57,7 +56,7 @@ describe("PropertyDeclaration", () => {
|
|
|
57
56
|
</py.StatementList>
|
|
58
57
|
);
|
|
59
58
|
|
|
60
|
-
expect(
|
|
59
|
+
expect(<TestOutput externals={[abcModule]}>{decl}</TestOutput>).toRenderTo(`
|
|
61
60
|
class MyClass:
|
|
62
61
|
@property
|
|
63
62
|
def x(self) -> int:
|
|
@@ -121,7 +120,7 @@ describe("PropertyDeclaration", () => {
|
|
|
121
120
|
</py.StatementList>
|
|
122
121
|
);
|
|
123
122
|
|
|
124
|
-
expect(
|
|
123
|
+
expect(<TestOutput externals={[abcModule]}>{decl}</TestOutput>).toRenderTo(`
|
|
125
124
|
class MyClass:
|
|
126
125
|
@property
|
|
127
126
|
def x(self) -> int:
|
|
@@ -168,7 +167,7 @@ describe("PropertyDeclaration", () => {
|
|
|
168
167
|
</py.StatementList>
|
|
169
168
|
);
|
|
170
169
|
|
|
171
|
-
expect(
|
|
170
|
+
expect(<TestOutput externals={[abcModule]}>{decl}</TestOutput>).toRenderTo(`
|
|
172
171
|
class MyClass:
|
|
173
172
|
@computed_field
|
|
174
173
|
@deprecated("use width**2")
|
|
@@ -198,7 +197,7 @@ describe("PropertyDeclaration", () => {
|
|
|
198
197
|
</py.StatementList>
|
|
199
198
|
);
|
|
200
199
|
|
|
201
|
-
expect(
|
|
200
|
+
expect(<TestOutput externals={[abcModule]}>{decl}</TestOutput>).toRenderTo(`
|
|
202
201
|
from abc import abstractmethod
|
|
203
202
|
|
|
204
203
|
|
|
@@ -232,7 +231,7 @@ describe("PropertyDeclaration", () => {
|
|
|
232
231
|
</py.StatementList>
|
|
233
232
|
);
|
|
234
233
|
|
|
235
|
-
expect(
|
|
234
|
+
expect(<TestOutput externals={[abcModule]}>{decl}</TestOutput>).toRenderTo(`
|
|
236
235
|
from abc import abstractmethod
|
|
237
236
|
|
|
238
237
|
|