4 new revisions:
Revision: 5126df2a75f3
Author: Pekka Klärck
Date: Tue Jun 21 23:17:39 2011
Log: small emb arg re cleanup
http://code.google.com/p/robotframework/source/detail?r=5126df2a75f3
Revision: 457c7b946aad
Author: Pekka Klärck
Date: Wed Jun 22 01:20:03 2011
Log: Automated merge with https://robotframework.googlecode.com/hg/
http://code.google.com/p/robotframework/source/detail?r=457c7b946aad
Revision: 2a33c50ab22e
Author: Pekka Klärck
Date: Wed Jun 22 01:45:01 2011
Log: print styles: correct way to hide and redisplay print_selector
http://code.google.com/p/robotframework/source/detail?r=2a33c50ab22e
Revision: 8b53a168912e
Author: Pekka Klärck
Date: Wed Jun 22 02:46:04 2011
Log: dump metadata to json as list and not as dict. this breaks tests.
will...
http://code.google.com/p/robotframework/source/detail?r=8b53a168912e
==============================================================================
Revision: 5126df2a75f3
Author: Pekka Klärck
Date: Tue Jun 21 23:17:39 2011
Log: small emb arg re cleanup
http://code.google.com/p/robotframework/source/detail?r=5126df2a75f3
Modified:
/src/robot/running/userkeyword.py
=======================================
--- /src/robot/running/userkeyword.py Tue Jun 21 12:59:55 2011
+++ /src/robot/running/userkeyword.py Tue Jun 21 23:17:39 2011
@@ -197,8 +197,10 @@
class EmbeddedArgsTemplate(UserKeywordHandler):
- _regexp_group = re.compile(r'(?<!\\)\(')
- _regexp_extension = re.compile(r'(?<!\\)\(\?')
+ _regexp_extension = re.compile(r'(?<!\\)\(\?.+\)')
+ _regexp_group_start = re.compile(r'(?<!\\)\((.*?)\)')
+ _regexp_group_escape = '(?:\\1)'
+ _default_pattern = '.*?'
def __init__(self, keyword, libname):
if keyword.args.value:
@@ -211,17 +213,17 @@
def _read_embedded_args_and_regexp(self, string):
args = []
- full_regexp = ['^']
+ full_pattern = ['^']
while True:
before, variable, rest = self._split_from_variable(string)
if before is None:
break
- variable, regexp = self._get_regexp(variable)
+ variable, pattern = self._get_regexp_pattern_from(variable)
args.append('${%s}' % variable)
- full_regexp.extend([re.escape(before), '(%s)' % regexp])
+ full_pattern.extend([re.escape(before), '(%s)' % pattern])
string = rest
- full_regexp.extend([re.escape(rest), '$'])
- return args, self._compile_regexp(''.join(full_regexp))
+ full_pattern.extend([re.escape(rest), '$'])
+ return args, self._compile_regexp(full_pattern)
def _split_from_variable(self, string):
var = VariableSplitter(string, identifiers=['$'],
@@ -230,18 +232,24 @@
return None, None, string
return string[:var.start], var.base, string[var.end:]
- def _get_regexp(self, variable):
+ def _get_regexp_pattern_from(self, variable):
if ':' not in variable:
- return variable, '.*?'
- variable, regexp = variable.split(':', 1)
- if self._regexp_extension.search(regexp):
+ return variable, self._default_pattern
+ variable, pattern = variable.split(':', 1)
+ self._regexp_extensions_are_not_allowed_in(pattern)
+ return variable, self._make_groups_non_capturing_in(pattern)
+
+ def _regexp_extensions_are_not_allowed_in(self, pattern):
+ if self._regexp_extension.search(pattern):
raise DataError('Regexp extensions are not allowed in
embedded '
'arguments.')
- return variable, self._regexp_group.sub('(?:', regexp)
+
+ def _make_groups_non_capturing_in(self, pattern):
+ return self._regexp_group_start.sub(self._regexp_group_escape,
pattern)
def _compile_regexp(self, pattern):
try:
- return re.compile(pattern, re.IGNORECASE)
+ return re.compile(''.join(pattern), re.IGNORECASE)
except:
raise DataError("Compiling embedded arguments regexp
failed: %s"
% utils.get_error_message())
==============================================================================
Revision: 457c7b946aad
Author: Pekka Klärck
Date: Wed Jun 22 01:20:03 2011
Log: Automated merge with https://robotframework.googlecode.com/hg/
http://code.google.com/p/robotframework/source/detail?r=457c7b946aad
==============================================================================
Revision: 2a33c50ab22e
Author: Pekka Klärck
Date: Wed Jun 22 01:45:01 2011
Log: print styles: correct way to hide and redisplay print_selector
http://code.google.com/p/robotframework/source/detail?r=2a33c50ab22e
Modified:
/src/robot/webcontent/print.css
/src/robot/webcontent/report.css
=======================================
--- /src/robot/webcontent/print.css Mon Jun 20 12:12:12 2011
+++ /src/robot/webcontent/print.css Wed Jun 22 01:45:01 2011
@@ -13,5 +13,5 @@
display: none;
}
#print_selector {
- visibility: visible;
-}
+ display: table-cell;
+}
=======================================
--- /src/robot/webcontent/report.css Mon Jun 20 13:40:04 2011
+++ /src/robot/webcontent/report.css Wed Jun 22 01:45:01 2011
@@ -50,7 +50,7 @@
white-space: normal;
}
#print_selector {
- visibility: hidden;
+ display: none;
}
/* Tabs - adapted from http://www.htmldog.com/articles/tabs */
#detail_tabs {
==============================================================================
Revision: 8b53a168912e
Author: Pekka Klärck
Date: Wed Jun 22 02:46:04 2011
Log: dump metadata to json as list and not as dict. this breaks tests.
will be fixed soon.
http://code.google.com/p/robotframework/source/detail?r=8b53a168912e
Modified:
/src/robot/result/elementhandlers.py
/src/robot/webcontent/testdata.js
/src/robot/webcontent/testdata/data.js
=======================================
--- /src/robot/result/elementhandlers.py Tue Jun 21 02:46:53 2011
+++ /src/robot/result/elementhandlers.py Wed Jun 22 02:46:04 2011
@@ -215,10 +215,10 @@
def __init__(self, context, attrs):
_Handler.__init__(self, context)
- self._metadata = {}
+ self._metadata = []
def add_child_data(self, data):
- self._metadata[data[0]] = data[1]
+ self._metadata.extend(data)
def end_element(self, text):
return self._metadata
=======================================
--- /src/robot/webcontent/testdata.js Tue Jun 21 05:49:44 2011
+++ /src/robot/webcontent/testdata.js Wed Jun 22 02:46:04 2011
@@ -142,8 +142,8 @@
function parseMetadata(data) {
var metadata = {};
- for (var key in data) {
- metadata[get(key)] = get(data[key]);
+ for (var i=0; i<data.length; i+=2) {
+ metadata[get(data[i])] = get(data[i+1]);
}
return metadata;
}
=======================================
--- /src/robot/webcontent/testdata/data.js Tue Jun 21 12:33:07 2011
+++ /src/robot/webcontent/testdata/data.js Wed Jun 22 02:46:04 2011
@@ -1,3 +1,11 @@
-var u = "";
-window.output =
{"integers":[0,-1,1,10,11,9,2,15,14,16,12,4,20,19,21,22,23,3,24,26,25,27,31,28,33,32,35,34,36,38,39,40,42,41,43,44,45,5,46,37,48,47,17,-34,83,6],"errors":[[-14,88,89]],"stats":[[{"fail":3,"label":"Critical
Tests","pass":2},{"fail":4,"label":"All
Tests","pass":2}],[{"info":"critical","links":"Title of
i1:http://1/","doc":"","label":"i1","combined":"","pass":2,"fail":4},{"info":"critical","links":"Title
of
i2:http://2/","doc":"","label":"i2","combined":"","pass":2,"fail":4},{"info":"non-critical","links":"","doc":"","label":"owner-kekkonen","combined":"","pass":0,"fail":1},{"info":"combined","links":"Title
of iX:http://X/","doc":"<b>Combined</b> tag
doc","label":"IX","combined":"i?","pass":2,"fail":4},{"info":"combined","links":"","doc":"","label":"zap","combined":"foo
& i*","pass":0,"fail":0},{"info":"","links":"","doc":"","label":"<
<","combined":"","pass":0,"fail":4},{"info":"","links":"","doc":"","label":"collections","combined":"","pass":2,"fail":0},{"info":"","links":"","doc":"","label":"default","combined":"","pass":0,"fail":3},{"info":"","links":"kuukkeli:http://google.com","doc":"","label":"force","combined":"","pass":0,"fail":4},{"info":"","links":"","doc":"","label":"t1","combined":"","pass":0,"fail":1},{"info":"","links":"","doc":"this
is <b>my bold</b>
test","label":"test","combined":"","pass":0,"fail":4}],[{"fail":4,"label":"Dir.Suite","name":"Dir.Suite","pass":2},{"fail":0,"label":"Dir.Suite.Test.Suite.1","name":"Test.Suite.1","pass":1},{"fail":0,"label":"Dir.Suite.Test.Suite.2","name":"Test.Suite.2","pass":1},{"fail":4,"label":"Dir.Suite.Tests","name":"Tests","pass":0}]],"generatedMillis":-760,"generator":"Robot
trunk 20110613 (Python 2.6.5 on linux2)","generatedTimestamp":"20110621
22:20:44 GMT
+03:00","baseMillis":1308684044760,"suite":[27,86,87,1,{2:3,4:5,6:7},[12,13,0,8,9,[-1,10,9],[11,-2,-3]],[27,28,29,0,{},[24,25,0,26,0,[17,18,0,14,15,[-4,10,16],[11,-4,-1]],[17,13,0,8,19,[-5,10,20],[11,-4,-3]],[21,22,23],[11,-6,-7]],[11,-3,-5],[-3,-3,-3,-3]],[27,37,38,0,{},[24,36,0,26,0,[17,33,0,30,31,[-8,10,32],[11,-9,-3]],[17,13,0,8,34,[-10,10,35],[11,-8,-3]],[21,22,23],[11,-9,-7]],[11,-11,-12],[-3,-3,-3,-3]],[27,84,85,39,{40:7},[12,13,0,8,41,[-13,10,41],[11,-14,-3]],[24,50,0,26,0,[12,13,0,8,42,[-15,10,42],[11,-15,-1]],[17,13,0,8,43,[-16,10,43],[11,-15,-3]],[46,13,0,8,44,[-17,10,44],[11,-16,-3]],[47,48,49,22,23,24],[11,-13,-18]],[24,57,0,26,0,[12,13,0,8,42,[-19,10,42],[11,-19,-3]],[17,13,0,8,51,[-20,10,52],[11,-21,-3]],[17,13,0,8,53,[-22,10,54],[11,-22,-3]],[17,56,0,55,53,[-23,45,54],[45,-24,-18]],[46,13,0,8,44,[-25,10,44],[11,-26,-3]],[47,48,49,22,23,24],[45,-17,-4,53]],[24,59,0,26,0,[12,13,0,8,42,[-27,10,42],[11,-28,-3]],[17,13,0,8,58,[-27,10,58],[11,-27,-3]],[46,13,0,8,44,[-29,10,44],[11,-29,-3]],[47,48,49,22,23,24],[11,-28,-18]],[24,80,0,81,60,[12,13,0,8,61,[-30,10,61],[11,-30,-1]],[17,13,0,8,62,[-31,10,62],[11,-31,-1]],[17,64,0,0,0,[17,13,0,8,63,[-32,10,63],[11,-32,-3]],[11,-32,-3]],[75,76,0,0,0,[67,68,0,0,0,[17,13,0,8,65,[-33,10,66],[11,-33,-1]],[11,-34,-3]],[67,70,0,0,0,[17,13,0,8,65,[-35,10,69],[11,-35,-1]],[11,-33,-3]],[67,72,0,0,0,[17,13,0,8,65,[-36,10,71],[11,-36,-1]],[11,-36,-1]],[67,74,0,0,0,[17,13,0,8,65,[-37,10,73],[11,-37,-1]],[11,-37,-3]],[11,-34,-38]],[46,13,0,8,77,[-39,10,77],[11,-39,-1]],[47,49,22,23,78,79,24],[11,-40,-4]],[46,56,0,55,0,[-41,45,82],[45,-42,-3]],[45,-43,-23,83],[-12,-1,-18,-1]],[45,-44,-45],[-46,-7,-38,-7]],"strings":["*","eNqdzkEKwjAQheG9pxhygAS3Jca14ErwAEk7nQYTJ0wH2t7eunEhuHH9+D+eT+F+u3bepQA+wiQ4nsyk2jrnhBPrKLHiwvKwLGTCz8m7GHwScOHgc7jUSLireVdzJZil/7A9D2iJmQranqtrX5orTHzGVW17kgHNWvDfeNbtHSeWAaWDY1th5pIHIImb2c++AG8mWaA=","*Formatting","*<b>Bold</b>
and
<i>italics</i>","*Image","eNqdy8ENgzAMBdBVrAwQiyui7SyQGDdq0h85loDtK1bou7+lNKVh6RHe7n1mTsgSFdAqMaFxZ8MG321tcsA+XKF4yemxfzWQF6/ybx5+3XmDZbGZpn7SQC2Z1NYrED9/2Og45A==","*URL","*<a
href=\"http://robotframework.org\">http://robotframework.org</a>","*Logs
the given message with the given level.","*higher level suite
setup","*I","*P","*setup","*BuiltIn.Log","*Returns a list containing given
items.","*foo, bar, quux","*${list} = [u'foo', u'bar',
u'quux']","*kw","*${list} = BuiltIn.Create List","*${list}","*[u'foo',
u'bar', u'quux']","*collections","*i1","*i2","*test","*list
test","*Y","*suite","*/home/mkorpela/workspace/robot/src/robot/webcontent/testdata/dir.suite/test.suite.1.txt","*Test.Suite.1","*Creates
and returns a dictionary from the given `key_value_pairs`.","*key,
value","*${dict} = {u'key': u'value'}","*${dict} = Collections.Create
Dictionary","*${dict}","*{u'key': u'value'}","*Dictionary
test","*/home/mkorpela/workspace/robot/src/robot/webcontent/testdata/dir.suite/test.suite.2.txt","*Test.Suite.2","*Some
suite docs with links: <a
href=\"http://robotframework.org\">http://robotframework.org</a>","*home
*page*","*Suite setup","*Test Setup","*do nothing","*Test
Teardown","*F","*teardown","*<
<","*default","*force","*Simple","*<blink><b><font face=\"comic sans
ms\" size=\"42\" color=\"red\">CAN HAZ HMTL?!?!??!!?</font></b></blink>,
HTML","*<blink><b><font face=\"comic sans ms\" size=\"42\"
color=\"red\">CAN HAZ HMTL?!?!??!!?</font></b></blink>","*escape < <
<b>no bold</b>","*escape < &lt; <b>no bold</b>","*Fails
the test immediately with the given (optional)
message.","*BuiltIn.Fail","*Log HTML","*hyv\u00e4\u00e4
joulua","*Unicode","*Test doc","*in own setup","*in test","*in User
Kw","*User Kw","*Got ${i}","*Got 1","*foritem","*${i} = 1","*Got 2","*${i}
= 2","*Got 3","*${i} = 3","*Got 4","*${i} = 4","*forloop","*${i} IN [
@{list} ]","*in own
teardown","*owner-kekkonen","*t1","*Complex","*N","*AssertionError","*Suite
teardown
failed:\nAssertionError","*/home/mkorpela/workspace/robot/src/robot/webcontent/testdata/dir.suite/tests.txt","*Tests","*/home/mkorpela/workspace/robot/src/robot/webcontent/testdata/dir.suite","*Dir.Suite","*E","*Invalid
syntax in
file '/home/mkorpela/workspace/robot/src/robot/webcontent/testdata/dir.suite/tests.txt'
in table 'Settings': Test library 'p\u00f6lk\u00fc/myLib.py' does not
exist."]};
+window.output = {};
+window.output["integers"] =
[0,-1,1,15,14,17,16,13,5,19,26,25,27,23,20,9,36,35,39,38,41,40,42,37,6,46,48,47,50,49,54,51,3,55,44,12,59,61,60,63,62,57,7,67,66,69,68,72,71,70,2,75,74,77,76,80,79,83,82,81,73,11,85,84,65,21,88,87,30,4,-44,134,34];
+window.output["errors"] = [[-73,88,89]];
+window.output["stats"] = [[{"fail":3,"label":"Critical
Tests","pass":2},{"fail":4,"label":"All
Tests","pass":2}],[{"info":"critical","links":"Title of
i1:http://1/","doc":"","label":"i1","combined":"","pass":2,"fail":4},{"info":"critical","links":"Title
of
i2:http://2/","doc":"","label":"i2","combined":"","pass":2,"fail":4},{"info":"non-critical","links":"","doc":"","label":"owner-kekkonen","combined":"","pass":0,"fail":1},{"info":"combined","links":"Title
of iX:http://X/","doc":"<b>Combined</b> tag
doc","label":"IX","combined":"i?","pass":2,"fail":4},{"info":"combined","links":"","doc":"","label":"zap","combined":"foo
& i*","pass":0,"fail":0},{"info":"","links":"","doc":"","label":"<
<","combined":"","pass":0,"fail":4},{"info":"","links":"","doc":"","label":"collections","combined":"","pass":2,"fail":0},{"info":"","links":"","doc":"","label":"default","combined":"","pass":0,"fail":3},{"info":"","links":"kuukkeli:http://google.com","doc":"","label":"force","combined":"","pass":0,"fail":4},{"info":"","links":"","doc":"","label":"t1","combined":"","pass":0,"fail":1},{"info":"","links":"","doc":"this
is <b>my bold</b>
test","label":"test","combined":"","pass":0,"fail":4}],[{"fail":4,"label":"Dir.Suite","name":"Dir.Suite","pass":2},{"fail":0,"label":"Dir.Suite.Test.Suite.1","name":"Test.Suite.1","pass":1},{"fail":0,"label":"Dir.Suite.Test.Suite.2","name":"Test.Suite.2","pass":1},{"fail":4,"label":"Dir.Suite.Tests","name":"Tests","pass":0}]];
+window.output["generatedMillis"] = -68;
+window.output["generator"] = "Robot trunk 20110613 (Python 2.6.6 on
linux2)";
+window.output["generatedTimestamp"] = "20110622 12:41:02 GMT +03:00";
+window.output["baseMillis"] = 1308735662068;
+window.output["suite"] =
[27,86,87,1,[2,3,4,5,6,7],[12,13,0,8,9,[-1,10,9],[11,-2,-3]],[27,28,29,0,[],[24,25,0,26,0,[17,18,0,14,15,[-4,10,16],[11,-5,-3]],[17,13,0,8,19,[-6,10,20],[11,-7,-3]],[21,22,23],[11,-8,-9]],[11,-1,-10],[-3,-3,-3,-3]],[27,37,38,0,[],[24,36,0,26,0,[17,33,0,30,31,[-11,10,32],[11,-12,-1]],[17,13,0,8,34,[-13,10,35],[11,-11,-3]],[21,22,23],[11,-14,-9]],[11,-15,-16],[-3,-3,-3,-3]],[27,84,85,39,[40,7],[12,13,0,8,41,[-17,10,41],[11,-18,-3]],[24,50,0,26,0,[12,13,0,8,42,[-19,10,42],[11,-20,-3]],[17,13,0,8,43,[-21,10,43],[11,-22,-3]],[46,13,0,8,44,[-23,10,44],[11,-23,-3]],[47,48,49,22,23,24],[11,-24,-25]],[24,57,0,26,0,[12,13,0,8,42,[-26,10,42],[11,-26,-3]],[17,13,0,8,51,[-27,10,52],[11,-28,-3]],[17,13,0,8,53,[-29,10,54],[11,-30,-3]],[17,56,0,55,53,[-31,45,54],[45,-32,-33]],[46,13,0,8,44,[-34,10,44],[11,-34,-3]],[47,48,49,22,23,24],[45,-35,-36,53]],[24,59,0,26,0,[12,13,0,8,42,[-37,10,42],[11,-37,-3]],[17,13,0,8,58,[-38,10,58],[11,-39,-3]],[46,13,0,8,44,[-40,10,44],[11,-41,-3]],[47,48,49,22,23,24],[11,-42,-43]],[24,80,0,81,60,[12,13,0,8,61,[-44,10,61],[11,-45,-3]],[17,13,0,8,62,[-46,10,62],[11,-47,-3]],[17,64,0,0,0,[17,13,0,8,63,[-48,10,63],[11,-49,-3]],[11,-50,-51]],[75,76,0,0,0,[67,68,0,0,0,[17,13,0,8,65,[-52,10,66],[11,-53,-3]],[11,-53,-51]],[67,70,0,0,0,[17,13,0,8,65,[-54,10,69],[11,-54,-3]],[11,-55,-51]],[67,72,0,0,0,[17,13,0,8,65,[-56,10,71],[11,-57,-3]],[11,-57,-51]],[67,74,0,0,0,[17,13,0,8,65,[-58,10,73],[11,-59,-3]],[11,-60,-51]],[11,-61,-62]],[46,13,0,8,77,[-63,10,77],[11,-64,-3]],[47,49,22,23,78,79,24],[11,-65,-66]],[46,56,0,55,0,[-67,45,82],[45,-68,-51]],[45,-69,-37,83],[-70,-1,-33,-1]],[45,-71,-72],[-25,-51,-9,-51]];
+window.output["strings"] =
["*","eNqdzkEKwjAQheG9pxhygAS3Jca14ErwAEk7nQYTJ0wH2t7eunEhuHH9+D+eT+F+u3bepQA+wiQ4nsyk2jrnhBPrKLHiwvKwLGTCz8m7GHwScOHgc7jUSLireVdzJZil/7A9D2iJmQranqtrX5orTHzGVW17kgHNWvDfeNbtHSeWAaWDY1th5pIHIImb2c++AG8mWaA=","*Formatting","*<b>Bold</b>
and
<i>italics</i>","*Image","eNqdy8ENgzAMBdBVrAwQiyui7SyQGDdq0h85loDtK1bou7+lNKVh6RHe7n1mTsgSFdAqMaFxZ8MG321tcsA+XKF4yemxfzWQF6/ybx5+3XmDZbGZpn7SQC2Z1NYrED9/2Og45A==","*URL","*<a
href=\"http://robotframework.org\">http://robotframework.org</a>","*Logs
the given message with the given level.","*higher level suite
setup","*I","*P","*setup","*BuiltIn.Log","*Returns a list containing given
items.","*foo, bar, quux","*${list} = [u'foo', u'bar',
u'quux']","*kw","*${list} = BuiltIn.Create List","*${list}","*[u'foo',
u'bar', u'quux']","*collections","*i1","*i2","*test","*list
test","*Y","*suite","*/home/peke/Devel/robotframework/src/robot/webcontent/testdata/dir.suite/test.suite.1.txt","*Test.Suite.1","*Creates
and returns a dictionary from the given `key_value_pairs`.","*key,
value","*${dict} = {u'key': u'value'}","*${dict} = Collections.Create
Dictionary","*${dict}","*{u'key': u'value'}","*Dictionary
test","*/home/peke/Devel/robotframework/src/robot/webcontent/testdata/dir.suite/test.suite.2.txt","*Test.Suite.2","*Some
suite docs with links: <a
href=\"http://robotframework.org\">http://robotframework.org</a>","*home
*page*","*Suite setup","*Test Setup","*do nothing","*Test
Teardown","*F","*teardown","*<
<","*default","*force","*Simple","*<blink><b><font face=\"comic sans
ms\" size=\"42\" color=\"red\">CAN HAZ HMTL?!?!??!!?</font></b></blink>,
HTML","*<blink><b><font face=\"comic sans ms\" size=\"42\"
color=\"red\">CAN HAZ HMTL?!?!??!!?</font></b></blink>","*escape < <
<b>no bold</b>","*escape < &lt; <b>no bold</b>","*Fails
the test immediately with the given (optional)
message.","*BuiltIn.Fail","*Log HTML","*hyv\u00e4\u00e4
joulua","*Unicode","*Test doc","*in own setup","*in test","*in User
Kw","*User Kw","*Got ${i}","*Got 1","*foritem","*${i} = 1","*Got 2","*${i}
= 2","*Got 3","*${i} = 3","*Got 4","*${i} = 4","*forloop","*${i} IN [
@{list} ]","*in own
teardown","*owner-kekkonen","*t1","*Complex","*N","*AssertionError","*Suite
teardown
failed:\nAssertionError","*/home/peke/Devel/robotframework/src/robot/webcontent/testdata/dir.suite/tests.txt","*Tests","*/home/peke/Devel/robotframework/src/robot/webcontent/testdata/dir.suite","*Dir.Suite","*E","*Invalid
syntax in
file '/home/peke/Devel/robotframework/src/robot/webcontent/testdata/dir.suite/tests.txt'
in table 'Settings': Test library 'p\u00f6lk\u00fc/myLib.py' does not
exist."];
window.settings =
{"reportURL":"report.html","background":{"fail":"DeepPink"},"logURL":"log.html"};