xmltree: use code-block for arch-dependent tests

This commit is contained in:
narimiran 2019-05-27 21:32:12 +02:00
commit 2b0ea6b2ae

View file

@ -136,19 +136,21 @@ proc newXmlTree*(tag: string, children: openArray[XmlNode],
## See also: ## See also:
## * `newElement proc <#newElement,string>`_ ## * `newElement proc <#newElement,string>`_
## * [<> macro](#<>.m,untyped) ## * [<> macro](#<>.m,untyped)
runnableExamples: ##
from strutils import unindent ## .. code-block::
var g = newElement("myTag") ## var g = newElement("myTag")
g.add newText("some text") ## g.add newText("some text")
g.add newComment("this is comment") ## g.add newComment("this is comment")
var h = newElement("secondTag") ## var h = newElement("secondTag")
h.add newEntity("some entity") ## h.add newEntity("some entity")
let att = {"key1": "first value", "key2": "second value"}.toXmlAttributes ## let att = {"key1": "first value", "key2": "second value"}.toXmlAttributes
let k = newXmlTree("treeTag", [g, h], att) ## let k = newXmlTree("treeTag", [g, h], att)
assert ($k).unindent == """<treeTag key2="second value" key1="first value"> ##
<myTag>some text<!-- this is comment --></myTag> ## echo k
<secondTag>&some entity;</secondTag> ## ## <treeTag key2="second value" key1="first value">
</treeTag>""".unindent ## ## <myTag>some text<!-- this is comment --></myTag>
## ## <secondTag>&some entity;</secondTag>
## ## </treeTag>
result = newXmlNode(xnElement) result = newXmlNode(xnElement)
result.fTag = tag result.fTag = tag
@ -361,26 +363,27 @@ proc `[]`* (n: var XmlNode, i: int): var XmlNode {.inline.} =
proc clear*(n: var XmlNode) = proc clear*(n: var XmlNode) =
## Recursively clear all children of an XmlNode. ## Recursively clear all children of an XmlNode.
runnableExamples: ##
from strutils import unindent ## .. code-block::
## var g = newElement("myTag")
var g = newElement("myTag") ## g.add newText("some text")
g.add newText("some text") ## g.add newComment("this is comment")
g.add newComment("this is comment") ##
## var h = newElement("secondTag")
var h = newElement("secondTag") ## h.add newEntity("some entity")
h.add newEntity("some entity") ##
## let att = {"key1": "first value", "key2": "second value"}.toXmlAttributes
let att = {"key1": "first value", "key2": "second value"}.toXmlAttributes ## var k = newXmlTree("treeTag", [g, h], att)
var k = newXmlTree("treeTag", [g, h], att) ##
## echo k
assert ($k).unindent == ## ## <treeTag key2="second value" key1="first value">
"""<treeTag key2="second value" key1="first value"> ## ## <myTag>some text<!-- this is comment --></myTag>
<myTag>some text<!-- this is comment --></myTag> ## ## <secondTag>&some entity;</secondTag>
<secondTag>&some entity;</secondTag> ## ## </treeTag>
</treeTag>""".unindent ##
clear(k) ## clear(k)
assert $k == """<treeTag key2="second value" key1="first value" />""" ## echo k
## ## <treeTag key2="second value" key1="first value" />
for i in 0 ..< n.len: for i in 0 ..< n.len:
clear(n[i]) clear(n[i])
@ -420,11 +423,14 @@ iterator mitems*(n: var XmlNode): var XmlNode {.inline.} =
proc toXmlAttributes*(keyValuePairs: varargs[tuple[key, val: string]]): XmlAttributes = proc toXmlAttributes*(keyValuePairs: varargs[tuple[key, val: string]]): XmlAttributes =
## Converts `{key: value}` pairs into `XmlAttributes`. ## Converts `{key: value}` pairs into `XmlAttributes`.
runnableExamples: ##
let att = {"key1": "first value", "key2": "second value"}.toXmlAttributes ## .. code-block::
var j = newElement("myTag") ## let att = {"key1": "first value", "key2": "second value"}.toXmlAttributes
j.attrs = att ## var j = newElement("myTag")
assert $j == """<myTag key2="second value" key1="first value" />""" ## j.attrs = att
##
## echo j
## ## <myTag key2="second value" key1="first value" />
newStringTable(keyValuePairs) newStringTable(keyValuePairs)