def test_executionDetails_emptyExecution(self) :
		s = self.emptyExecution()

		w = ExecutionDetails()
		s = Server("fixture")
		content = w.generate(s,"myproject","myclient","20130301-232425")
		self.assertMultiLineEqual( content,
			"""\
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="utf-8">
<title>TestFarm: Execution details for myproject :: myclient :: 20130301-232425</title>
<style>
"""+deansi.styleSheet() + """
</style>
<link href="style.css" rel="stylesheet" type="text/css">
<script type="text/javascript" language="JavaScript" src="testfarm.js"></script>
</head>
<body>

<h1>Details for execution '20130301-232425'</h1>
<div class='execution'>
<p>Started at 2013-03-01 23:24:25</p>
<p>Execution '20130301-232425' finalized with a <b>SUCCESS</b></p>
</div>

<div class="about">
<p>TestFarm is free software.
Learn <a href="http://testfarm.sf.net/">about TestFarm</a>.</p>
</div>
</body>
</html>
""")
Пример #2
0
	def test_executionDetails_emptyExecution(self) :
		s = self.emptyExecution()

		w = ExecutionDetails()
		s = Logger("fixture")
		content = w.generate(s,"myproject","myclient","20130301-232425")
		self.assertMultiLineEqual( content,
			"""\
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="utf-8">
<title>TestFarm: Execution details for myproject :: myclient :: 20130301-232425</title>
<style>
"""+deansi.styleSheet() + """
</style>
<link href="style.css" rel="stylesheet" type="text/css">
<script type="text/javascript" language="JavaScript" src="testfarm.js"></script>
</head>
<body>

<h1>Details for execution '20130301-232425'</h1>
<div class='execution'>
<p>Started at 2013-03-01 23:24:25</p>
<p>Execution '20130301-232425' finalized with a <b>SUCCESS</b></p>
</div>

<div class="about">
<p>TestFarm is free software.
Learn <a href="http://testfarm.sf.net/">about TestFarm</a>.</p>
</div>
</body>
</html>
""")
	def test_task_empty(self) :
		self.setUpEmptyClient()
		task = self.taskFixture("First task", running=False)

		w = ExecutionDetails()
		result = w.task(task)
		self.assertMultiLineEqual(result,
			'<div class="task" id="task_1">\n'
			'TASK: "First task"\n'
			'END OF TASK: "First task"\n'
			'</div>\n\n'
			)
Пример #4
0
	def test_task_empty(self) :
		self.setUpEmptyClient()
		task = self.taskFixture("First task", running=False)

		w = ExecutionDetails()
		result = w.task(task)
		self.assertMultiLineEqual(result,
			'<div class="task" id="task_1">\n'
			'TASK: "First task"\n'
			'END OF TASK: "First task"\n'
			'</div>\n\n'
			)
Пример #5
0
	def test_contantBlock_notSoLongInfo(self) :
		w = ExecutionDetails()
		content = w.contentBlock(
			kind = "kind",
			content="\n".join(str(i+1) for i in xrange(11)),
			id = "2_32",
			)
		self.assertMultiLineEqual(content,
			'<div id="kind2_32" class="kind">\n'
			'<div class="kind_header">KIND:</div>\n'
			'<div class="plain_text">1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11</div>\n'
			'</div>\n'
			)
	def test_contentBlock_withInfo(self) :
		w = ExecutionDetails()
		content = w.contentBlock(
				kind = "kind",
				content="content",
				id = "2_32",
				)
		self.assertMultiLineEqual(content,
			'<div id="kind2_32" class="kind">\n'
			'<div class="kind_header">KIND:</div>\n'
			'<div class="plain_text">content</div>\n'
			'</div>\n'
			)
Пример #7
0
	def test_contentBlock_withInfo(self) :
		w = ExecutionDetails()
		content = w.contentBlock(
				kind = "kind",
				content="content",
				id = "2_32",
				)
		self.assertMultiLineEqual(content,
			'<div id="kind2_32" class="kind">\n'
			'<div class="kind_header">KIND:</div>\n'
			'<div class="plain_text">content</div>\n'
			'</div>\n'
			)
	def test_contantBlock_notSoLongInfo(self) :
		w = ExecutionDetails()
		content = w.contentBlock(
			kind = "kind",
			content="\n".join(str(i+1) for i in xrange(11)),
			id = "2_32",
			)
		self.assertMultiLineEqual(content,
			'<div id="kind2_32" class="kind">\n'
			'<div class="kind_header">KIND:</div>\n'
			'<div class="plain_text">1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11</div>\n'
			'</div>\n'
			)
Пример #9
0
	def test_executionDetails_contantBlock_ansiOutput(self) :
		w = ExecutionDetails()
		content = w.contentBlock(
			kind = "kind",
			content="\033[34mBlue\033[0m",
			id = "2_32",
			)

		self.assertMultiLineEqual( content,
			'<div id="kind2_32" class="kind">\n'
			'<div class="kind_header">KIND:</div>\n'
			'<div class="plain_text"><span class=\'ansi_blue\'>Blue</span></div>\n'
			'</div>\n'
			)
Пример #10
0
	def test_contantBlock_longInfo(self) :
		w = ExecutionDetails()
		content = w.contentBlock(
			kind = "kind",
			content="\n".join(str(i+1) for i in xrange(12)),
			id = "2_32",
			)
		self.assertMultiLineEqual( content,
			'<div id="kind2_32" class="kind">\n'
			'<div class="kind_header">KIND:</div>\n'
			'<div class="plain_text">1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12</div>\n'
			'</div>\n'
			"<script type='text/javascript'>togglesize('kind2_32');</script>\n"
			)
	def test_contantBlock_longInfo(self) :
		w = ExecutionDetails()
		content = w.contentBlock(
			kind = "kind",
			content="\n".join(str(i+1) for i in xrange(12)),
			id = "2_32",
			)
		self.assertMultiLineEqual( content,
			'<div id="kind2_32" class="kind">\n'
			'<div class="kind_header">KIND:</div>\n'
			'<div class="plain_text">1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12</div>\n'
			'</div>\n'
			"<script type='text/javascript'>togglesize('kind2_32');</script>\n"
			)
Пример #12
0
	def test_command_running(self) :
		command = self.commandFixture(
			"command line",
			running=True,
			)

		w = ExecutionDetails()
		result = w.command(command)
		self.assertMultiLineEqual(result,
			"<div class='command' id='command_1_1'>\n"
			"	<span class='command_line'>command line</span>\n"
			'	<span class="command_running">[RUNNING]</span>\n'
			'</div>\n'
			)
	def test_command_running(self) :
		command = self.commandFixture(
			"command line",
			running=True,
			)

		w = ExecutionDetails()
		result = w.command(command)
		self.assertMultiLineEqual(result,
			"<div class='command' id='command_1_1'>\n"
			"	<span class='command_line'>command line</span>\n"
			'	<span class="command_running">[RUNNING]</span>\n'
			'</div>\n'
			)
	def test_executionDetails_contantBlock_ansiOutput(self) :
		w = ExecutionDetails()
		content = w.contentBlock(
			kind = "kind",
			content="\033[34mBlue\033[0m",
			id = "2_32",
			)

		self.assertMultiLineEqual( content,
			'<div id="kind2_32" class="kind">\n'
			'<div class="kind_header">KIND:</div>\n'
			'<div class="plain_text"><span class=\'ansi_blue\'>Blue</span></div>\n'
			'</div>\n'
			)
	def test_command_ok(self) :
		command = self.commandFixture(
			"command line",
			ok=True,
			output="ignored output",
			)

		w = ExecutionDetails()
		result = w.command(command)
		self.assertMultiLineEqual(result,
			"<div class='command' id='command_1_1'>\n"
			"	<span class='command_line'>command line</span>\n"
			'	<span class="command_ok">[OK]</span>\n'
			'</div>\n'
			)
Пример #16
0
	def test_command_ok(self) :
		command = self.commandFixture(
			"command line",
			ok=True,
			output="ignored output",
			)

		w = ExecutionDetails()
		result = w.command(command)
		self.assertMultiLineEqual(result,
			"<div class='command' id='command_1_1'>\n"
			"	<span class='command_line'>command line</span>\n"
			'	<span class="command_ok">[OK]</span>\n'
			'</div>\n'
			)
Пример #17
0
	def test_task_oneCommand(self) :
		self.setUpEmptyClient()
		task = self.taskFixture("First task", running=False, commands=1)

		w = ExecutionDetails()
		result = w.task(task)
		self.assertMultiLineEqual(result,
			'<div class="task" id="task_1">\n'
			'TASK: "First task"\n'
			"<div class='command' id='command_1_1'>\n"
			"	<span class='command_line'>command line</span>\n"
			'	<span class="command_ok">[OK]</span>\n'
			'</div>\n'
			'END OF TASK: "First task"\n'
			'</div>\n\n'
			)
	def test_task_oneCommand(self) :
		self.setUpEmptyClient()
		task = self.taskFixture("First task", running=False, commands=1)

		w = ExecutionDetails()
		result = w.task(task)
		self.assertMultiLineEqual(result,
			'<div class="task" id="task_1">\n'
			'TASK: "First task"\n'
			"<div class='command' id='command_1_1'>\n"
			"	<span class='command_line'>command line</span>\n"
			'	<span class="command_ok">[OK]</span>\n'
			'</div>\n'
			'END OF TASK: "First task"\n'
			'</div>\n\n'
			)
Пример #19
0
	def test_command_withInfo(self) :
		command = self.commandFixture(
			"bad command line",
			ok=True,
			info="information",
			)

		w = ExecutionDetails()
		result = w.command(command)
		self.assertMultiLineEqual(result,
			"<div class='command' id='command_1_1'>\n"
			"	<span class='command_line'>bad command line</span>\n"
			'	<span class="command_ok">[OK]</span>\n'
			'<div id="info1_1" class="info">\n'
			'<div class="info_header">INFO:</div>\n'
			'<div class="plain_text">information</div>\n'
			'</div>\n'
			'</div>\n'
			)
	def test_command_withInfo(self) :
		command = self.commandFixture(
			"bad command line",
			ok=True,
			info="information",
			)

		w = ExecutionDetails()
		result = w.command(command)
		self.assertMultiLineEqual(result,
			"<div class='command' id='command_1_1'>\n"
			"	<span class='command_line'>bad command line</span>\n"
			'	<span class="command_ok">[OK]</span>\n'
			'<div id="info1_1" class="info">\n'
			'<div class="info_header">INFO:</div>\n'
			'<div class="plain_text">information</div>\n'
			'</div>\n'
			'</div>\n'
			)
Пример #21
0
	def test_command_failed(self) :
		command = self.commandFixture(
			"bad command line",
			ok=False,
			output="shown output\n",
			)

		w = ExecutionDetails()
		result = w.command(command)
		self.assertMultiLineEqual(result,
			"<div class='command' id='command_1_1'>\n"
			"	<span class='command_line'>bad command line</span>\n"
			'	<span class="command_failure">[FAILED]</span>\n'
			'<div id="output1_1" class="output">\n'
			'<div class="output_header">OUTPUT:</div>\n'
			'<div class="plain_text">shown output\n</div>\n'
			'</div>\n'
			'</div>\n'
			)
	def test_command_failed(self) :
		command = self.commandFixture(
			"bad command line",
			ok=False,
			output="shown output\n",
			)

		w = ExecutionDetails()
		result = w.command(command)
		self.assertMultiLineEqual(result,
			"<div class='command' id='command_1_1'>\n"
			"	<span class='command_line'>bad command line</span>\n"
			'	<span class="command_failure">[FAILED]</span>\n'
			'<div id="output1_1" class="output">\n'
			'<div class="output_header">OUTPUT:</div>\n'
			'<div class="plain_text">shown output\n</div>\n'
			'</div>\n'
			'</div>\n'
			)
	def test_execution_running(self) :
		execution = self.executionFixture(running=True)

		w = ExecutionDetails()
		result = w.execution(execution)
		self.assertMultiLineEqual(result,
			"<h1>Details for execution '20130301-232425'</h1>\n"
			"<div class='execution'>\n"
			"<p>Started at 2013-03-01 23:24:25</p>\n"
			'<div class="task" id="task_1">\n'
			'TASK: "First task"\n'
			"<div class='command' id='command_1_1'>\n"
			"	<span class='command_line'>command line</span>\n"
			'	<span class="command_running">[RUNNING]</span>\n'
			'</div>\n'
			'END OF TASK: "First task"\n'
			'</div>\n\n'
			"<p>Execution '20130301-232425' still running...</p>\n"
			'</div>\n'
			)
	def test_execution(self) :
		execution = self.executionFixture()

		w = ExecutionDetails()
		result = w.execution(execution)
		self.assertMultiLineEqual(result,
			"<h1>Details for execution '20130301-232425'</h1>\n"
			"<div class='execution'>\n"
			"<p>Started at 2013-03-01 23:24:25</p>\n"
			'<div class="task" id="task_1">\n'
			'TASK: "First task"\n'
			"<div class='command' id='command_1_1'>\n"
			"	<span class='command_line'>command line</span>\n"
			'	<span class="command_ok">[OK]</span>\n'
			'</div>\n'
			'END OF TASK: "First task"\n'
			'</div>\n\n'
			"<p>Execution '20130301-232425' finalized with a <b>SUCCESS</b></p>\n"
			'</div>\n'
			)
Пример #25
0
	def test_execution(self) :
		execution = self.executionFixture()

		w = ExecutionDetails()
		result = w.execution(execution)
		self.assertMultiLineEqual(result,
			"<h1>Details for execution '20130301-232425'</h1>\n"
			"<div class='execution'>\n"
			"<p>Started at 2013-03-01 23:24:25</p>\n"
			'<div class="task" id="task_1">\n'
			'TASK: "First task"\n'
			"<div class='command' id='command_1_1'>\n"
			"	<span class='command_line'>command line</span>\n"
			'	<span class="command_ok">[OK]</span>\n'
			'</div>\n'
			'END OF TASK: "First task"\n'
			'</div>\n\n'
			"<p>Execution '20130301-232425' finalized with a <b>SUCCESS</b></p>\n"
			'</div>\n'
			)
Пример #26
0
	def test_execution_running(self) :
		execution = self.executionFixture(running=True)

		w = ExecutionDetails()
		result = w.execution(execution)
		self.assertMultiLineEqual(result,
			"<h1>Details for execution '20130301-232425'</h1>\n"
			"<div class='execution'>\n"
			"<p>Started at 2013-03-01 23:24:25</p>\n"
			'<div class="task" id="task_1">\n'
			'TASK: "First task"\n'
			"<div class='command' id='command_1_1'>\n"
			"	<span class='command_line'>command line</span>\n"
			'	<span class="command_running">[RUNNING]</span>\n'
			'</div>\n'
			'END OF TASK: "First task"\n'
			'</div>\n\n'
			"<p>Execution '20130301-232425' still running...</p>\n"
			'</div>\n'
			)
Пример #27
0
	def test_command_stats(self) :
		command = self.commandFixture(
			"command line",
			ok=True,
			stats=dict(
				param1=300,
				param2=400,
				),
			)

		w = ExecutionDetails()
		result = w.command(command)
		self.assertMultiLineEqual(result,
			"<div class='command' id='command_1_1'>\n"
			"	<span class='command_line'>command line</span>\n"
			'	<span class="command_ok">[OK]</span>\n'
			'	<div class="stats">\n'
			'		<div class="stats_header">Statistics:</div>\n'
			'		<b>param1:</b> 300<br />\n'
			'		<b>param2:</b> 400<br />\n'
			'	</div>\n'
			'</div>\n'
			)
	def test_command_stats(self) :
		command = self.commandFixture(
			"command line",
			ok=True,
			stats=dict(
				param1=300,
				param2=400,
				),
			)

		w = ExecutionDetails()
		result = w.command(command)
		self.assertMultiLineEqual(result,
			"<div class='command' id='command_1_1'>\n"
			"	<span class='command_line'>command line</span>\n"
			'	<span class="command_ok">[OK]</span>\n'
			'	<div class="stats">\n'
			'		<div class="stats_header">Statistics:</div>\n'
			'		<b>param1:</b> 300<br />\n'
			'		<b>param2:</b> 400<br />\n'
			'	</div>\n'
			'</div>\n'
			)