testXmlext.py 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330
  1. import unittest
  2. try:
  3. from inary.sxml import xmlext_iks as xmliks
  4. import ciksemel
  5. except BaseException:
  6. raise("Ciksemel not found")
  7. from inary.sxml import xmlext_minidom as xmlmdom
  8. import xml.dom.minidom
  9. import shutil
  10. class XmlextTestCase(unittest.TestCase):
  11. def setUp(self):
  12. self.xmlscript = '<a><b atrib="something">something in b tag.<c>something in c tag.</c></b><d>something in d tag.</d></a>'
  13. self.parsedmdom = xmlmdom.parseString(self.xmlscript)
  14. self.parsediks = xmliks.parseString(self.xmlscript)
  15. def testParse(self):
  16. with open("tests/deneme.xml", "w") as a:
  17. a.write(self.xmlscript)
  18. a.flush()
  19. a.close()
  20. self.assertEqual(
  21. xmlmdom.toString(
  22. xmlmdom.parse("tests/deneme.xml")),
  23. xmliks.toString(
  24. xmliks.parse("tests/deneme.xml")))
  25. def testAddNode(self):
  26. xmliks.addNode(self.parsediks, "newtag")
  27. xmliks.addNode(xmliks.getNode(self.parsediks, "b"), "newtag")
  28. xmlmdom.addNode(self.parsedmdom, "newtag")
  29. xmlmdom.addNode(xmlmdom.getNode(self.parsedmdom, "b"), "newtag")
  30. self.assertEqual(
  31. xmliks.toString(
  32. self.parsediks), xmlmdom.toString(
  33. self.parsedmdom))
  34. def testAddText(self):
  35. xmliks.addText(
  36. self.parsediks,
  37. "newtag",
  38. "Something else in newtag under a")
  39. xmliks.addText(
  40. xmliks.getNode(
  41. self.parsediks,
  42. "b"),
  43. "newtag",
  44. "Something else in newtag under b")
  45. xmlmdom.addText(
  46. self.parsedmdom,
  47. "newtag",
  48. "Something else in newtag under a")
  49. xmlmdom.addText(
  50. xmlmdom.getNode(
  51. self.parsedmdom,
  52. "b"),
  53. "newtag",
  54. "Something else in newtag under b")
  55. self.assertEqual(
  56. xmliks.toString(
  57. self.parsediks), xmlmdom.toString(
  58. self.parsedmdom))
  59. def testGetNode(self):
  60. self.assertEqual(
  61. xmliks.getNode(
  62. xmliks.getNode(
  63. self.parsediks,
  64. "b"),
  65. "c").toString(),
  66. '<c>something in c tag.</c>')
  67. self.assertEqual(
  68. xmlmdom.getNode(
  69. xmlmdom.getNode(
  70. self.parsedmdom,
  71. "b"),
  72. "c").toxml(),
  73. '<c>something in c tag.</c>')
  74. self.assertEqual(xmliks.getNode(xmliks.getNode(self.parsediks, "b"), "c").toString(),
  75. xmlmdom.getNode(xmlmdom.getNode(self.parsedmdom, "b"), "c").toxml())
  76. def testGetChildElts(self):
  77. self.assertEqual([xmliks.getNodeText(x) for x in xmliks.getChildElts(self.parsediks)],
  78. [xmlmdom.getNodeText(x) for x in xmlmdom.getChildElts(self.parsedmdom)])
  79. def testGetTagByName(self):
  80. self.assertEqual(xmliks.getNodeText(xmliks.getTagByName(self.parsediks, "b")[0]),
  81. xmlmdom.getNodeText(xmlmdom.getTagByName(self.parsedmdom, "b")[0]))
  82. self.assertEqual(xmliks.getNodeText(xmliks.getTagByName(self.parsediks, "d")[0]),
  83. xmlmdom.getNodeText(xmlmdom.getTagByName(self.parsedmdom, "d")[0]))
  84. def testGetChildText(self):
  85. self.assertEqual(xmliks.getChildText(self.parsediks, "b"),
  86. xmlmdom.getChildText(self.parsedmdom, "b"))
  87. self.assertEqual(xmliks.getChildText(self.parsediks, "d"),
  88. xmlmdom.getChildText(self.parsedmdom, "d"))
  89. self.assertEqual(xmliks.getChildText(xmliks.getNode(self.parsediks, "b"), "c"),
  90. xmlmdom.getChildText(xmlmdom.getNode(self.parsedmdom, "b"), "c"))
  91. def testGetAllNodes(self):
  92. self.assertEqual(
  93. type(
  94. xmlmdom.getAllNodes(
  95. self.parsedmdom,
  96. "b")[0]),
  97. xml.dom.minidom.Element)
  98. self.assertEqual(
  99. type(
  100. xmliks.getAllNodes(
  101. self.parsediks,
  102. "b")[0]),
  103. ciksemel.Node)
  104. self.assertEqual(
  105. type(
  106. xmlmdom.getAllNodes(
  107. self.parsedmdom,
  108. "d")[0]),
  109. xml.dom.minidom.Element)
  110. self.assertEqual(
  111. type(
  112. xmliks.getAllNodes(
  113. self.parsediks,
  114. "d")[0]),
  115. ciksemel.Node)
  116. def testGetNodeText(self):
  117. self.assertEqual(
  118. xmliks.getNodeText(
  119. self.parsediks,
  120. "b"),
  121. "something in b tag.")
  122. self.assertEqual(
  123. xmlmdom.getNodeText(
  124. self.parsedmdom,
  125. "b"),
  126. "something in b tag.")
  127. self.assertEqual(
  128. xmliks.getNodeText(
  129. self.parsediks, "b"), xmlmdom.getNodeText(
  130. self.parsedmdom, "b"))
  131. self.assertEqual(
  132. xmliks.getNodeText(
  133. self.parsediks,
  134. "d"),
  135. "something in d tag.")
  136. self.assertEqual(
  137. xmlmdom.getNodeText(
  138. self.parsedmdom,
  139. "d"),
  140. "something in d tag.")
  141. self.assertEqual(
  142. xmliks.getNodeText(
  143. self.parsediks, "d"), xmlmdom.getNodeText(
  144. self.parsedmdom, "d"))
  145. def testGetNodeAttribute(self):
  146. self.assertEqual(
  147. xmliks.getNodeAttribute(
  148. xmliks.getNode(
  149. self.parsediks,
  150. "b"),
  151. "atrib"),
  152. "something")
  153. self.assertEqual(
  154. xmlmdom.getNodeAttribute(
  155. xmlmdom.getNode(
  156. self.parsedmdom,
  157. "b"),
  158. "atrib"),
  159. "something")
  160. self.assertEqual(xmliks.getNodeAttribute(xmliks.getNode(self.parsediks, "b"), "atrib"),
  161. xmlmdom.getNodeAttribute(xmlmdom.getNode(self.parsedmdom, "b"), "atrib"))
  162. self.assertEqual(
  163. xmliks.getNodeAttribute(
  164. xmliks.getNode(
  165. self.parsediks,
  166. "b"),
  167. "actrib"),
  168. None)
  169. self.assertEqual(
  170. xmlmdom.getNodeAttribute(
  171. xmlmdom.getNode(
  172. self.parsedmdom,
  173. "b"),
  174. "actrib"),
  175. None)
  176. self.assertEqual(xmliks.getNodeAttribute(xmliks.getNode(self.parsediks, "b"), "actrib"),
  177. xmlmdom.getNodeAttribute(xmlmdom.getNode(self.parsedmdom, "b"), "actrib"))
  178. self.assertEqual(
  179. xmliks.getNodeAttribute(
  180. xmliks.getNode(
  181. self.parsediks,
  182. "d"),
  183. "atrib"),
  184. None)
  185. self.assertEqual(
  186. xmlmdom.getNodeAttribute(
  187. xmlmdom.getNode(
  188. self.parsedmdom,
  189. "d"),
  190. "atrib"),
  191. None)
  192. self.assertEqual(xmliks.getNodeAttribute(xmliks.getNode(self.parsediks, "d"), "atrib"),
  193. xmlmdom.getNodeAttribute(xmlmdom.getNode(self.parsedmdom, "d"), "atrib"))
  194. def testSetNodeAttribute(self):
  195. xmliks.setNodeAttribute(
  196. xmliks.getNode(
  197. self.parsediks,
  198. "b"),
  199. "atrib",
  200. "everything")
  201. xmlmdom.setNodeAttribute(
  202. xmlmdom.getNode(
  203. self.parsedmdom,
  204. "b"),
  205. "atrib",
  206. "everything")
  207. self.assertEqual(
  208. xmliks.getNodeAttribute(
  209. xmliks.getNode(
  210. self.parsediks,
  211. "b"),
  212. "atrib"),
  213. "everything")
  214. self.assertEqual(
  215. xmlmdom.getNodeAttribute(
  216. xmlmdom.getNode(
  217. self.parsedmdom,
  218. "b"),
  219. "atrib"),
  220. "everything")
  221. self.assertEqual(xmliks.getNodeAttribute(xmliks.getNode(self.parsediks, "b"), "atrib"),
  222. xmlmdom.getNodeAttribute(xmlmdom.getNode(self.parsedmdom, "b"), "atrib"))
  223. xmliks.setNodeAttribute(
  224. xmliks.getNode(
  225. self.parsediks,
  226. "d"),
  227. "atrib",
  228. "anything")
  229. xmlmdom.setNodeAttribute(
  230. xmlmdom.getNode(
  231. self.parsedmdom,
  232. "d"),
  233. "atrib",
  234. "anything")
  235. self.assertEqual(
  236. xmliks.getNodeAttribute(
  237. xmliks.getNode(
  238. self.parsediks,
  239. "d"),
  240. "atrib"),
  241. "anything")
  242. self.assertEqual(
  243. xmlmdom.getNodeAttribute(
  244. xmlmdom.getNode(
  245. self.parsedmdom,
  246. "d"),
  247. "atrib"),
  248. "anything")
  249. self.assertEqual(xmliks.getNodeAttribute(xmliks.getNode(self.parsediks, "d"), "atrib"),
  250. xmlmdom.getNodeAttribute(xmlmdom.getNode(self.parsedmdom, "d"), "atrib"))
  251. def testRemoveChild(self):
  252. xmliks.removeChild(xmliks.getNode(self.parsediks, "d"), self.parsediks)
  253. xmlmdom.removeChild(
  254. xmlmdom.getNode(
  255. self.parsedmdom,
  256. "d"),
  257. self.parsedmdom)
  258. self.assertEqual(
  259. xmliks.toString(
  260. self.parsediks), xmlmdom.toString(
  261. self.parsedmdom))
  262. def testRemoveChildText(self):
  263. xmliks.removeChildText(xmliks.getNode(self.parsediks, "d"))
  264. xmlmdom.removeChildText(xmlmdom.getNode(self.parsedmdom, "d"))
  265. self.assertEqual(
  266. xmliks.toString(
  267. self.parsediks),
  268. '<a><b atrib="something">something in b tag.<c>something in c tag.</c></b><d/></a>')
  269. self.assertEqual(
  270. xmlmdom.toString(
  271. self.parsedmdom),
  272. '<a><b atrib="something">something in b tag.<c>something in c tag.</c></b><d></d></a>')
  273. def testNewNode(self):
  274. newiks = xmliks.newNode(self.parsediks, "a")
  275. newdom = xmlmdom.newNode(self.parsedmdom, "a")
  276. xmliks.addText(newiks, "b", "something under b")
  277. xmlmdom.addText(newdom, "b", "something under b")
  278. self.assertEqual(xmliks.toString(newiks), xmlmdom.toString(newdom))
  279. def testNewDocument(self):
  280. self.assertEqual(xmlmdom.toString(xmlmdom.newDocument("newdocument")),
  281. xmliks.toString(xmliks.newDocument("newdocument")))
  282. def testToString(self):
  283. self.assertEqual(
  284. xmliks.toString(
  285. self.parsediks), xmlmdom.toString(
  286. self.parsedmdom))
  287. def testToPretty(self):
  288. self.assertEqual(xmliks.toPretty(self.parsediks),
  289. """<a>
  290. <b atrib="something">something in b tag.<c>something in c tag.</c>
  291. </b>
  292. <d>something in d tag.</d>
  293. </a>""")
  294. self.assertEqual(xmlmdom.toPretty(self.parsedmdom),
  295. """<a>
  296. <b atrib="something">
  297. something in b tag.
  298. <c>something in c tag.</c>
  299. </b>
  300. <d>something in d tag.</d>
  301. </a>
  302. """)