@alloy-js/python 0.5.0-dev.0 → 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.
Files changed (276) hide show
  1. package/dist/dev/src/builtins/python.js +46 -0
  2. package/dist/dev/src/builtins/python.js.map +1 -1
  3. package/dist/dev/src/components/ClassDeclaration.js +19 -10
  4. package/dist/dev/src/components/ClassDeclaration.js.map +1 -1
  5. package/dist/dev/src/components/ClassMethodDeclaration.js +20 -5
  6. package/dist/dev/src/components/ClassMethodDeclaration.js.map +1 -1
  7. package/dist/dev/src/components/DataclassDeclaration.js +14 -12
  8. package/dist/dev/src/components/DataclassDeclaration.js.map +1 -1
  9. package/dist/dev/src/components/DecoratorList.js +55 -0
  10. package/dist/dev/src/components/DecoratorList.js.map +1 -0
  11. package/dist/dev/src/components/EnumDeclaration.js +21 -12
  12. package/dist/dev/src/components/EnumDeclaration.js.map +1 -1
  13. package/dist/dev/src/components/FunctionBase.js +21 -10
  14. package/dist/dev/src/components/FunctionBase.js.map +1 -1
  15. package/dist/dev/src/components/FutureStatement.js +1 -1
  16. package/dist/dev/src/components/MethodBase.js +16 -4
  17. package/dist/dev/src/components/MethodBase.js.map +1 -1
  18. package/dist/dev/src/components/PropertyDeclaration.js +68 -17
  19. package/dist/dev/src/components/PropertyDeclaration.js.map +1 -1
  20. package/dist/dev/src/components/PydanticClassDeclaration.js +136 -0
  21. package/dist/dev/src/components/PydanticClassDeclaration.js.map +1 -0
  22. package/dist/dev/src/components/SourceFile.js +44 -32
  23. package/dist/dev/src/components/SourceFile.js.map +1 -1
  24. package/dist/dev/src/components/StaticMethodDeclaration.js +19 -5
  25. package/dist/dev/src/components/StaticMethodDeclaration.js.map +1 -1
  26. package/dist/dev/src/components/index.js +1 -0
  27. package/dist/dev/src/components/index.js.map +1 -1
  28. package/dist/dev/test/callsignatures.test.js +471 -297
  29. package/dist/dev/test/callsignatures.test.js.map +1 -1
  30. package/dist/dev/test/class-method-declaration.test.js +21 -10
  31. package/dist/dev/test/class-method-declaration.test.js.map +1 -1
  32. package/dist/dev/test/classdeclarations.test.js +480 -381
  33. package/dist/dev/test/classdeclarations.test.js.map +1 -1
  34. package/dist/dev/test/classinstantiations.test.js +201 -168
  35. package/dist/dev/test/classinstantiations.test.js.map +1 -1
  36. package/dist/dev/test/constructordeclaration.test.js +22 -11
  37. package/dist/dev/test/constructordeclaration.test.js.map +1 -1
  38. package/dist/dev/test/dataclassdeclarations.test.js +345 -358
  39. package/dist/dev/test/dataclassdeclarations.test.js.map +1 -1
  40. package/dist/dev/test/decoratorlist.test.js +131 -0
  41. package/dist/dev/test/decoratorlist.test.js.map +1 -0
  42. package/dist/dev/test/dundermethoddeclaration.test.js +22 -11
  43. package/dist/dev/test/dundermethoddeclaration.test.js.map +1 -1
  44. package/dist/dev/test/enums.test.js +231 -166
  45. package/dist/dev/test/enums.test.js.map +1 -1
  46. package/dist/dev/test/externals.test.js +57 -45
  47. package/dist/dev/test/externals.test.js.map +1 -1
  48. package/dist/dev/test/factories.test.js +124 -50
  49. package/dist/dev/test/factories.test.js.map +1 -1
  50. package/dist/dev/test/functioncallexpressions.test.js +199 -164
  51. package/dist/dev/test/functioncallexpressions.test.js.map +1 -1
  52. package/dist/dev/test/functiondeclaration.test.js +452 -265
  53. package/dist/dev/test/functiondeclaration.test.js.map +1 -1
  54. package/dist/dev/test/imports.test.js +273 -221
  55. package/dist/dev/test/imports.test.js.map +1 -1
  56. package/dist/dev/test/memberexpressions.test.js +1237 -972
  57. package/dist/dev/test/memberexpressions.test.js.map +1 -1
  58. package/dist/dev/test/methoddeclaration.test.js +200 -45
  59. package/dist/dev/test/methoddeclaration.test.js.map +1 -1
  60. package/dist/dev/test/namepolicies.test.js +130 -94
  61. package/dist/dev/test/namepolicies.test.js.map +1 -1
  62. package/dist/dev/test/propertydeclaration.test.js +177 -46
  63. package/dist/dev/test/propertydeclaration.test.js.map +1 -1
  64. package/dist/dev/test/pydanticclassdeclarations.test.js +1089 -0
  65. package/dist/dev/test/pydanticclassdeclarations.test.js.map +1 -0
  66. package/dist/dev/test/pydocs.test.js +888 -715
  67. package/dist/dev/test/pydocs.test.js.map +1 -1
  68. package/dist/dev/test/references.test.js +42 -35
  69. package/dist/dev/test/references.test.js.map +1 -1
  70. package/dist/dev/test/sourcefiles.test.js +1109 -841
  71. package/dist/dev/test/sourcefiles.test.js.map +1 -1
  72. package/dist/dev/test/staticmethoddeclaration.test.js +21 -10
  73. package/dist/dev/test/staticmethoddeclaration.test.js.map +1 -1
  74. package/dist/dev/test/type-checking-imports.test.js +408 -359
  75. package/dist/dev/test/type-checking-imports.test.js.map +1 -1
  76. package/dist/dev/test/typereference.test.js +55 -40
  77. package/dist/dev/test/typereference.test.js.map +1 -1
  78. package/dist/dev/test/uniontypeexpression.test.js +222 -146
  79. package/dist/dev/test/uniontypeexpression.test.js.map +1 -1
  80. package/dist/dev/test/utils.js +39 -77
  81. package/dist/dev/test/utils.js.map +1 -1
  82. package/dist/dev/test/values.test.js +237 -101
  83. package/dist/dev/test/values.test.js.map +1 -1
  84. package/dist/dev/test/variables.test.js +321 -203
  85. package/dist/dev/test/variables.test.js.map +1 -1
  86. package/dist/dev/test/vitest.setup.js +2 -0
  87. package/dist/dev/test/vitest.setup.js.map +1 -0
  88. package/dist/src/builtins/python.d.ts +30 -0
  89. package/dist/src/builtins/python.d.ts.map +1 -1
  90. package/dist/src/builtins/python.js +46 -0
  91. package/dist/src/builtins/python.js.map +1 -1
  92. package/dist/src/components/ClassDeclaration.d.ts +21 -0
  93. package/dist/src/components/ClassDeclaration.d.ts.map +1 -1
  94. package/dist/src/components/ClassDeclaration.js +6 -1
  95. package/dist/src/components/ClassDeclaration.js.map +1 -1
  96. package/dist/src/components/ClassMethodDeclaration.d.ts +5 -1
  97. package/dist/src/components/ClassMethodDeclaration.d.ts.map +1 -1
  98. package/dist/src/components/ClassMethodDeclaration.js +14 -3
  99. package/dist/src/components/ClassMethodDeclaration.js.map +1 -1
  100. package/dist/src/components/DataclassDeclaration.d.ts.map +1 -1
  101. package/dist/src/components/DataclassDeclaration.js +10 -4
  102. package/dist/src/components/DataclassDeclaration.js.map +1 -1
  103. package/dist/src/components/DecoratorList.d.ts +43 -0
  104. package/dist/src/components/DecoratorList.d.ts.map +1 -0
  105. package/dist/src/components/DecoratorList.js +47 -0
  106. package/dist/src/components/DecoratorList.js.map +1 -0
  107. package/dist/src/components/EnumDeclaration.d.ts +9 -0
  108. package/dist/src/components/EnumDeclaration.d.ts.map +1 -1
  109. package/dist/src/components/EnumDeclaration.js +6 -1
  110. package/dist/src/components/EnumDeclaration.js.map +1 -1
  111. package/dist/src/components/FunctionBase.d.ts +31 -1
  112. package/dist/src/components/FunctionBase.d.ts.map +1 -1
  113. package/dist/src/components/FunctionBase.js +9 -2
  114. package/dist/src/components/FunctionBase.js.map +1 -1
  115. package/dist/src/components/FutureStatement.d.ts +1 -1
  116. package/dist/src/components/FutureStatement.js +1 -1
  117. package/dist/src/components/MethodBase.d.ts.map +1 -1
  118. package/dist/src/components/MethodBase.js +10 -2
  119. package/dist/src/components/MethodBase.js.map +1 -1
  120. package/dist/src/components/PropertyDeclaration.d.ts +29 -0
  121. package/dist/src/components/PropertyDeclaration.d.ts.map +1 -1
  122. package/dist/src/components/PropertyDeclaration.js +48 -1
  123. package/dist/src/components/PropertyDeclaration.js.map +1 -1
  124. package/dist/src/components/PydanticClassDeclaration.d.ts +120 -0
  125. package/dist/src/components/PydanticClassDeclaration.d.ts.map +1 -0
  126. package/dist/src/components/PydanticClassDeclaration.js +116 -0
  127. package/dist/src/components/PydanticClassDeclaration.js.map +1 -0
  128. package/dist/src/components/SourceFile.d.ts +2 -2
  129. package/dist/src/components/SourceFile.d.ts.map +1 -1
  130. package/dist/src/components/SourceFile.js +12 -0
  131. package/dist/src/components/SourceFile.js.map +1 -1
  132. package/dist/src/components/StaticMethodDeclaration.d.ts +3 -0
  133. package/dist/src/components/StaticMethodDeclaration.d.ts.map +1 -1
  134. package/dist/src/components/StaticMethodDeclaration.js +13 -3
  135. package/dist/src/components/StaticMethodDeclaration.js.map +1 -1
  136. package/dist/src/components/index.d.ts +1 -0
  137. package/dist/src/components/index.d.ts.map +1 -1
  138. package/dist/src/components/index.js +1 -0
  139. package/dist/src/components/index.js.map +1 -1
  140. package/dist/test/callsignatures.test.js +346 -272
  141. package/dist/test/callsignatures.test.js.map +1 -1
  142. package/dist/test/class-method-declaration.test.js +7 -4
  143. package/dist/test/class-method-declaration.test.js.map +1 -1
  144. package/dist/test/classdeclarations.test.js +316 -277
  145. package/dist/test/classdeclarations.test.js.map +1 -1
  146. package/dist/test/classinstantiations.test.js +112 -103
  147. package/dist/test/classinstantiations.test.js.map +1 -1
  148. package/dist/test/constructordeclaration.test.js +7 -4
  149. package/dist/test/constructordeclaration.test.js.map +1 -1
  150. package/dist/test/dataclassdeclarations.test.js +153 -178
  151. package/dist/test/dataclassdeclarations.test.js.map +1 -1
  152. package/dist/test/decoratorlist.test.d.ts +2 -0
  153. package/dist/test/decoratorlist.test.d.ts.map +1 -0
  154. package/dist/test/decoratorlist.test.js +83 -0
  155. package/dist/test/decoratorlist.test.js.map +1 -0
  156. package/dist/test/dundermethoddeclaration.test.js +7 -4
  157. package/dist/test/dundermethoddeclaration.test.js.map +1 -1
  158. package/dist/test/enums.test.js +172 -143
  159. package/dist/test/enums.test.js.map +1 -1
  160. package/dist/test/externals.test.js +24 -24
  161. package/dist/test/externals.test.js.map +1 -1
  162. package/dist/test/factories.test.js +75 -33
  163. package/dist/test/factories.test.js.map +1 -1
  164. package/dist/test/functioncallexpressions.test.js +117 -106
  165. package/dist/test/functioncallexpressions.test.js.map +1 -1
  166. package/dist/test/functiondeclaration.test.js +256 -173
  167. package/dist/test/functiondeclaration.test.js.map +1 -1
  168. package/dist/test/imports.test.js +171 -143
  169. package/dist/test/imports.test.js.map +1 -1
  170. package/dist/test/memberexpressions.test.js +582 -453
  171. package/dist/test/memberexpressions.test.js.map +1 -1
  172. package/dist/test/methoddeclaration.test.js +106 -19
  173. package/dist/test/methoddeclaration.test.js.map +1 -1
  174. package/dist/test/namepolicies.test.js +90 -78
  175. package/dist/test/namepolicies.test.js.map +1 -1
  176. package/dist/test/propertydeclaration.test.js +90 -15
  177. package/dist/test/propertydeclaration.test.js.map +1 -1
  178. package/dist/test/pydanticclassdeclarations.test.d.ts +2 -0
  179. package/dist/test/pydanticclassdeclarations.test.d.ts.map +1 -0
  180. package/dist/test/pydanticclassdeclarations.test.js +773 -0
  181. package/dist/test/pydanticclassdeclarations.test.js.map +1 -0
  182. package/dist/test/pydocs.test.js +573 -532
  183. package/dist/test/pydocs.test.js.map +1 -1
  184. package/dist/test/references.test.js +31 -28
  185. package/dist/test/references.test.js.map +1 -1
  186. package/dist/test/sourcefiles.test.js +700 -580
  187. package/dist/test/sourcefiles.test.js.map +1 -1
  188. package/dist/test/staticmethoddeclaration.test.js +7 -4
  189. package/dist/test/staticmethoddeclaration.test.js.map +1 -1
  190. package/dist/test/type-checking-imports.test.js +297 -284
  191. package/dist/test/type-checking-imports.test.js.map +1 -1
  192. package/dist/test/typereference.test.js +29 -22
  193. package/dist/test/typereference.test.js.map +1 -1
  194. package/dist/test/uniontypeexpression.test.js +124 -88
  195. package/dist/test/uniontypeexpression.test.js.map +1 -1
  196. package/dist/test/utils.d.ts +10 -17
  197. package/dist/test/utils.d.ts.map +1 -1
  198. package/dist/test/utils.js +32 -74
  199. package/dist/test/utils.js.map +1 -1
  200. package/dist/test/values.test.js +135 -67
  201. package/dist/test/values.test.js.map +1 -1
  202. package/dist/test/variables.test.js +201 -151
  203. package/dist/test/variables.test.js.map +1 -1
  204. package/dist/test/vitest.setup.d.ts +2 -0
  205. package/dist/test/vitest.setup.d.ts.map +1 -0
  206. package/dist/test/vitest.setup.js +2 -0
  207. package/dist/test/vitest.setup.js.map +1 -0
  208. package/dist/tsconfig.tsbuildinfo +1 -1
  209. package/docs/api/components/ClassDeclaration.md +10 -7
  210. package/docs/api/components/ClassEnumDeclaration.md +9 -6
  211. package/docs/api/components/ClassMethodDeclaration.md +7 -5
  212. package/docs/api/components/DataclassDeclaration.md +9 -5
  213. package/docs/api/components/DunderMethodDeclaration.md +7 -5
  214. package/docs/api/components/FunctionDeclaration.md +9 -5
  215. package/docs/api/components/FutureStatement.md +1 -1
  216. package/docs/api/components/MethodDeclaration.md +11 -6
  217. package/docs/api/components/PropertyDeclaration.md +11 -8
  218. package/docs/api/components/PydanticClassDeclaration.md +146 -0
  219. package/docs/api/components/SourceFile.md +20 -8
  220. package/docs/api/components/StaticMethodDeclaration.md +7 -5
  221. package/docs/api/components/index.md +1 -0
  222. package/docs/api/index.md +3 -3
  223. package/docs/api/types/CommonFunctionProps.md +4 -3
  224. package/docs/api/types/PydanticModelConfigDictProps.md +32 -0
  225. package/docs/api/types/index.md +1 -0
  226. package/docs/api/variables/index.md +3 -0
  227. package/docs/api/variables/pydanticModule.md +27 -0
  228. package/docs/api/variables/pydanticSettingsModule.md +7 -0
  229. package/docs/api/variables/typingModule.md +9 -0
  230. package/package.json +4 -4
  231. package/src/builtins/python.ts +539 -1
  232. package/src/components/ClassDeclaration.tsx +23 -0
  233. package/src/components/ClassMethodDeclaration.tsx +9 -1
  234. package/src/components/DataclassDeclaration.tsx +18 -11
  235. package/src/components/DecoratorList.tsx +50 -0
  236. package/src/components/EnumDeclaration.tsx +11 -0
  237. package/src/components/FunctionBase.tsx +34 -3
  238. package/src/components/FutureStatement.tsx +1 -1
  239. package/src/components/MethodBase.tsx +6 -2
  240. package/src/components/PropertyDeclaration.tsx +48 -1
  241. package/src/components/PydanticClassDeclaration.tsx +222 -0
  242. package/src/components/SourceFile.tsx +6 -1
  243. package/src/components/StaticMethodDeclaration.tsx +7 -1
  244. package/src/components/index.ts +1 -0
  245. package/temp/api.json +1158 -86
  246. package/test/callsignatures.test.tsx +309 -283
  247. package/test/class-method-declaration.test.tsx +3 -4
  248. package/test/classdeclarations.test.tsx +277 -235
  249. package/test/classinstantiations.test.tsx +115 -109
  250. package/test/constructordeclaration.test.tsx +9 -6
  251. package/test/dataclassdeclarations.test.tsx +256 -349
  252. package/test/decoratorlist.test.tsx +114 -0
  253. package/test/dundermethoddeclaration.test.tsx +3 -4
  254. package/test/enums.test.tsx +84 -71
  255. package/test/externals.test.tsx +25 -25
  256. package/test/factories.test.tsx +64 -22
  257. package/test/functioncallexpressions.test.tsx +123 -109
  258. package/test/functiondeclaration.test.tsx +218 -140
  259. package/test/imports.test.tsx +119 -91
  260. package/test/memberexpressions.test.tsx +265 -207
  261. package/test/methoddeclaration.test.tsx +115 -24
  262. package/test/namepolicies.test.tsx +69 -69
  263. package/test/propertydeclaration.test.tsx +71 -7
  264. package/test/pydanticclassdeclarations.test.tsx +704 -0
  265. package/test/pydocs.test.tsx +531 -579
  266. package/test/references.test.tsx +24 -23
  267. package/test/sourcefiles.test.tsx +527 -492
  268. package/test/staticmethoddeclaration.test.tsx +3 -4
  269. package/test/type-checking-imports.test.tsx +206 -218
  270. package/test/typereference.test.tsx +15 -12
  271. package/test/uniontypeexpression.test.tsx +74 -61
  272. package/test/utils.tsx +26 -110
  273. package/test/values.test.tsx +82 -32
  274. package/test/variables.test.tsx +162 -142
  275. package/test/vitest.setup.ts +1 -0
  276. package/vitest.config.ts +3 -0
@@ -1,33 +1,33 @@
1
1
  import { refkey } from "@alloy-js/core";
2
- import { d } from "@alloy-js/core/testing";
3
2
  import { expect, it } from "vitest";
4
3
  import { createModule } from "../src/create-module.js";
5
4
  import * as py from "../src/index.js";
6
- import { toSourceText } from "./utils.jsx";
5
+ import { TestOutput } from "./utils.js";
7
6
 
8
7
  it("declaration of class instance with variables", () => {
9
- // Creating the reference separately so the naming policy doesn't interfere
10
8
  const classRef = refkey();
11
- const result = toSourceText([
12
- <py.StatementList>
13
- <py.ClassDeclaration name="one-class" refkey={classRef} />
14
- <py.ClassInstantiation
15
- target={classRef}
16
- args={[
17
- <py.Atom jsValue={"A name"} />,
18
- <py.Atom jsValue={42} />,
19
- <py.Atom jsValue={true} />,
20
- ]}
21
- />
22
- </py.StatementList>,
23
- ]);
24
- const expected = d`
9
+ expect(
10
+ <TestOutput>
11
+ <py.StatementList>
12
+ <py.ClassDeclaration name="one-class" refkey={classRef} />
13
+ <py.ClassInstantiation
14
+ target={classRef}
15
+ args={[
16
+ <py.Atom jsValue={"A name"} />,
17
+ <py.Atom jsValue={42} />,
18
+ <py.Atom jsValue={true} />,
19
+ ]}
20
+ />
21
+ </py.StatementList>
22
+ </TestOutput>,
23
+ ).toRenderTo(
24
+ `
25
25
  class OneClass:
26
26
  pass
27
27
 
28
28
  OneClass("A name", 42, True)
29
- `;
30
- expect(result).toRenderTo(expected);
29
+ `,
30
+ );
31
31
  });
32
32
 
33
33
  it("correct resolving of external module", () => {
@@ -37,114 +37,120 @@ it("correct resolving of external module", () => {
37
37
  models: ["Request"],
38
38
  },
39
39
  });
40
- const result = toSourceText(
41
- [
40
+ expect(
41
+ <TestOutput externals={[requestsLib]}>
42
42
  <py.StatementList>
43
43
  <py.ClassInstantiation target={requestsLib["models"].Request} />
44
- </py.StatementList>,
45
- ],
46
- { externals: [requestsLib] },
47
- );
48
- const expected = d`
44
+ </py.StatementList>
45
+ </TestOutput>,
46
+ ).toRenderTo(
47
+ `
49
48
  from requests.models import Request
50
49
 
51
50
  Request()
52
- `;
53
- expect(result).toRenderTo(expected);
51
+ `,
52
+ );
54
53
  });
55
54
 
56
55
  it("Class instantiation without a reference", () => {
57
- const result = toSourceText([
58
- <py.StatementList>
59
- <py.ClassInstantiation
60
- target={"ExampleClass"}
61
- args={[
62
- <py.Atom jsValue={"A name"} />,
63
- <py.Atom jsValue={42} />,
64
- <py.Atom jsValue={true} />,
65
- ]}
66
- />
67
- </py.StatementList>,
68
- ]);
69
- const expected = d`
56
+ expect(
57
+ <TestOutput>
58
+ <py.StatementList>
59
+ <py.ClassInstantiation
60
+ target={"ExampleClass"}
61
+ args={[
62
+ <py.Atom jsValue={"A name"} />,
63
+ <py.Atom jsValue={42} />,
64
+ <py.Atom jsValue={true} />,
65
+ ]}
66
+ />
67
+ </py.StatementList>
68
+ </TestOutput>,
69
+ ).toRenderTo(
70
+ `
70
71
  ExampleClass("A name", 42, True)
71
- `;
72
- expect(result).toRenderTo(expected);
72
+ `,
73
+ );
73
74
  });
74
75
 
75
76
  it("Class instantiation without a reference and with call statement vars", () => {
76
- const result = toSourceText([
77
- <py.StatementList>
78
- <py.ClassInstantiation
79
- target={"ExampleClass"}
80
- args={[
81
- <py.VariableDeclaration
82
- name="name"
83
- initializer={"A name"}
84
- callStatementVar
85
- />,
86
- <py.VariableDeclaration
87
- name="number"
88
- initializer={42}
89
- callStatementVar
90
- />,
91
- <py.VariableDeclaration
92
- name="flag"
93
- initializer={true}
94
- callStatementVar
95
- />,
96
- ]}
97
- />
98
- </py.StatementList>,
99
- ]);
100
- const expected = d`
77
+ expect(
78
+ <TestOutput>
79
+ <py.StatementList>
80
+ <py.ClassInstantiation
81
+ target={"ExampleClass"}
82
+ args={[
83
+ <py.VariableDeclaration
84
+ name="name"
85
+ initializer={"A name"}
86
+ callStatementVar
87
+ />,
88
+ <py.VariableDeclaration
89
+ name="number"
90
+ initializer={42}
91
+ callStatementVar
92
+ />,
93
+ <py.VariableDeclaration
94
+ name="flag"
95
+ initializer={true}
96
+ callStatementVar
97
+ />,
98
+ ]}
99
+ />
100
+ </py.StatementList>
101
+ </TestOutput>,
102
+ ).toRenderTo(
103
+ `
101
104
  ExampleClass(name="A name", number=42, flag=True)
102
- `;
103
- expect(result).toRenderTo(expected);
105
+ `,
106
+ );
104
107
  });
105
108
 
106
109
  it("Class instantiation without a reference mixing unnamed and named vars", () => {
107
- const result = toSourceText([
108
- <py.StatementList>
109
- <py.ClassInstantiation
110
- target={"ExampleClass"}
111
- args={[
112
- <py.Atom jsValue={"A name"} />,
113
- <py.VariableDeclaration
114
- name="number"
115
- initializer={42}
116
- callStatementVar
117
- />,
118
- <py.VariableDeclaration
119
- name="flag"
120
- initializer={true}
121
- callStatementVar
122
- />,
123
- ]}
124
- />
125
- </py.StatementList>,
126
- ]);
127
- const expected = d`
110
+ expect(
111
+ <TestOutput>
112
+ <py.StatementList>
113
+ <py.ClassInstantiation
114
+ target={"ExampleClass"}
115
+ args={[
116
+ <py.Atom jsValue={"A name"} />,
117
+ <py.VariableDeclaration
118
+ name="number"
119
+ initializer={42}
120
+ callStatementVar
121
+ />,
122
+ <py.VariableDeclaration
123
+ name="flag"
124
+ initializer={true}
125
+ callStatementVar
126
+ />,
127
+ ]}
128
+ />
129
+ </py.StatementList>
130
+ </TestOutput>,
131
+ ).toRenderTo(
132
+ `
128
133
  ExampleClass("A name", number=42, flag=True)
129
- `;
130
- expect(result).toRenderTo(expected);
134
+ `,
135
+ );
131
136
  });
132
137
 
133
138
  it("incorrect Class instantiation works", () => {
134
- const result = toSourceText([
135
- <py.ClassInstantiation
136
- target="MyClass"
137
- args={[
138
- <py.ClassDeclaration name="NestedClass" />,
139
- <py.FunctionDeclaration name="myFunc" />,
140
- <py.StatementList>
141
- <py.VariableDeclaration name="x" />
142
- </py.StatementList>,
143
- ]}
144
- />,
145
- ]);
146
-
147
- const expected = d`
139
+ expect(
140
+ <TestOutput>
141
+ <py.ClassInstantiation
142
+ target="MyClass"
143
+ args={[
144
+ <py.ClassDeclaration name="NestedClass" />,
145
+ <py.FunctionDeclaration name="myFunc" />,
146
+ <py.StatementList>
147
+ <py.VariableDeclaration name="x" />
148
+ </py.StatementList>,
149
+ ]}
150
+ />
151
+ </TestOutput>,
152
+ ).toRenderTo(
153
+ `
148
154
  MyClass(
149
155
  class NestedClass:
150
156
  pass
@@ -154,6 +160,6 @@ it("incorrect Class instantiation works", () => {
154
160
  ,
155
161
  x = None
156
162
  )
157
- `;
158
- expect(result).toRenderTo(expected);
163
+ `,
164
+ );
159
165
  });
@@ -1,7 +1,6 @@
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
- import { toSourceText } from "./utils.js";
3
+ import { TestOutput } from "./utils.js";
5
4
 
6
5
  describe("ConstructorDeclaration", () => {
7
6
  it("renders async constructor with return type", () => {
@@ -17,13 +16,15 @@ describe("ConstructorDeclaration", () => {
17
16
  </py.StatementList>
18
17
  );
19
18
 
20
- expect(toSourceText([decl])).toBe(d`
19
+ expect(<TestOutput>{decl}</TestOutput>).toRenderTo(
20
+ `
21
21
  class MyClass:
22
22
  async def __new__(cls) -> MyClass:
23
23
  return super().__new__(cls)
24
24
 
25
25
 
26
- `);
26
+ `,
27
+ );
27
28
  });
28
29
 
29
30
  it("renders __new__ with spread args", () => {
@@ -37,12 +38,14 @@ describe("ConstructorDeclaration", () => {
37
38
  </py.ClassDeclaration>
38
39
  );
39
40
 
40
- expect(toSourceText([decl])).toBe(d`
41
+ expect(<TestOutput>{decl}</TestOutput>).toRenderTo(
42
+ `
41
43
  class MyClass:
42
44
  def __new__(cls, *args, **kwargs):
43
45
  pass
44
46
 
45
47
 
46
- `);
48
+ `,
49
+ );
47
50
  });
48
51
  });