@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
@@ -8,17 +8,18 @@ import * as py from "../src/index.js";
8
8
  import { createPythonSymbol } from "../src/symbol-creation.js";
9
9
  import { ImportedSymbol, ImportRecords } from "../src/symbols/index.js";
10
10
  import {
11
- assertFileContents,
12
11
  createPythonModuleScope,
13
- toSourceText,
14
- toSourceTextMultiple,
12
+ TestOutput,
13
+ TestOutputDirectory,
15
14
  } from "./utils.jsx";
16
15
 
17
16
  describe("ImportStatement", () => {
18
17
  it("renders module import", () => {
19
- const result = toSourceText([<ImportStatement path="sys" />]);
20
- const expected = `import sys`;
21
- expect(result).toRenderTo(expected);
18
+ expect(
19
+ <TestOutput>
20
+ <ImportStatement path="sys" />
21
+ </TestOutput>,
22
+ ).toRenderTo("import sys");
22
23
  });
23
24
 
24
25
  it("renders named imports", () => {
@@ -28,11 +29,11 @@ describe("ImportStatement", () => {
28
29
  new ImportedSymbol(sqrtSymbol, sqrtSymbol),
29
30
  new ImportedSymbol(piSymbol, piSymbol),
30
31
  ]);
31
- const result = toSourceText([
32
- <ImportStatement path="math" symbols={symbols} />,
33
- ]);
34
- const expected = `from math import pi, sqrt`;
35
- expect(result).toRenderTo(expected);
32
+ expect(
33
+ <TestOutput>
34
+ <ImportStatement path="math" symbols={symbols} />
35
+ </TestOutput>,
36
+ ).toRenderTo("from math import pi, sqrt");
36
37
  });
37
38
  });
38
39
 
@@ -59,14 +60,19 @@ describe("ImportStatements", () => {
59
60
  [sysModuleScope, { symbols: new Set<ImportedSymbol>() }],
60
61
  ]);
61
62
 
62
- const result = toSourceText([<ImportStatements records={records} />]);
63
- const expected = `
63
+ expect(
64
+ <TestOutput>
65
+ <ImportStatements records={records} />
66
+ </TestOutput>,
67
+ ).toRenderTo(
68
+ `
64
69
  from math import pi
65
70
  from math import sqrt
66
71
  from requests import get
67
- import sys`;
68
- expect(result).toRenderTo(expected);
72
+ import sys`,
73
+ );
69
74
  });
75
+
70
76
  it("renders multiple import statements, but joining imports from the same module", () => {
71
77
  const pythonModuleScope = createPythonModuleScope("math", undefined);
72
78
  const sqrtSymbol = createPythonSymbol("sqrt", undefined);
@@ -87,13 +93,15 @@ describe("ImportStatements", () => {
87
93
  [requestsScope, { symbols: requestsSymbols }],
88
94
  ]);
89
95
 
90
- const result = toSourceText([
91
- <ImportStatements records={records} joinImportsFromSameModule={true} />,
92
- ]);
93
- const expected = `
96
+ expect(
97
+ <TestOutput>
98
+ <ImportStatements records={records} joinImportsFromSameModule={true} />
99
+ </TestOutput>,
100
+ ).toRenderTo(
101
+ `
94
102
  from math import pi, sqrt
95
- from requests import get, post`;
96
- expect(result).toRenderTo(expected);
103
+ from requests import get, post`,
104
+ );
97
105
  });
98
106
  });
99
107
 
@@ -102,36 +110,41 @@ describe("Imports being used", () => {
102
110
  const rk1 = refkey();
103
111
  const rk2 = refkey();
104
112
  const rk3 = refkey();
105
- const result = toSourceTextMultiple([
106
- <py.SourceFile path="test_1.py">
107
- <py.VariableDeclaration name="conflict" refkey={rk1} />
108
- </py.SourceFile>,
109
- <py.SourceFile path="test_3.py">
110
- <py.VariableDeclaration name="conflict" refkey={rk3} />
111
- </py.SourceFile>,
112
- <py.SourceFile path="test_2.py">
113
- <py.VariableDeclaration name="conflict" refkey={rk2} />
114
- </py.SourceFile>,
115
- <py.SourceFile path="test.py">
116
- <py.StatementList>
117
- <py.VariableDeclaration name="one" initializer={rk1} />
118
- <py.VariableDeclaration name="three" initializer={rk3} />
119
- <py.VariableDeclaration name="two" initializer={rk2} />
120
- </py.StatementList>
121
- </py.SourceFile>,
122
- ]);
123
- assertFileContents(result, {
113
+ expect(
114
+ <TestOutputDirectory>
115
+ <py.SourceFile path="test_1.py">
116
+ <py.VariableDeclaration name="conflict" refkey={rk1} />
117
+ </py.SourceFile>
118
+ <py.SourceFile path="test_3.py">
119
+ <py.VariableDeclaration name="conflict" refkey={rk3} />
120
+ </py.SourceFile>
121
+ <py.SourceFile path="test_2.py">
122
+ <py.VariableDeclaration name="conflict" refkey={rk2} />
123
+ </py.SourceFile>
124
+ <py.SourceFile path="test.py">
125
+ <py.StatementList>
126
+ <py.VariableDeclaration name="one" initializer={rk1} />
127
+ <py.VariableDeclaration name="three" initializer={rk3} />
128
+ <py.VariableDeclaration name="two" initializer={rk2} />
129
+ </py.StatementList>
130
+ </py.SourceFile>
131
+ </TestOutputDirectory>,
132
+ ).toRenderTo({
124
133
  "test.py": `
125
- from test_1 import conflict
126
- from test_2 import conflict as conflict_3_test_2
127
- from test_3 import conflict as conflict_2_test_3
128
-
129
- one = conflict
130
- three = conflict_2_test_3
131
- two = conflict_3_test_2
132
- `,
134
+ from test_1 import conflict
135
+ from test_2 import conflict as conflict_3_test_2
136
+ from test_3 import conflict as conflict_2_test_3
137
+
138
+ one = conflict
139
+ three = conflict_2_test_3
140
+ two = conflict_3_test_2
141
+ `,
142
+ "test_1.py": "conflict = None",
143
+ "test_2.py": "conflict = None",
144
+ "test_3.py": "conflict = None",
133
145
  });
134
146
  });
147
+
135
148
  it("works with importing the same name many times from different files and with the correct order", () => {
136
149
  const rk1 = refkey();
137
150
  const rk2 = refkey();
@@ -140,50 +153,65 @@ describe("Imports being used", () => {
140
153
  const rk5 = refkey();
141
154
  const rk6 = refkey();
142
155
  const rk7 = refkey();
143
- const result = toSourceTextMultiple([
144
- <py.SourceFile path="test_1.py">
145
- <py.VariableDeclaration name="conflict" refkey={rk1} />
146
- <py.VariableDeclaration name="something_else" refkey={rk4} />
147
- </py.SourceFile>,
148
- <py.SourceFile path="test_2.py">
149
- <py.VariableDeclaration name="conflict" refkey={rk2} />
150
- <py.VariableDeclaration name="something" refkey={rk6} />
151
- <py.VariableDeclaration name="something_else" refkey={rk5} />
152
- </py.SourceFile>,
153
- <py.SourceFile path="test_3.py">
154
- <py.VariableDeclaration name="conflict" refkey={rk3} />
155
- <py.VariableDeclaration name="something" refkey={rk7} />
156
- </py.SourceFile>,
157
- <py.SourceFile path="test.py">
158
- <py.StatementList>
159
- <py.VariableDeclaration name="one" initializer={rk1} />
160
- <py.VariableDeclaration name="two" initializer={rk2} />
161
- <py.VariableDeclaration name="three" initializer={rk3} />
162
- <py.VariableDeclaration name="something_else" initializer={rk4} />
163
- <py.VariableDeclaration name="something_else_two" initializer={rk5} />
164
- <py.VariableDeclaration name="something" initializer={rk6} />
165
- <py.VariableDeclaration name="something_two" initializer={rk7} />
166
- </py.StatementList>
167
- </py.SourceFile>,
168
- ]);
169
- assertFileContents(result, {
156
+ expect(
157
+ <TestOutputDirectory>
158
+ <py.SourceFile path="test_1.py">
159
+ <py.VariableDeclaration name="conflict" refkey={rk1} />
160
+ <py.VariableDeclaration name="something_else" refkey={rk4} />
161
+ </py.SourceFile>
162
+ <py.SourceFile path="test_2.py">
163
+ <py.VariableDeclaration name="conflict" refkey={rk2} />
164
+ <py.VariableDeclaration name="something" refkey={rk6} />
165
+ <py.VariableDeclaration name="something_else" refkey={rk5} />
166
+ </py.SourceFile>
167
+ <py.SourceFile path="test_3.py">
168
+ <py.VariableDeclaration name="conflict" refkey={rk3} />
169
+ <py.VariableDeclaration name="something" refkey={rk7} />
170
+ </py.SourceFile>
171
+ <py.SourceFile path="test.py">
172
+ <py.StatementList>
173
+ <py.VariableDeclaration name="one" initializer={rk1} />
174
+ <py.VariableDeclaration name="two" initializer={rk2} />
175
+ <py.VariableDeclaration name="three" initializer={rk3} />
176
+ <py.VariableDeclaration name="something_else" initializer={rk4} />
177
+ <py.VariableDeclaration
178
+ name="something_else_two"
179
+ initializer={rk5}
180
+ />
181
+ <py.VariableDeclaration name="something" initializer={rk6} />
182
+ <py.VariableDeclaration name="something_two" initializer={rk7} />
183
+ </py.StatementList>
184
+ </py.SourceFile>
185
+ </TestOutputDirectory>,
186
+ ).toRenderTo({
170
187
  "test.py": `
171
- from test_1 import conflict
172
- from test_1 import something_else as something_else_2_test_1
173
- from test_2 import conflict as conflict_2_test_2
174
- from test_2 import something as something_2_test_2
175
- from test_2 import something_else as something_else_3_test_2
176
- from test_3 import conflict as conflict_3_test_3
177
- from test_3 import something as something_3_test_3
178
-
179
- one = conflict
180
- two = conflict_2_test_2
181
- three = conflict_3_test_3
182
- something_else = something_else_2_test_1
183
- something_else_two = something_else_3_test_2
184
- something = something_2_test_2
185
- something_two = something_3_test_3
186
- `,
188
+ from test_1 import conflict
189
+ from test_1 import something_else as something_else_2_test_1
190
+ from test_2 import conflict as conflict_2_test_2
191
+ from test_2 import something as something_2_test_2
192
+ from test_2 import something_else as something_else_3_test_2
193
+ from test_3 import conflict as conflict_3_test_3
194
+ from test_3 import something as something_3_test_3
195
+
196
+ one = conflict
197
+ two = conflict_2_test_2
198
+ three = conflict_3_test_3
199
+ something_else = something_else_2_test_1
200
+ something_else_two = something_else_3_test_2
201
+ something = something_2_test_2
202
+ something_two = something_3_test_3
203
+ `,
204
+ "test_1.py": `conflict = None
205
+
206
+ something_else = None`,
207
+ "test_2.py": `conflict = None
208
+
209
+ something = None
210
+
211
+ something_else = None`,
212
+ "test_3.py": `conflict = None
213
+
214
+ something = None`,
187
215
  });
188
216
  });
189
217
  });