PageRenderTime 38ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 0ms

/examples/libtest/ArgsTest.py

http://pyjamas.googlecode.com/
Python | 584 lines | 465 code | 119 blank | 0 comment | 0 complexity | 27c2cd705f338f71b2a3175d7d28ec55 MD5 | raw file
Possible License(s): LGPL-2.1, Apache-2.0
  1. from UnitTest import UnitTest
  2. class ArgsTest(UnitTest):
  3. def __init__(self):
  4. UnitTest.__init__(self)
  5. def getName(self):
  6. return "Args"
  7. def testSimpleCall(self):
  8. values = foo(1, 2, 3)
  9. self.assertEquals(values[0], 1)
  10. self.assertEquals(values[1], 2)
  11. self.assertEquals(values[2], 3)
  12. values = foo2(1, 2, 3)
  13. self.assertEquals(values[0], 1)
  14. self.assertEquals(values[1], 2)
  15. self.assertEquals(values[2], 3)
  16. def testKeywordCall(self):
  17. values = foo2(c=3, b=2, a=1)
  18. self.assertEquals(values[0], 1)
  19. self.assertEquals(values[1], 2)
  20. self.assertEquals(values[2], 3)
  21. values = foo2(b=2, a=1, c=3)
  22. self.assertEquals(values[0], 1)
  23. self.assertEquals(values[1], 2)
  24. self.assertEquals(values[2], 3)
  25. values = foo2()
  26. self.assertEquals(values[0], None)
  27. self.assertEquals(values[1], None)
  28. self.assertEquals(values[2], None)
  29. values = foo2(c=True)
  30. self.assertEquals(values[0], None)
  31. self.assertEquals(values[1], None)
  32. self.assertEquals(values[2], True)
  33. def testDefaultValuesCall(self):
  34. values = foo3(b=7)
  35. self.assertEquals(values[0], 1)
  36. self.assertEquals(values[1], 7)
  37. self.assertEquals(values[2], 3)
  38. values = foo3(a=9)
  39. self.assertEquals(values[0], 9)
  40. self.assertEquals(values[1], 2)
  41. self.assertEquals(values[2], 3)
  42. values = foo3()
  43. self.assertEquals(values[0], 1)
  44. self.assertEquals(values[1], 2)
  45. self.assertEquals(values[2], 3)
  46. def testVarargsCall(self):
  47. values = foo4(9, 8, 7, 2, 3, 4)
  48. self.assertEquals(values[0], 9)
  49. self.assertEquals(values[1], 8)
  50. self.assertEquals(values[2], 7)
  51. self.assertEquals(values[3][0], 2)
  52. self.assertEquals(values[3][1], 3)
  53. self.assertEquals(values[3][2], 4)
  54. values = foo4(9, 8, 7, 3, 2, 1)
  55. self.assertEquals(values[0], 9)
  56. self.assertEquals(values[1], 8)
  57. self.assertEquals(values[2], 7)
  58. self.assertEquals(values[3][0], 3)
  59. self.assertEquals(values[3][1], 2)
  60. self.assertEquals(values[3][2], 1)
  61. def testKwargsCall(self):
  62. values = foo5(9, 8, 7, x=5, y=7)
  63. self.assertEquals(values[0], 9)
  64. self.assertEquals(values[1], 8)
  65. self.assertEquals(values[2], 7)
  66. self.assertEquals(values[3]["x"], 5)
  67. self.assertEquals(values[3]["y"], 7)
  68. def testComboCall(self):
  69. values = foo6(9, 8, 7, 1, 2, 3, x=4, y=5)
  70. self.assertEquals(values[0], 9)
  71. self.assertEquals(values[1], 8)
  72. self.assertEquals(values[2], 7)
  73. self.assertEquals(values[3][0], 1)
  74. self.assertEquals(values[3][1], 2)
  75. self.assertEquals(values[3][2], 3)
  76. self.assertEquals(values[4]["x"], 4)
  77. self.assertEquals(values[4]["y"], 5)
  78. def testSimpleCtorCall(self):
  79. values = ArgsTestClass_foo(1, 2, 3).x
  80. self.assertEquals(values[0], 1)
  81. self.assertEquals(values[1], 2)
  82. self.assertEquals(values[2], 3)
  83. values = ArgsTestClass_foo2(1, 2, 3).x
  84. self.assertEquals(values[0], 1)
  85. self.assertEquals(values[1], 2)
  86. self.assertEquals(values[2], 3)
  87. def testKeywordCtorCall(self):
  88. values = ArgsTestClass_foo2(c=3, b=2, a=1).x
  89. self.assertEquals(values[0], 1)
  90. self.assertEquals(values[1], 2)
  91. self.assertEquals(values[2], 3)
  92. values = ArgsTestClass_foo2(b=2, a=1, c=3).x
  93. self.assertEquals(values[0], 1)
  94. self.assertEquals(values[1], 2)
  95. self.assertEquals(values[2], 3)
  96. values = ArgsTestClass_foo2().x
  97. self.assertEquals(values[0], None)
  98. self.assertEquals(values[1], None)
  99. self.assertEquals(values[2], None)
  100. values = ArgsTestClass_foo2(c=True).x
  101. self.assertEquals(values[0], None)
  102. self.assertEquals(values[1], None)
  103. self.assertEquals(values[2], True)
  104. def testDefaultValuesCtorCall(self):
  105. values = ArgsTestClass_foo3(b=7).x
  106. self.assertEquals(values[0], 1)
  107. self.assertEquals(values[1], 7)
  108. self.assertEquals(values[2], 3)
  109. values = ArgsTestClass_foo3(a=9).x
  110. self.assertEquals(values[0], 9)
  111. self.assertEquals(values[1], 2)
  112. self.assertEquals(values[2], 3)
  113. values = ArgsTestClass_foo3().x
  114. self.assertEquals(values[0], 1)
  115. self.assertEquals(values[1], 2)
  116. self.assertEquals(values[2], 3)
  117. def testVarargsCtorCall(self):
  118. values = ArgsTestClass_foo4(9, 8, 7, 2, 3, 4).x
  119. self.assertEquals(values[0], 9)
  120. self.assertEquals(values[1], 8)
  121. self.assertEquals(values[2], 7)
  122. self.assertEquals(values[3][0], 2)
  123. self.assertEquals(values[3][1], 3)
  124. self.assertEquals(values[3][2], 4)
  125. values = ArgsTestClass_foo4(9, 8, 7, 3, 2, 1).x
  126. self.assertEquals(values[0], 9)
  127. self.assertEquals(values[1], 8)
  128. self.assertEquals(values[2], 7)
  129. self.assertEquals(values[3][0], 3)
  130. self.assertEquals(values[3][1], 2)
  131. self.assertEquals(values[3][2], 1)
  132. def testKwargsCtorCall(self):
  133. values = ArgsTestClass_foo5(9, 8, 7, x=5, y=7).x
  134. self.assertEquals(values[0], 9)
  135. self.assertEquals(values[1], 8)
  136. self.assertEquals(values[2], 7)
  137. self.assertEquals(values[3]["x"], 5)
  138. self.assertEquals(values[3]["y"], 7)
  139. def testComboCtorCall(self):
  140. values = ArgsTestClass_foo6(9, 8, 7, 1, 2, 3, x=4, y=5).x
  141. self.assertEquals(values[0], 9)
  142. self.assertEquals(values[1], 8)
  143. self.assertEquals(values[2], 7)
  144. self.assertEquals(values[3][0], 1)
  145. self.assertEquals(values[3][1], 2)
  146. self.assertEquals(values[3][2], 3)
  147. self.assertEquals(values[4]["x"], 4)
  148. self.assertEquals(values[4]["y"], 5)
  149. def testSimpleMethodCall(self):
  150. values = ArgsTestClass().foo(1, 2, 3)
  151. self.assertEquals(values[0], 1)
  152. self.assertEquals(values[1], 2)
  153. self.assertEquals(values[2], 3)
  154. values = ArgsTestClass().foo2(1, 2, 3)
  155. self.assertEquals(values[0], 1)
  156. self.assertEquals(values[1], 2)
  157. self.assertEquals(values[2], 3)
  158. def testKeywordMethodCall(self):
  159. values = ArgsTestClass().foo2(c=3, b=2, a=1)
  160. self.assertEquals(values[0], 1)
  161. self.assertEquals(values[1], 2)
  162. self.assertEquals(values[2], 3)
  163. values = ArgsTestClass().foo2(b=2, a=1, c=3)
  164. self.assertEquals(values[0], 1)
  165. self.assertEquals(values[1], 2)
  166. self.assertEquals(values[2], 3)
  167. values = ArgsTestClass().foo2()
  168. self.assertEquals(values[0], None)
  169. self.assertEquals(values[1], None)
  170. self.assertEquals(values[2], None)
  171. values = ArgsTestClass().foo2(c=True)
  172. self.assertEquals(values[0], None)
  173. self.assertEquals(values[1], None)
  174. self.assertEquals(values[2], True)
  175. def testDefaultValuesMethodCall(self):
  176. values = ArgsTestClass().foo3(b=7)
  177. self.assertEquals(values[0], 1)
  178. self.assertEquals(values[1], 7)
  179. self.assertEquals(values[2], 3)
  180. values = ArgsTestClass().foo3(a=9)
  181. self.assertEquals(values[0], 9)
  182. self.assertEquals(values[1], 2)
  183. self.assertEquals(values[2], 3)
  184. values = ArgsTestClass().foo3()
  185. self.assertEquals(values[0], 1)
  186. self.assertEquals(values[1], 2)
  187. self.assertEquals(values[2], 3)
  188. def testVarargsMethodCall(self):
  189. values = ArgsTestClass().foo4(1, 2, 3)
  190. self.assertEquals(values[0], 1)
  191. self.assertEquals(values[1], 2)
  192. self.assertEquals(values[2], 3)
  193. values = ArgsTestClass().foo4(3, 2, 1)
  194. self.assertEquals(values[0], 3)
  195. self.assertEquals(values[1], 2)
  196. self.assertEquals(values[2], 1)
  197. def testKwargsMethodCall(self):
  198. values = ArgsTestClass().foo5(x=5, y=7)
  199. self.assertEquals(values["x"], 5)
  200. self.assertEquals(values["y"], 7)
  201. def testComboMethodCall(self):
  202. values = ArgsTestClass().foo6(1, 2, 3, x=4, y=5)
  203. self.assertEquals(values[0][0], 1)
  204. self.assertEquals(values[0][1], 2)
  205. self.assertEquals(values[0][2], 3)
  206. self.assertEquals(values[1]["x"], 4)
  207. self.assertEquals(values[1]["y"], 5)
  208. def testSimpleStaticMethodCall(self):
  209. values = ArgsTestClass2.foo(1, 2, 3)
  210. self.assertEquals(values[0], 1)
  211. self.assertEquals(values[1], 2)
  212. self.assertEquals(values[2], 3)
  213. values = ArgsTestClass2.foo2(1, 2, 3)
  214. self.assertEquals(values[0], 1)
  215. self.assertEquals(values[1], 2)
  216. self.assertEquals(values[2], 3)
  217. def testKeywordStaticMethodCall(self):
  218. values = ArgsTestClass2.foo2(c=3, b=2, a=1)
  219. self.assertEquals(values[0], 1)
  220. self.assertEquals(values[1], 2)
  221. self.assertEquals(values[2], 3)
  222. values = ArgsTestClass2.foo2(b=2, a=1, c=3)
  223. self.assertEquals(values[0], 1)
  224. self.assertEquals(values[1], 2)
  225. self.assertEquals(values[2], 3)
  226. values = ArgsTestClass2.foo2()
  227. self.assertEquals(values[0], None)
  228. self.assertEquals(values[1], None)
  229. self.assertEquals(values[2], None)
  230. values = ArgsTestClass2.foo2(c=True)
  231. self.assertEquals(values[0], None)
  232. self.assertEquals(values[1], None)
  233. self.assertEquals(values[2], True)
  234. def testDefaultValuesStaticMethodCall(self):
  235. values = ArgsTestClass2.foo3(b=7)
  236. self.assertEquals(values[0], 1)
  237. self.assertEquals(values[1], 7)
  238. self.assertEquals(values[2], 3)
  239. values = ArgsTestClass2.foo3(a=9)
  240. self.assertEquals(values[0], 9)
  241. self.assertEquals(values[1], 2)
  242. self.assertEquals(values[2], 3)
  243. values = ArgsTestClass2.foo3()
  244. self.assertEquals(values[0], 1)
  245. self.assertEquals(values[1], 2)
  246. self.assertEquals(values[2], 3)
  247. def testVarargsStaticMethodCall(self):
  248. values = ArgsTestClass2.foo4(1, 2, 3)
  249. self.assertEquals(values[0], 1)
  250. self.assertEquals(values[1], 2)
  251. self.assertEquals(values[2], 3)
  252. values = ArgsTestClass2.foo4(3, 2, 1)
  253. self.assertEquals(values[0], 3)
  254. self.assertEquals(values[1], 2)
  255. self.assertEquals(values[2], 1)
  256. def testKwargsStaticMethodCall(self):
  257. values = ArgsTestClass2.foo5(x=5, y=7)
  258. self.assertEquals(values["x"], 5)
  259. self.assertEquals(values["y"], 7)
  260. def testComboStaticMethodCall(self):
  261. values = ArgsTestClass2.foo6(1, 2, 3, x=4, y=5)
  262. self.assertEquals(values[0][0], 1)
  263. self.assertEquals(values[0][1], 2)
  264. self.assertEquals(values[0][2], 3)
  265. self.assertEquals(values[1]["x"], 4)
  266. self.assertEquals(values[1]["y"], 5)
  267. def testSimpleClassMethodCall(self):
  268. values = ArgsTestClass3.foo(1, 2, 3)
  269. self.assertEquals(values[0], 1)
  270. self.assertEquals(values[1], 2)
  271. self.assertEquals(values[2], 3)
  272. values = ArgsTestClass3.foo2(1, 2, 3)
  273. self.assertEquals(values[0], 1)
  274. self.assertEquals(values[1], 2)
  275. self.assertEquals(values[2], 3)
  276. def testKeywordClassMethodCall(self):
  277. values = ArgsTestClass3.foo2(c=3, b=2, a=1)
  278. self.assertEquals(values[0], 1)
  279. self.assertEquals(values[1], 2)
  280. self.assertEquals(values[2], 3)
  281. values = ArgsTestClass3.foo2(b=2, a=1, c=3)
  282. self.assertEquals(values[0], 1)
  283. self.assertEquals(values[1], 2)
  284. self.assertEquals(values[2], 3)
  285. values = ArgsTestClass3.foo2()
  286. self.assertEquals(values[0], None)
  287. self.assertEquals(values[1], None)
  288. self.assertEquals(values[2], None)
  289. values = ArgsTestClass3.foo2(c=True)
  290. self.assertEquals(values[0], None)
  291. self.assertEquals(values[1], None)
  292. self.assertEquals(values[2], True)
  293. def testDefaultValuesClassMethodCall(self):
  294. values = ArgsTestClass3.foo3(b=7)
  295. self.assertEquals(values[0], 1)
  296. self.assertEquals(values[1], 7)
  297. self.assertEquals(values[2], 3)
  298. values = ArgsTestClass3.foo3(a=9)
  299. self.assertEquals(values[0], 9)
  300. self.assertEquals(values[1], 2)
  301. self.assertEquals(values[2], 3)
  302. values = ArgsTestClass3.foo3()
  303. self.assertEquals(values[0], 1)
  304. self.assertEquals(values[1], 2)
  305. self.assertEquals(values[2], 3)
  306. def testVarargsClassMethodCall(self):
  307. values = ArgsTestClass3.foo4(1, 2, 3)
  308. self.assertEquals(values[0], 1)
  309. self.assertEquals(values[1], 2)
  310. self.assertEquals(values[2], 3)
  311. values = ArgsTestClass3.foo4(3, 2, 1)
  312. self.assertEquals(values[0], 3)
  313. self.assertEquals(values[1], 2)
  314. self.assertEquals(values[2], 1)
  315. def testKwargsClassMethodCall(self):
  316. values = ArgsTestClass3.foo5(x=5, y=7)
  317. self.assertEquals(values["x"], 5)
  318. self.assertEquals(values["y"], 7)
  319. def testComboClassMethodCall(self):
  320. values = ArgsTestClass3.foo6(1, 2, 3, x=4, y=5)
  321. self.assertEquals(values[0][0], 1)
  322. self.assertEquals(values[0][1], 2)
  323. self.assertEquals(values[0][2], 3)
  324. self.assertEquals(values[1]["x"], 4)
  325. self.assertEquals(values[1]["y"], 5)
  326. def testSimpleIndirectClassMethodCall(self):
  327. values = ArgsTestClass3().foo(1, 2, 3)
  328. self.assertEquals(values[0], 1)
  329. self.assertEquals(values[1], 2)
  330. self.assertEquals(values[2], 3)
  331. values = ArgsTestClass3().foo2(1, 2, 3)
  332. self.assertEquals(values[0], 1)
  333. self.assertEquals(values[1], 2)
  334. self.assertEquals(values[2], 3)
  335. def testKeywordIndirectClassMethodCall(self):
  336. values = ArgsTestClass3().foo2(c=3, b=2, a=1)
  337. self.assertEquals(values[0], 1)
  338. self.assertEquals(values[1], 2)
  339. self.assertEquals(values[2], 3)
  340. values = ArgsTestClass3().foo2(b=2, a=1, c=3)
  341. self.assertEquals(values[0], 1)
  342. self.assertEquals(values[1], 2)
  343. self.assertEquals(values[2], 3)
  344. values = ArgsTestClass3().foo2()
  345. self.assertEquals(values[0], None)
  346. self.assertEquals(values[1], None)
  347. self.assertEquals(values[2], None)
  348. values = ArgsTestClass3().foo2(c=True)
  349. self.assertEquals(values[0], None)
  350. self.assertEquals(values[1], None)
  351. self.assertEquals(values[2], True)
  352. def testDefaultValuesIndirectClassMethodCall(self):
  353. values = ArgsTestClass3().foo3(b=7)
  354. self.assertEquals(values[0], 1)
  355. self.assertEquals(values[1], 7)
  356. self.assertEquals(values[2], 3)
  357. values = ArgsTestClass3().foo3(a=9)
  358. self.assertEquals(values[0], 9)
  359. self.assertEquals(values[1], 2)
  360. self.assertEquals(values[2], 3)
  361. values = ArgsTestClass3().foo3()
  362. self.assertEquals(values[0], 1)
  363. self.assertEquals(values[1], 2)
  364. self.assertEquals(values[2], 3)
  365. def testVarargsIndirectClassMethodCall(self):
  366. values = ArgsTestClass3().foo4(1, 2, 3)
  367. self.assertEquals(values[0], 1)
  368. self.assertEquals(values[1], 2)
  369. self.assertEquals(values[2], 3)
  370. values = ArgsTestClass3().foo4(3, 2, 1)
  371. self.assertEquals(values[0], 3)
  372. self.assertEquals(values[1], 2)
  373. self.assertEquals(values[2], 1)
  374. def testKwargsIndirectClassMethodCall(self):
  375. values = ArgsTestClass3().foo5(x=5, y=7)
  376. self.assertEquals(values["x"], 5)
  377. self.assertEquals(values["y"], 7)
  378. def testComboIndirectClassMethodCall(self):
  379. values = ArgsTestClass3().foo6(1, 2, 3, x=4, y=5)
  380. self.assertEquals(values[0][0], 1)
  381. self.assertEquals(values[0][1], 2)
  382. self.assertEquals(values[0][2], 3)
  383. self.assertEquals(values[1]["x"], 4)
  384. self.assertEquals(values[1]["y"], 5)
  385. def foo(a, b, c):
  386. return [a, b, c]
  387. def foo2(a=None, b=None, c=None):
  388. return [a, b, c]
  389. def foo3(a=1, b=2, c=3):
  390. return [a, b, c]
  391. def foo4(a, b, c, *args):
  392. return a, b, c, args
  393. def foo5(a, b, c, **kwargs):
  394. return a, b, c, kwargs
  395. def foo6(a, b, c, *args, **kwargs):
  396. return (a, b, c, args, kwargs)
  397. class ArgsTestClass_foo:
  398. def __init__(self, a, b, c):
  399. self.x = [a, b, c]
  400. class ArgsTestClass_foo2:
  401. def __init__(self, a=None, b=None, c=None):
  402. self.x = [a, b, c]
  403. class ArgsTestClass_foo3:
  404. def __init__(self, a=1, b=2, c=3):
  405. self.x = [a, b, c]
  406. class ArgsTestClass_foo4:
  407. def __init__(self, a, b, c, *args):
  408. self.x = a, b, c, args
  409. class ArgsTestClass_foo5:
  410. def __init__(self, a, b, c, **kwargs):
  411. self.x = a, b, c, kwargs
  412. class ArgsTestClass_foo6:
  413. def __init__(self, a, b, c, *args, **kwargs):
  414. self.x = (a, b, c, args, kwargs)
  415. class ArgsTestClass:
  416. def foo(self, a, b, c):
  417. return [a, b, c]
  418. def foo2(self, a=None, b=None, c=None):
  419. return [a, b, c]
  420. def foo3(self, a=1, b=2, c=3):
  421. return [a, b, c]
  422. def foo4(self, *args):
  423. return args
  424. def foo5(self, **kwargs):
  425. return kwargs
  426. def foo6(self, *args, **kwargs):
  427. return (args, kwargs)
  428. class ArgsTestClass2:
  429. @staticmethod
  430. def foo(a, b, c):
  431. return [a, b, c]
  432. @staticmethod
  433. def foo2(a=None, b=None, c=None):
  434. return [a, b, c]
  435. @staticmethod
  436. def foo3(a=1, b=2, c=3):
  437. return [a, b, c]
  438. @staticmethod
  439. def foo4(*args):
  440. return args
  441. @staticmethod
  442. def foo5(**kwargs):
  443. return kwargs
  444. @staticmethod
  445. def foo6(*args, **kwargs):
  446. return (args, kwargs)
  447. class ArgsTestClass3:
  448. @classmethod
  449. def foo(self, a, b, c):
  450. return [a, b, c]
  451. @classmethod
  452. def foo2(self, a=None, b=None, c=None):
  453. return [a, b, c]
  454. @classmethod
  455. def foo3(self, a=1, b=2, c=3):
  456. return [a, b, c]
  457. @classmethod
  458. def foo4(self, *args):
  459. return args
  460. @classmethod
  461. def foo5(self, **kwargs):
  462. return kwargs
  463. @classmethod
  464. def foo6(self, *args, **kwargs):
  465. return (args, kwargs)