@alloy-js/python 0.5.0-dev.1 → 0.5.0

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 (217) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/dev/src/components/CallSignature.js +2 -2
  3. package/dist/dev/src/components/CallSignature.js.map +1 -1
  4. package/dist/dev/src/components/ConstructorDeclaration.js +1 -1
  5. package/dist/dev/src/components/ConstructorDeclaration.js.map +1 -1
  6. package/dist/dev/src/components/DataclassDeclaration.js +5 -5
  7. package/dist/dev/src/components/DataclassDeclaration.js.map +1 -1
  8. package/dist/dev/src/components/FunctionBase.js +9 -9
  9. package/dist/dev/src/components/FunctionBase.js.map +1 -1
  10. package/dist/dev/src/components/PropertyDeclaration.js +8 -8
  11. package/dist/dev/src/components/PropertyDeclaration.js.map +1 -1
  12. package/dist/dev/src/components/PyDoc.js +64 -64
  13. package/dist/dev/src/components/PyDoc.js.map +1 -1
  14. package/dist/dev/src/components/PydanticClassDeclaration.js +5 -5
  15. package/dist/dev/src/components/PydanticClassDeclaration.js.map +1 -1
  16. package/dist/dev/src/components/SourceFile.js +44 -32
  17. package/dist/dev/src/components/SourceFile.js.map +1 -1
  18. package/dist/dev/src/symbols/python-output-symbol.js.map +1 -1
  19. package/dist/dev/test/callsignatures.test.js +471 -297
  20. package/dist/dev/test/callsignatures.test.js.map +1 -1
  21. package/dist/dev/test/class-method-declaration.test.js +21 -10
  22. package/dist/dev/test/class-method-declaration.test.js.map +1 -1
  23. package/dist/dev/test/classdeclarations.test.js +459 -393
  24. package/dist/dev/test/classdeclarations.test.js.map +1 -1
  25. package/dist/dev/test/classinstantiations.test.js +201 -168
  26. package/dist/dev/test/classinstantiations.test.js.map +1 -1
  27. package/dist/dev/test/constructordeclaration.test.js +22 -11
  28. package/dist/dev/test/constructordeclaration.test.js.map +1 -1
  29. package/dist/dev/test/dataclassdeclarations.test.js +322 -368
  30. package/dist/dev/test/dataclassdeclarations.test.js.map +1 -1
  31. package/dist/dev/test/decoratorlist.test.js +96 -49
  32. package/dist/dev/test/decoratorlist.test.js.map +1 -1
  33. package/dist/dev/test/dundermethoddeclaration.test.js +22 -11
  34. package/dist/dev/test/dundermethoddeclaration.test.js.map +1 -1
  35. package/dist/dev/test/enums.test.js +218 -184
  36. package/dist/dev/test/enums.test.js.map +1 -1
  37. package/dist/dev/test/externals.test.js +57 -45
  38. package/dist/dev/test/externals.test.js.map +1 -1
  39. package/dist/dev/test/factories.test.js +124 -50
  40. package/dist/dev/test/factories.test.js.map +1 -1
  41. package/dist/dev/test/functioncallexpressions.test.js +199 -164
  42. package/dist/dev/test/functioncallexpressions.test.js.map +1 -1
  43. package/dist/dev/test/functiondeclaration.test.js +439 -272
  44. package/dist/dev/test/functiondeclaration.test.js.map +1 -1
  45. package/dist/dev/test/imports.test.js +273 -221
  46. package/dist/dev/test/imports.test.js.map +1 -1
  47. package/dist/dev/test/memberexpressions.test.js +1237 -972
  48. package/dist/dev/test/memberexpressions.test.js.map +1 -1
  49. package/dist/dev/test/methoddeclaration.test.js +142 -78
  50. package/dist/dev/test/methoddeclaration.test.js.map +1 -1
  51. package/dist/dev/test/namepolicies.test.js +130 -94
  52. package/dist/dev/test/namepolicies.test.js.map +1 -1
  53. package/dist/dev/test/propertydeclaration.test.js +88 -59
  54. package/dist/dev/test/propertydeclaration.test.js.map +1 -1
  55. package/dist/dev/test/pydanticclassdeclarations.test.js +299 -347
  56. package/dist/dev/test/pydanticclassdeclarations.test.js.map +1 -1
  57. package/dist/dev/test/pydocs.test.js +888 -715
  58. package/dist/dev/test/pydocs.test.js.map +1 -1
  59. package/dist/dev/test/references.test.js +42 -35
  60. package/dist/dev/test/references.test.js.map +1 -1
  61. package/dist/dev/test/sourcefiles.test.js +1109 -841
  62. package/dist/dev/test/sourcefiles.test.js.map +1 -1
  63. package/dist/dev/test/staticmethoddeclaration.test.js +21 -10
  64. package/dist/dev/test/staticmethoddeclaration.test.js.map +1 -1
  65. package/dist/dev/test/type-checking-imports.test.js +408 -359
  66. package/dist/dev/test/type-checking-imports.test.js.map +1 -1
  67. package/dist/dev/test/typereference.test.js +55 -40
  68. package/dist/dev/test/typereference.test.js.map +1 -1
  69. package/dist/dev/test/uniontypeexpression.test.js +222 -146
  70. package/dist/dev/test/uniontypeexpression.test.js.map +1 -1
  71. package/dist/dev/test/utils.js +39 -77
  72. package/dist/dev/test/utils.js.map +1 -1
  73. package/dist/dev/test/values.test.js +237 -101
  74. package/dist/dev/test/values.test.js.map +1 -1
  75. package/dist/dev/test/variables.test.js +321 -203
  76. package/dist/dev/test/variables.test.js.map +1 -1
  77. package/dist/dev/test/vitest.setup.js +2 -0
  78. package/dist/dev/test/vitest.setup.js.map +1 -0
  79. package/dist/src/components/CallSignature.d.ts.map +1 -1
  80. package/dist/src/components/CallSignature.js.map +1 -1
  81. package/dist/src/components/ConstructorDeclaration.d.ts.map +1 -1
  82. package/dist/src/components/ConstructorDeclaration.js.map +1 -1
  83. package/dist/src/components/DataclassDeclaration.d.ts.map +1 -1
  84. package/dist/src/components/DataclassDeclaration.js.map +1 -1
  85. package/dist/src/components/FunctionBase.d.ts.map +1 -1
  86. package/dist/src/components/FunctionBase.js.map +1 -1
  87. package/dist/src/components/PropertyDeclaration.d.ts.map +1 -1
  88. package/dist/src/components/PropertyDeclaration.js.map +1 -1
  89. package/dist/src/components/PyDoc.d.ts.map +1 -1
  90. package/dist/src/components/PyDoc.js.map +1 -1
  91. package/dist/src/components/PydanticClassDeclaration.d.ts.map +1 -1
  92. package/dist/src/components/PydanticClassDeclaration.js.map +1 -1
  93. package/dist/src/components/SourceFile.d.ts +2 -2
  94. package/dist/src/components/SourceFile.d.ts.map +1 -1
  95. package/dist/src/components/SourceFile.js +12 -0
  96. package/dist/src/components/SourceFile.js.map +1 -1
  97. package/dist/src/symbols/python-output-symbol.d.ts.map +1 -1
  98. package/dist/src/symbols/python-output-symbol.js.map +1 -1
  99. package/dist/test/callsignatures.test.js +346 -272
  100. package/dist/test/callsignatures.test.js.map +1 -1
  101. package/dist/test/class-method-declaration.test.js +7 -4
  102. package/dist/test/class-method-declaration.test.js.map +1 -1
  103. package/dist/test/classdeclarations.test.js +302 -288
  104. package/dist/test/classdeclarations.test.js.map +1 -1
  105. package/dist/test/classinstantiations.test.js +112 -103
  106. package/dist/test/classinstantiations.test.js.map +1 -1
  107. package/dist/test/constructordeclaration.test.js +7 -4
  108. package/dist/test/constructordeclaration.test.js.map +1 -1
  109. package/dist/test/dataclassdeclarations.test.js +134 -184
  110. package/dist/test/dataclassdeclarations.test.js.map +1 -1
  111. package/dist/test/decoratorlist.test.js +59 -36
  112. package/dist/test/decoratorlist.test.js.map +1 -1
  113. package/dist/test/dundermethoddeclaration.test.js +7 -4
  114. package/dist/test/dundermethoddeclaration.test.js.map +1 -1
  115. package/dist/test/enums.test.js +161 -159
  116. package/dist/test/enums.test.js.map +1 -1
  117. package/dist/test/externals.test.js +24 -24
  118. package/dist/test/externals.test.js.map +1 -1
  119. package/dist/test/factories.test.js +75 -33
  120. package/dist/test/factories.test.js.map +1 -1
  121. package/dist/test/functioncallexpressions.test.js +117 -106
  122. package/dist/test/functioncallexpressions.test.js.map +1 -1
  123. package/dist/test/functiondeclaration.test.js +247 -180
  124. package/dist/test/functiondeclaration.test.js.map +1 -1
  125. package/dist/test/imports.test.js +171 -143
  126. package/dist/test/imports.test.js.map +1 -1
  127. package/dist/test/memberexpressions.test.js +582 -453
  128. package/dist/test/memberexpressions.test.js.map +1 -1
  129. package/dist/test/methoddeclaration.test.js +66 -46
  130. package/dist/test/methoddeclaration.test.js.map +1 -1
  131. package/dist/test/namepolicies.test.js +90 -78
  132. package/dist/test/namepolicies.test.js.map +1 -1
  133. package/dist/test/propertydeclaration.test.js +25 -20
  134. package/dist/test/propertydeclaration.test.js.map +1 -1
  135. package/dist/test/pydanticclassdeclarations.test.js +134 -190
  136. package/dist/test/pydanticclassdeclarations.test.js.map +1 -1
  137. package/dist/test/pydocs.test.js +573 -532
  138. package/dist/test/pydocs.test.js.map +1 -1
  139. package/dist/test/references.test.js +31 -28
  140. package/dist/test/references.test.js.map +1 -1
  141. package/dist/test/sourcefiles.test.js +700 -580
  142. package/dist/test/sourcefiles.test.js.map +1 -1
  143. package/dist/test/staticmethoddeclaration.test.js +7 -4
  144. package/dist/test/staticmethoddeclaration.test.js.map +1 -1
  145. package/dist/test/type-checking-imports.test.js +297 -284
  146. package/dist/test/type-checking-imports.test.js.map +1 -1
  147. package/dist/test/typereference.test.js +29 -22
  148. package/dist/test/typereference.test.js.map +1 -1
  149. package/dist/test/uniontypeexpression.test.js +124 -88
  150. package/dist/test/uniontypeexpression.test.js.map +1 -1
  151. package/dist/test/utils.d.ts +10 -17
  152. package/dist/test/utils.d.ts.map +1 -1
  153. package/dist/test/utils.js +32 -74
  154. package/dist/test/utils.js.map +1 -1
  155. package/dist/test/values.test.js +135 -67
  156. package/dist/test/values.test.js.map +1 -1
  157. package/dist/test/variables.test.js +201 -151
  158. package/dist/test/variables.test.js.map +1 -1
  159. package/dist/test/vitest.setup.d.ts +2 -0
  160. package/dist/test/vitest.setup.d.ts.map +1 -0
  161. package/dist/test/vitest.setup.js +2 -0
  162. package/dist/test/vitest.setup.js.map +1 -0
  163. package/dist/tsconfig.tsbuildinfo +1 -1
  164. package/docs/api/components/FunctionalEnumDeclaration.md +3 -6
  165. package/docs/api/components/MemberExpression.md +1 -5
  166. package/docs/api/components/SourceFile.md +20 -8
  167. package/docs/api/components/index.md +0 -2
  168. package/docs/api/functions/isTypeRefContext.md +1 -1
  169. package/docs/api/index.md +2 -2
  170. package/docs/api/types/ReferenceProps.md +7 -0
  171. package/docs/api/types/TypeRefContextProps.md +7 -0
  172. package/docs/api/types/index.md +2 -0
  173. package/package.json +11 -10
  174. package/src/components/CallSignature.tsx +4 -2
  175. package/src/components/ConstructorDeclaration.tsx +4 -2
  176. package/src/components/DataclassDeclaration.tsx +1 -2
  177. package/src/components/FunctionBase.tsx +1 -2
  178. package/src/components/PropertyDeclaration.tsx +8 -4
  179. package/src/components/PyDoc.tsx +12 -6
  180. package/src/components/PydanticClassDeclaration.tsx +1 -2
  181. package/src/components/SourceFile.tsx +6 -1
  182. package/src/symbols/python-output-symbol.ts +1 -2
  183. package/temp/api.json +107 -61
  184. package/test/callsignatures.test.tsx +309 -283
  185. package/test/class-method-declaration.test.tsx +3 -4
  186. package/test/classdeclarations.test.tsx +263 -248
  187. package/test/classinstantiations.test.tsx +115 -109
  188. package/test/constructordeclaration.test.tsx +9 -6
  189. package/test/dataclassdeclarations.test.tsx +243 -361
  190. package/test/decoratorlist.test.tsx +78 -59
  191. package/test/dundermethoddeclaration.test.tsx +3 -4
  192. package/test/enums.test.tsx +65 -81
  193. package/test/externals.test.tsx +25 -25
  194. package/test/factories.test.tsx +64 -22
  195. package/test/functioncallexpressions.test.tsx +123 -109
  196. package/test/functiondeclaration.test.tsx +209 -148
  197. package/test/imports.test.tsx +119 -91
  198. package/test/memberexpressions.test.tsx +265 -207
  199. package/test/methoddeclaration.test.tsx +84 -63
  200. package/test/namepolicies.test.tsx +69 -69
  201. package/test/propertydeclaration.test.tsx +7 -8
  202. package/test/pydanticclassdeclarations.test.tsx +355 -487
  203. package/test/pydocs.test.tsx +531 -579
  204. package/test/references.test.tsx +24 -23
  205. package/test/sourcefiles.test.tsx +527 -492
  206. package/test/staticmethoddeclaration.test.tsx +3 -4
  207. package/test/type-checking-imports.test.tsx +206 -218
  208. package/test/typereference.test.tsx +15 -12
  209. package/test/uniontypeexpression.test.tsx +74 -61
  210. package/test/utils.tsx +26 -110
  211. package/test/values.test.tsx +82 -32
  212. package/test/variables.test.tsx +162 -142
  213. package/test/vitest.setup.ts +1 -0
  214. package/tsdoc-metadata.json +1 -1
  215. package/vitest.config.ts +4 -0
  216. package/docs/api/components/Reference.md +0 -31
  217. package/docs/api/components/TypeRefContext.md +0 -41
@@ -1,129 +1,165 @@
1
1
  import { createComponent as _$createComponent, memo as _$memo } from "@alloy-js/core/jsx-runtime";
2
2
  import { memberRefkey, namekey, refkey } from "@alloy-js/core";
3
- import { d } from "@alloy-js/core/testing";
4
3
  import { describe, expect, it } from "vitest";
5
4
  import * as py from "../src/index.js";
6
- import { assertFileContents, toSourceText, toSourceTextMultiple } from "./utils.js";
5
+ import { TestOutput, TestOutputDirectory } from "./utils.js";
7
6
  describe("Python Class", () => {
8
7
  it("renders class-level decorators above `class`", () => {
9
- const result = toSourceText([_$createComponent(py.ClassDeclaration, {
10
- name: "Foo",
11
- decorators: ["@final", "@deprecated('use Bar')"]
8
+ expect(_$createComponent(TestOutput, {
9
+ get children() {
10
+ return _$createComponent(py.ClassDeclaration, {
11
+ name: "Foo",
12
+ decorators: ["@final", "@deprecated('use Bar')"]
13
+ }, {
14
+ fileName: import.meta.url,
15
+ lineNumber: 10,
16
+ columnNumber: 9
17
+ });
18
+ }
12
19
  }, {
13
20
  fileName: import.meta.url,
14
- lineNumber: 14,
21
+ lineNumber: 9,
15
22
  columnNumber: 7
16
- })]);
17
- expect(result).toRenderTo(d`
23
+ })).toRenderTo(`
18
24
  @final
19
25
  @deprecated('use Bar')
20
26
  class Foo:
21
27
  pass
22
28
 
23
-
24
29
  `);
25
30
  });
26
31
  it("renders nothing extra when decorators is undefined", () => {
27
- const result = toSourceText([_$createComponent(py.ClassDeclaration, {
28
- name: "Foo"
32
+ expect(_$createComponent(TestOutput, {
33
+ get children() {
34
+ return _$createComponent(py.ClassDeclaration, {
35
+ name: "Foo"
36
+ }, {
37
+ fileName: import.meta.url,
38
+ lineNumber: 29,
39
+ columnNumber: 9
40
+ });
41
+ }
29
42
  }, {
30
43
  fileName: import.meta.url,
31
- lineNumber: 30,
32
- columnNumber: 34
33
- })]);
34
- expect(result).toRenderTo(d`
44
+ lineNumber: 28,
45
+ columnNumber: 7
46
+ })).toRenderTo(`
35
47
  class Foo:
36
48
  pass
37
49
 
38
-
39
50
  `);
40
51
  });
41
52
  it("renders a class with no body as 'pass'", () => {
42
- const result = toSourceText([_$createComponent(py.ClassDeclaration, {
43
- name: "Foo"
53
+ expect(_$createComponent(TestOutput, {
54
+ get children() {
55
+ return _$createComponent(py.ClassDeclaration, {
56
+ name: "Foo"
57
+ }, {
58
+ fileName: import.meta.url,
59
+ lineNumber: 43,
60
+ columnNumber: 9
61
+ });
62
+ }
44
63
  }, {
45
64
  fileName: import.meta.url,
46
- lineNumber: 40,
47
- columnNumber: 34
48
- })]);
49
- expect(result).toRenderTo(d`
65
+ lineNumber: 42,
66
+ columnNumber: 7
67
+ })).toRenderTo(`
50
68
  class Foo:
51
69
  pass
52
70
 
53
-
54
71
  `);
55
72
  });
56
73
  it("takes a namekey", () => {
57
- const result = toSourceText([_$createComponent(py.ClassDeclaration, {
58
- get name() {
59
- return namekey("Foo");
74
+ expect(_$createComponent(TestOutput, {
75
+ get children() {
76
+ return _$createComponent(py.ClassDeclaration, {
77
+ get name() {
78
+ return namekey("Foo");
79
+ }
80
+ }, {
81
+ fileName: import.meta.url,
82
+ lineNumber: 57,
83
+ columnNumber: 9
84
+ });
60
85
  }
61
86
  }, {
62
87
  fileName: import.meta.url,
63
- lineNumber: 51,
88
+ lineNumber: 56,
64
89
  columnNumber: 7
65
- })]);
66
- expect(result).toRenderTo(d`
90
+ })).toRenderTo(`
67
91
  class Foo:
68
92
  pass
69
93
 
70
-
71
94
  `);
72
95
  });
73
96
  it("renders a class with a body", () => {
74
- const result = toSourceText([_$createComponent(py.ClassDeclaration, {
75
- name: "Bar",
76
- children: "print('hi')"
97
+ expect(_$createComponent(TestOutput, {
98
+ get children() {
99
+ return _$createComponent(py.ClassDeclaration, {
100
+ name: "Bar",
101
+ children: "print('hi')"
102
+ }, {
103
+ fileName: import.meta.url,
104
+ lineNumber: 71,
105
+ columnNumber: 9
106
+ });
107
+ }
77
108
  }, {
78
109
  fileName: import.meta.url,
79
- lineNumber: 63,
110
+ lineNumber: 70,
80
111
  columnNumber: 7
81
- })]);
82
- expect(result).toRenderTo(d`
112
+ })).toRenderTo(`
83
113
  class Bar:
84
114
  print('hi')
85
115
 
86
-
87
116
  `);
88
117
  });
89
118
  it("renders a class with base classes", () => {
90
- const result = toSourceText([_$createComponent(py.StatementList, {
119
+ expect(_$createComponent(TestOutput, {
91
120
  get children() {
92
- return [_$createComponent(py.ClassDeclaration, {
93
- name: "Base1",
94
- get refkey() {
95
- return refkey("Base1");
96
- }
97
- }, {
98
- fileName: import.meta.url,
99
- lineNumber: 76,
100
- columnNumber: 9
101
- }), _$createComponent(py.ClassDeclaration, {
102
- name: "Base2",
103
- get refkey() {
104
- return refkey("Base2");
105
- }
106
- }, {
107
- fileName: import.meta.url,
108
- lineNumber: 77,
109
- columnNumber: 9
110
- }), _$createComponent(py.ClassDeclaration, {
111
- name: "Baz",
112
- get bases() {
113
- return [refkey("Base1"), refkey("Base2")];
121
+ return _$createComponent(py.StatementList, {
122
+ get children() {
123
+ return [_$createComponent(py.ClassDeclaration, {
124
+ name: "Base1",
125
+ get refkey() {
126
+ return refkey("Base1");
127
+ }
128
+ }, {
129
+ fileName: import.meta.url,
130
+ lineNumber: 86,
131
+ columnNumber: 11
132
+ }), _$createComponent(py.ClassDeclaration, {
133
+ name: "Base2",
134
+ get refkey() {
135
+ return refkey("Base2");
136
+ }
137
+ }, {
138
+ fileName: import.meta.url,
139
+ lineNumber: 87,
140
+ columnNumber: 11
141
+ }), _$createComponent(py.ClassDeclaration, {
142
+ name: "Baz",
143
+ get bases() {
144
+ return [refkey("Base1"), refkey("Base2")];
145
+ }
146
+ }, {
147
+ fileName: import.meta.url,
148
+ lineNumber: 88,
149
+ columnNumber: 11
150
+ })];
114
151
  }
115
152
  }, {
116
153
  fileName: import.meta.url,
117
- lineNumber: 78,
154
+ lineNumber: 85,
118
155
  columnNumber: 9
119
- })];
156
+ });
120
157
  }
121
158
  }, {
122
159
  fileName: import.meta.url,
123
- lineNumber: 75,
160
+ lineNumber: 84,
124
161
  columnNumber: 7
125
- })]);
126
- const expected = d`
162
+ })).toRenderTo(`
127
163
  class Base1:
128
164
  pass
129
165
 
@@ -133,175 +169,183 @@ describe("Python Class", () => {
133
169
  class Baz(Base1, Base2):
134
170
  pass
135
171
 
136
-
137
- `;
138
- expect(result).toRenderTo(expected);
172
+ `);
139
173
  });
140
174
  it("renders a class with base classes and body", () => {
141
- const result = toSourceText([_$createComponent(py.ClassDeclaration, {
142
- name: "Qux",
143
- bases: ["Base"],
144
- children: "print('hello')"
175
+ expect(_$createComponent(TestOutput, {
176
+ get children() {
177
+ return _$createComponent(py.ClassDeclaration, {
178
+ name: "Qux",
179
+ bases: ["Base"],
180
+ children: "print('hello')"
181
+ }, {
182
+ fileName: import.meta.url,
183
+ lineNumber: 112,
184
+ columnNumber: 9
185
+ });
186
+ }
145
187
  }, {
146
188
  fileName: import.meta.url,
147
- lineNumber: 101,
189
+ lineNumber: 111,
148
190
  columnNumber: 7
149
- })]);
150
- expect(result).toRenderTo(d`
191
+ })).toRenderTo(`
151
192
  class Qux(Base):
152
193
  print('hello')
153
194
 
154
-
155
195
  `);
156
196
  });
157
197
  it("renders classes across modules with inheritance", () => {
158
- const result = toSourceTextMultiple([_$createComponent(py.SourceFile, {
159
- path: "mod1.py",
198
+ expect(_$createComponent(TestOutputDirectory, {
160
199
  get children() {
161
- return _$createComponent(py.ClassDeclaration, {
162
- name: "A",
163
- get refkey() {
164
- return refkey("A");
200
+ return [_$createComponent(py.SourceFile, {
201
+ path: "mod1.py",
202
+ get children() {
203
+ return _$createComponent(py.ClassDeclaration, {
204
+ name: "A",
205
+ get refkey() {
206
+ return refkey("A");
207
+ }
208
+ }, {
209
+ fileName: import.meta.url,
210
+ lineNumber: 129,
211
+ columnNumber: 11
212
+ });
165
213
  }
166
214
  }, {
167
215
  fileName: import.meta.url,
168
- lineNumber: 116,
216
+ lineNumber: 128,
169
217
  columnNumber: 9
170
- });
171
- }
172
- }, {
173
- fileName: import.meta.url,
174
- lineNumber: 115,
175
- columnNumber: 7
176
- }), _$createComponent(py.SourceFile, {
177
- path: "folder/mod2.py",
178
- get children() {
179
- return _$createComponent(py.ClassDeclaration, {
180
- name: "B",
181
- get refkey() {
182
- return refkey("B");
183
- },
184
- get bases() {
185
- return [refkey("A")];
218
+ }), _$createComponent(py.SourceFile, {
219
+ path: "folder/mod2.py",
220
+ get children() {
221
+ return _$createComponent(py.ClassDeclaration, {
222
+ name: "B",
223
+ get refkey() {
224
+ return refkey("B");
225
+ },
226
+ get bases() {
227
+ return [refkey("A")];
228
+ }
229
+ }, {
230
+ fileName: import.meta.url,
231
+ lineNumber: 132,
232
+ columnNumber: 11
233
+ });
186
234
  }
187
235
  }, {
188
236
  fileName: import.meta.url,
189
- lineNumber: 119,
237
+ lineNumber: 131,
190
238
  columnNumber: 9
191
- });
192
- }
193
- }, {
194
- fileName: import.meta.url,
195
- lineNumber: 118,
196
- columnNumber: 7
197
- }), _$createComponent(py.SourceFile, {
198
- path: "mod3.py",
199
- get children() {
200
- return _$createComponent(py.ClassDeclaration, {
201
- name: "C",
202
- get bases() {
203
- return [refkey("B")];
239
+ }), _$createComponent(py.SourceFile, {
240
+ path: "mod3.py",
241
+ get children() {
242
+ return _$createComponent(py.ClassDeclaration, {
243
+ name: "C",
244
+ get bases() {
245
+ return [refkey("B")];
246
+ }
247
+ }, {
248
+ fileName: import.meta.url,
249
+ lineNumber: 139,
250
+ columnNumber: 11
251
+ });
204
252
  }
205
253
  }, {
206
254
  fileName: import.meta.url,
207
- lineNumber: 126,
255
+ lineNumber: 138,
208
256
  columnNumber: 9
209
- });
257
+ })];
210
258
  }
211
259
  }, {
212
260
  fileName: import.meta.url,
213
- lineNumber: 125,
261
+ lineNumber: 127,
214
262
  columnNumber: 7
215
- })]);
216
- const mod1Expected = d`
217
- class A:
218
- pass
219
-
220
-
221
- `;
222
- const mod2Expected = d`
223
- from mod1 import A
224
-
263
+ })).toRenderTo({
264
+ "mod1.py": `
265
+ class A:
266
+ pass
225
267
 
226
- class B(A):
227
- pass
268
+ `,
269
+ "folder/mod2.py": `
270
+ from mod1 import A
228
271
 
229
272
 
230
- `;
231
- const mod3Expected = d`
232
- from folder.mod2 import B
273
+ class B(A):
274
+ pass
233
275
 
276
+ `,
277
+ "mod3.py": `
278
+ from folder.mod2 import B
234
279
 
235
- class C(B):
236
- pass
237
280
 
281
+ class C(B):
282
+ pass
238
283
 
239
- `;
240
- assertFileContents(result, {
241
- "mod1.py": mod1Expected
242
- });
243
- assertFileContents(result, {
244
- "folder/mod2.py": mod2Expected
245
- });
246
- assertFileContents(result, {
247
- "mod3.py": mod3Expected
284
+ `
248
285
  });
249
286
  });
250
287
  it("renders a class with class variables like foo: str, and also bar: A where A is another class", () => {
251
- const result = toSourceText([_$createComponent(py.StatementList, {
288
+ expect(_$createComponent(TestOutput, {
252
289
  get children() {
253
- return [_$createComponent(py.ClassDeclaration, {
254
- name: "A",
255
- get refkey() {
256
- return refkey("A");
257
- }
258
- }, {
259
- fileName: import.meta.url,
260
- lineNumber: 161,
261
- columnNumber: 9
262
- }), _$createComponent(py.ClassDeclaration, {
263
- name: "B",
290
+ return _$createComponent(py.StatementList, {
264
291
  get children() {
265
- return _$createComponent(py.StatementList, {
292
+ return [_$createComponent(py.ClassDeclaration, {
293
+ name: "A",
294
+ get refkey() {
295
+ return refkey("A");
296
+ }
297
+ }, {
298
+ fileName: import.meta.url,
299
+ lineNumber: 171,
300
+ columnNumber: 11
301
+ }), _$createComponent(py.ClassDeclaration, {
302
+ name: "B",
266
303
  get children() {
267
- return [_$createComponent(py.VariableDeclaration, {
268
- name: "bar",
269
- get type() {
270
- return refkey("A");
271
- },
272
- omitNone: true
273
- }, {
274
- fileName: import.meta.url,
275
- lineNumber: 164,
276
- columnNumber: 13
277
- }), _$createComponent(py.VariableDeclaration, {
278
- name: "foo",
279
- type: "str",
280
- omitNone: true
304
+ return _$createComponent(py.StatementList, {
305
+ get children() {
306
+ return [_$createComponent(py.VariableDeclaration, {
307
+ name: "bar",
308
+ get type() {
309
+ return refkey("A");
310
+ },
311
+ omitNone: true
312
+ }, {
313
+ fileName: import.meta.url,
314
+ lineNumber: 174,
315
+ columnNumber: 15
316
+ }), _$createComponent(py.VariableDeclaration, {
317
+ name: "foo",
318
+ type: "str",
319
+ omitNone: true
320
+ }, {
321
+ fileName: import.meta.url,
322
+ lineNumber: 175,
323
+ columnNumber: 15
324
+ })];
325
+ }
281
326
  }, {
282
327
  fileName: import.meta.url,
283
- lineNumber: 165,
328
+ lineNumber: 173,
284
329
  columnNumber: 13
285
- })];
330
+ });
286
331
  }
287
332
  }, {
288
333
  fileName: import.meta.url,
289
- lineNumber: 163,
334
+ lineNumber: 172,
290
335
  columnNumber: 11
291
- });
336
+ })];
292
337
  }
293
338
  }, {
294
339
  fileName: import.meta.url,
295
- lineNumber: 162,
340
+ lineNumber: 170,
296
341
  columnNumber: 9
297
- })];
342
+ });
298
343
  }
299
344
  }, {
300
345
  fileName: import.meta.url,
301
- lineNumber: 160,
346
+ lineNumber: 169,
302
347
  columnNumber: 7
303
- })]);
304
- const expected = d`
348
+ })).toRenderTo(`
305
349
  class A:
306
350
  pass
307
351
 
@@ -309,75 +353,80 @@ describe("Python Class", () => {
309
353
  bar: A
310
354
  foo: str
311
355
 
312
-
313
- `;
314
- expect(result).toRenderTo(expected);
356
+ `);
315
357
  });
316
358
  it("renders a class with class variables like foo: str, and another identical class", () => {
317
359
  const fooKey = refkey();
318
360
  const barKey = refkey();
319
- const result = toSourceText([_$createComponent(py.StatementList, {
361
+ expect(_$createComponent(TestOutput, {
320
362
  get children() {
321
- return [_$createComponent(py.ClassDeclaration, {
322
- name: "A",
363
+ return _$createComponent(py.StatementList, {
323
364
  get children() {
324
- return _$createComponent(py.StatementList, {
365
+ return [_$createComponent(py.ClassDeclaration, {
366
+ name: "A",
325
367
  get children() {
326
- return _$createComponent(py.VariableDeclaration, {
327
- name: "foo",
328
- type: "str",
329
- refkey: fooKey,
330
- omitNone: true
368
+ return _$createComponent(py.StatementList, {
369
+ get children() {
370
+ return _$createComponent(py.VariableDeclaration, {
371
+ name: "foo",
372
+ type: "str",
373
+ refkey: fooKey,
374
+ omitNone: true
375
+ }, {
376
+ fileName: import.meta.url,
377
+ lineNumber: 202,
378
+ columnNumber: 15
379
+ });
380
+ }
331
381
  }, {
332
382
  fileName: import.meta.url,
333
- lineNumber: 191,
383
+ lineNumber: 201,
334
384
  columnNumber: 13
335
385
  });
336
386
  }
337
387
  }, {
338
388
  fileName: import.meta.url,
339
- lineNumber: 190,
389
+ lineNumber: 200,
340
390
  columnNumber: 11
341
- });
342
- }
343
- }, {
344
- fileName: import.meta.url,
345
- lineNumber: 189,
346
- columnNumber: 9
347
- }), _$createComponent(py.ClassDeclaration, {
348
- name: "B",
349
- get children() {
350
- return _$createComponent(py.StatementList, {
391
+ }), _$createComponent(py.ClassDeclaration, {
392
+ name: "B",
351
393
  get children() {
352
- return _$createComponent(py.VariableDeclaration, {
353
- name: "foo",
354
- type: "str",
355
- refkey: barKey,
356
- omitNone: true
394
+ return _$createComponent(py.StatementList, {
395
+ get children() {
396
+ return _$createComponent(py.VariableDeclaration, {
397
+ name: "foo",
398
+ type: "str",
399
+ refkey: barKey,
400
+ omitNone: true
401
+ }, {
402
+ fileName: import.meta.url,
403
+ lineNumber: 212,
404
+ columnNumber: 15
405
+ });
406
+ }
357
407
  }, {
358
408
  fileName: import.meta.url,
359
- lineNumber: 201,
409
+ lineNumber: 211,
360
410
  columnNumber: 13
361
411
  });
362
412
  }
363
413
  }, {
364
414
  fileName: import.meta.url,
365
- lineNumber: 200,
415
+ lineNumber: 210,
366
416
  columnNumber: 11
367
- });
417
+ }), fooKey, barKey];
368
418
  }
369
419
  }, {
370
420
  fileName: import.meta.url,
371
421
  lineNumber: 199,
372
422
  columnNumber: 9
373
- }), fooKey, barKey];
423
+ });
374
424
  }
375
425
  }, {
376
426
  fileName: import.meta.url,
377
- lineNumber: 188,
427
+ lineNumber: 198,
378
428
  columnNumber: 7
379
- })]);
380
- const expected = d`
429
+ })).toRenderTo(`
381
430
  class A:
382
431
  foo: str
383
432
 
@@ -386,85 +435,91 @@ describe("Python Class", () => {
386
435
 
387
436
  A.foo
388
437
  B.foo
389
- `;
390
- expect(result).toRenderTo(expected);
438
+ `);
391
439
  });
392
440
  });
393
441
  describe("Python Class - VariableDeclaration", () => {
394
442
  it("renders a class with class fields", () => {
395
- const result = toSourceText([_$createComponent(py.StatementList, {
443
+ expect(_$createComponent(TestOutput, {
396
444
  get children() {
397
- return [_$createComponent(py.ClassDeclaration, {
398
- get refkey() {
399
- return refkey("Base");
400
- },
401
- name: "Base"
402
- }, {
403
- fileName: import.meta.url,
404
- lineNumber: 231,
405
- columnNumber: 9
406
- }), _$createComponent(py.ClassDeclaration, {
407
- get refkey() {
408
- return refkey("A");
409
- },
410
- name: "A",
445
+ return _$createComponent(py.StatementList, {
411
446
  get children() {
412
- return _$createComponent(py.StatementList, {
447
+ return [_$createComponent(py.ClassDeclaration, {
448
+ get refkey() {
449
+ return refkey("Base");
450
+ },
451
+ name: "Base"
452
+ }, {
453
+ fileName: import.meta.url,
454
+ lineNumber: 244,
455
+ columnNumber: 11
456
+ }), _$createComponent(py.ClassDeclaration, {
457
+ get refkey() {
458
+ return refkey("A");
459
+ },
460
+ name: "A",
413
461
  get children() {
414
- return [_$createComponent(py.VariableDeclaration, {
415
- instanceVariable: true,
416
- name: "just_name"
417
- }, {
418
- fileName: import.meta.url,
419
- lineNumber: 237,
420
- columnNumber: 13
421
- }), _$createComponent(py.VariableDeclaration, {
422
- name: "name_and_type",
423
- type: "number",
424
- instanceVariable: true
425
- }, {
426
- fileName: import.meta.url,
427
- lineNumber: 238,
428
- columnNumber: 13
429
- }), _$createComponent(py.VariableDeclaration, {
430
- instanceVariable: true,
431
- name: "name_type_and_value",
432
- type: "number",
433
- initializer: 12
434
- }, {
435
- fileName: import.meta.url,
436
- lineNumber: 243,
437
- columnNumber: 13
438
- }), _$createComponent(py.VariableDeclaration, {
439
- instanceVariable: true,
440
- name: "class_based",
441
- get type() {
442
- return refkey("Base");
462
+ return _$createComponent(py.StatementList, {
463
+ get children() {
464
+ return [_$createComponent(py.VariableDeclaration, {
465
+ instanceVariable: true,
466
+ name: "just_name"
467
+ }, {
468
+ fileName: import.meta.url,
469
+ lineNumber: 250,
470
+ columnNumber: 15
471
+ }), _$createComponent(py.VariableDeclaration, {
472
+ name: "name_and_type",
473
+ type: "number",
474
+ instanceVariable: true
475
+ }, {
476
+ fileName: import.meta.url,
477
+ lineNumber: 251,
478
+ columnNumber: 15
479
+ }), _$createComponent(py.VariableDeclaration, {
480
+ instanceVariable: true,
481
+ name: "name_type_and_value",
482
+ type: "number",
483
+ initializer: 12
484
+ }, {
485
+ fileName: import.meta.url,
486
+ lineNumber: 256,
487
+ columnNumber: 15
488
+ }), _$createComponent(py.VariableDeclaration, {
489
+ instanceVariable: true,
490
+ name: "class_based",
491
+ get type() {
492
+ return refkey("Base");
493
+ }
494
+ }, {
495
+ fileName: import.meta.url,
496
+ lineNumber: 262,
497
+ columnNumber: 15
498
+ })];
443
499
  }
444
500
  }, {
445
501
  fileName: import.meta.url,
446
502
  lineNumber: 249,
447
503
  columnNumber: 13
448
- })];
504
+ });
449
505
  }
450
506
  }, {
451
507
  fileName: import.meta.url,
452
- lineNumber: 236,
508
+ lineNumber: 248,
453
509
  columnNumber: 11
454
- });
510
+ })];
455
511
  }
456
512
  }, {
457
513
  fileName: import.meta.url,
458
- lineNumber: 235,
514
+ lineNumber: 243,
459
515
  columnNumber: 9
460
- })];
516
+ });
461
517
  }
462
518
  }, {
463
519
  fileName: import.meta.url,
464
- lineNumber: 230,
520
+ lineNumber: 242,
465
521
  columnNumber: 7
466
- })]);
467
- const expected = d`
522
+ })).toRenderTo(`
468
523
  class Base:
469
524
  pass
470
525
 
@@ -474,110 +529,115 @@ describe("Python Class - VariableDeclaration", () => {
474
529
  name_type_and_value: number = 12
475
530
  class_based: Base = None
476
531
 
477
-
478
- `;
479
- expect(result).toRenderTo(expected);
532
+ `);
480
533
  });
481
534
  it("correctly access members of its type", () => {
482
535
  const classRk = refkey();
483
536
  const classMemberRk = refkey();
484
537
  const classMethodRk = refkey();
485
538
  const v1Rk = refkey();
486
- const res = toSourceTextMultiple([_$createComponent(py.SourceFile, {
487
- path: "inst.py",
539
+ expect(_$createComponent(TestOutputDirectory, {
488
540
  get children() {
489
- return _$createComponent(py.StatementList, {
541
+ return [_$createComponent(py.SourceFile, {
542
+ path: "inst.py",
490
543
  get children() {
491
- return [_$createComponent(py.VariableDeclaration, {
492
- name: "one",
493
- refkey: v1Rk,
494
- type: classRk,
495
- get initializer() {
496
- return _$createComponent(py.ClassInstantiation, {
497
- target: classRk
544
+ return _$createComponent(py.StatementList, {
545
+ get children() {
546
+ return [_$createComponent(py.VariableDeclaration, {
547
+ name: "one",
548
+ refkey: v1Rk,
549
+ type: classRk,
550
+ get initializer() {
551
+ return _$createComponent(py.ClassInstantiation, {
552
+ target: classRk
553
+ }, {
554
+ fileName: import.meta.url,
555
+ lineNumber: 300,
556
+ columnNumber: 28
557
+ });
558
+ }
498
559
  }, {
499
560
  fileName: import.meta.url,
500
- lineNumber: 286,
501
- columnNumber: 26
502
- });
561
+ lineNumber: 296,
562
+ columnNumber: 13
563
+ }), [_$memo(() => memberRefkey(v1Rk, classMemberRk), false, "memberRefkey(\u2026)")], [_$memo(() => memberRefkey(v1Rk, classMethodRk), false, "memberRefkey(\u2026)"), "()"]];
503
564
  }
504
565
  }, {
505
566
  fileName: import.meta.url,
506
- lineNumber: 282,
567
+ lineNumber: 295,
507
568
  columnNumber: 11
508
- }), [_$memo(() => memberRefkey(v1Rk, classMemberRk), false, "memberRefkey(\u2026)")], [_$memo(() => memberRefkey(v1Rk, classMethodRk), false, "memberRefkey(\u2026)"), "()"]];
569
+ });
509
570
  }
510
571
  }, {
511
572
  fileName: import.meta.url,
512
- lineNumber: 281,
573
+ lineNumber: 294,
513
574
  columnNumber: 9
514
- });
515
- }
516
- }, {
517
- fileName: import.meta.url,
518
- lineNumber: 280,
519
- columnNumber: 7
520
- }), _$createComponent(py.SourceFile, {
521
- path: "decl.py",
522
- get children() {
523
- return _$createComponent(py.ClassDeclaration, {
524
- name: "Bar",
525
- refkey: classRk,
575
+ }), _$createComponent(py.SourceFile, {
576
+ path: "decl.py",
526
577
  get children() {
527
- return _$createComponent(py.StatementList, {
578
+ return _$createComponent(py.ClassDeclaration, {
579
+ name: "Bar",
580
+ refkey: classRk,
528
581
  get children() {
529
- return [_$createComponent(py.VariableDeclaration, {
530
- name: "instanceProp",
531
- refkey: classMemberRk,
532
- initializer: 42,
533
- instanceVariable: true
534
- }, {
535
- fileName: import.meta.url,
536
- lineNumber: 295,
537
- columnNumber: 13
538
- }), _$createComponent(py.MethodDeclaration, {
539
- name: "instanceMethod",
540
- refkey: classMethodRk,
541
- returnType: "int"
582
+ return _$createComponent(py.StatementList, {
583
+ get children() {
584
+ return [_$createComponent(py.VariableDeclaration, {
585
+ name: "instanceProp",
586
+ refkey: classMemberRk,
587
+ initializer: 42,
588
+ instanceVariable: true
589
+ }, {
590
+ fileName: import.meta.url,
591
+ lineNumber: 309,
592
+ columnNumber: 15
593
+ }), _$createComponent(py.MethodDeclaration, {
594
+ name: "instanceMethod",
595
+ refkey: classMethodRk,
596
+ returnType: "int"
597
+ }, {
598
+ fileName: import.meta.url,
599
+ lineNumber: 315,
600
+ columnNumber: 15
601
+ })];
602
+ }
542
603
  }, {
543
604
  fileName: import.meta.url,
544
- lineNumber: 301,
605
+ lineNumber: 308,
545
606
  columnNumber: 13
546
- })];
607
+ });
547
608
  }
548
609
  }, {
549
610
  fileName: import.meta.url,
550
- lineNumber: 294,
611
+ lineNumber: 307,
551
612
  columnNumber: 11
552
613
  });
553
614
  }
554
615
  }, {
555
616
  fileName: import.meta.url,
556
- lineNumber: 293,
617
+ lineNumber: 306,
557
618
  columnNumber: 9
558
- });
619
+ })];
559
620
  }
560
621
  }, {
561
622
  fileName: import.meta.url,
562
- lineNumber: 292,
623
+ lineNumber: 293,
563
624
  columnNumber: 7
564
- })]);
565
- assertFileContents(res, {
625
+ })).toRenderTo({
566
626
  "inst.py": `
567
- from decl import Bar
627
+ from decl import Bar
568
628
 
569
- one: Bar = Bar()
570
- one.instance_prop
571
- one.instance_method()
572
- `,
629
+ one: Bar = Bar()
630
+ one.instance_prop
631
+ one.instance_method()
632
+ `,
573
633
  "decl.py": `
574
- class Bar:
575
- instance_prop = 42
576
- def instance_method(self) -> int:
577
- pass
634
+ class Bar:
635
+ instance_prop = 42
636
+ def instance_method(self) -> int:
637
+ pass
578
638
 
579
639
 
580
- `
640
+ `
581
641
  });
582
642
  });
583
643
  });
@@ -586,84 +646,91 @@ describe("Python Class - FunctionDeclaration", () => {
586
646
  const methodRefkey = refkey();
587
647
  const classMethodRefkey = refkey();
588
648
  const staticMethodRefkey = refkey();
589
- const result = toSourceText([_$createComponent(py.StatementList, {
649
+ expect(_$createComponent(TestOutput, {
590
650
  get children() {
591
- return [_$createComponent(py.ClassDeclaration, {
592
- name: "MyClass",
593
- bases: ["BaseClass"],
651
+ return _$createComponent(py.StatementList, {
594
652
  get children() {
595
- return _$createComponent(py.StatementList, {
653
+ return [_$createComponent(py.ClassDeclaration, {
654
+ name: "MyClass",
655
+ bases: ["BaseClass"],
596
656
  get children() {
597
- return [_$createComponent(py.VariableDeclaration, {
598
- name: "a",
599
- type: "int",
600
- instanceVariable: true
601
- }, {
602
- fileName: import.meta.url,
603
- lineNumber: 341,
604
- columnNumber: 13
605
- }), _$createComponent(py.VariableDeclaration, {
606
- name: "b",
607
- type: "int",
608
- instanceVariable: true
609
- }, {
610
- fileName: import.meta.url,
611
- lineNumber: 342,
612
- columnNumber: 13
613
- }), _$createComponent(py.MethodDeclaration, {
614
- name: "my_method",
615
- parameters: [{
616
- name: "a",
617
- type: "int"
618
- }, {
619
- name: "b",
620
- type: "int"
621
- }],
622
- returnType: "int",
623
- refkey: methodRefkey,
624
- children: "return a + b"
625
- }, {
626
- fileName: import.meta.url,
627
- lineNumber: 343,
628
- columnNumber: 13
629
- }), _$createComponent(py.ClassMethodDeclaration, {
630
- name: "my_class_method",
631
- returnType: "int",
632
- refkey: classMethodRefkey,
633
- children: "pass"
657
+ return _$createComponent(py.StatementList, {
658
+ get children() {
659
+ return [_$createComponent(py.VariableDeclaration, {
660
+ name: "a",
661
+ type: "int",
662
+ instanceVariable: true
663
+ }, {
664
+ fileName: import.meta.url,
665
+ lineNumber: 355,
666
+ columnNumber: 15
667
+ }), _$createComponent(py.VariableDeclaration, {
668
+ name: "b",
669
+ type: "int",
670
+ instanceVariable: true
671
+ }, {
672
+ fileName: import.meta.url,
673
+ lineNumber: 356,
674
+ columnNumber: 15
675
+ }), _$createComponent(py.MethodDeclaration, {
676
+ name: "my_method",
677
+ parameters: [{
678
+ name: "a",
679
+ type: "int"
680
+ }, {
681
+ name: "b",
682
+ type: "int"
683
+ }],
684
+ returnType: "int",
685
+ refkey: methodRefkey,
686
+ children: "return a + b"
687
+ }, {
688
+ fileName: import.meta.url,
689
+ lineNumber: 357,
690
+ columnNumber: 15
691
+ }), _$createComponent(py.ClassMethodDeclaration, {
692
+ name: "my_class_method",
693
+ returnType: "int",
694
+ refkey: classMethodRefkey,
695
+ children: "pass"
696
+ }, {
697
+ fileName: import.meta.url,
698
+ lineNumber: 368,
699
+ columnNumber: 15
700
+ }), _$createComponent(py.FunctionDeclaration, {
701
+ name: "my_standalone_function",
702
+ returnType: "int",
703
+ refkey: staticMethodRefkey,
704
+ children: "pass"
705
+ }, {
706
+ fileName: import.meta.url,
707
+ lineNumber: 375,
708
+ columnNumber: 15
709
+ })];
710
+ }
634
711
  }, {
635
712
  fileName: import.meta.url,
636
713
  lineNumber: 354,
637
714
  columnNumber: 13
638
- }), _$createComponent(py.FunctionDeclaration, {
639
- name: "my_standalone_function",
640
- returnType: "int",
641
- refkey: staticMethodRefkey,
642
- children: "pass"
643
- }, {
644
- fileName: import.meta.url,
645
- lineNumber: 361,
646
- columnNumber: 13
647
- })];
715
+ });
648
716
  }
649
717
  }, {
650
718
  fileName: import.meta.url,
651
- lineNumber: 340,
719
+ lineNumber: 353,
652
720
  columnNumber: 11
653
- });
721
+ }), classMethodRefkey, staticMethodRefkey];
654
722
  }
655
723
  }, {
656
724
  fileName: import.meta.url,
657
- lineNumber: 339,
725
+ lineNumber: 352,
658
726
  columnNumber: 9
659
- }), classMethodRefkey, staticMethodRefkey];
727
+ });
660
728
  }
661
729
  }, {
662
730
  fileName: import.meta.url,
663
- lineNumber: 338,
731
+ lineNumber: 351,
664
732
  columnNumber: 7
665
- })]);
666
- const expected = d`
733
+ })).toRenderTo(`
667
734
  class MyClass(BaseClass):
668
735
  a: int = None
669
736
  b: int = None
@@ -680,8 +747,7 @@ describe("Python Class - FunctionDeclaration", () => {
680
747
 
681
748
  MyClass.my_class_method
682
749
  MyClass.my_standalone_function
683
- `;
684
- expect(result).toRenderTo(expected);
750
+ `);
685
751
  });
686
752
  });
687
753
  //# sourceMappingURL=classdeclarations.test.js.map